Python practices

Table of Contents

1 简介

#!/usr/bin/python3
print("Hello,Python")

2 语言

2.1 环境搭建

#!/bin/bash
python --version
#!/bin/bash
python3 -V

2.2 中文编码

#!/usr/bin/python3
# -*- coding:utf-8; -*-
print("你好,python")

2.3 基础语法

2.3.1 标识符

2.3.2 保留字符

2.3.3 行和缩进

#!/usr/bin/python3
# -*- coding:utf-8; -*-

if True:
    print("true")
else:
    print("false")

2.3.4 多行语句

2.3.5 引号

2.3.6 注释

2.3.7 空行

2.3.8 一行多条语句

以分号分割。

2.3.9 代码块

复合语句一关键字开始,以冒号(:)机诶书,改行之后的一行或者多行代码构成代码块。

2.4 变量类型

2.4.1 赋值

变量不需要提前声明,变量的赋值操作就声明和定义的过程。

2.4.2 多个变量赋值

可以同时为多个变量赋值。

#!/usr/bin/python3
# -*- coding:utf-8; -*-
a = b = c = 1
print(a, b,c)
#!/usr/bin/python3
# -*- coding:utf-8; -*-
a, b, c = 1, 2, "john"
print(a, b,c)

为什么这里有括号呢?

2.4.3 标准数据类型

数字
  • 支持类型
  • 数字类型转换
  • 数学函数
  • 随机数函数
  • 三角函数
  • 数学常量
字符串
  • 访问更新
  • 转义字符
  • 字符串运算符
  • 格式化
  • 三引号
  • Unicode 字符串
  • 字符串内建函数
列表
  • 增删改查
  • 列表脚本操作符
  • 列表函数方法
元组
  • 元组中只包含一个元素时,需要在元素后面添加逗号。
元字典

2.5 运算符

2.5.1 算数运算符

2.5.2 比较运算符

2.5.3 赋值操作符

2.5.4 位运算符

2.5.5 逻辑运算符

2.5.6 成员运算符

2.5.7 身份运算符

2.5.8 运算符优先级

2.6 流控制

2.6.1 条件语句

if

2.6.2 循环语句

while
for
for i in range(0,5):
    print(i)
循环使用 else
break
continue
pass

2.7 函数

2.7.1 定义

#!/usr/bin/python3
# -*- coding:utf-8; -*-
def printme(str):
    "打印字符串自身"
    print(str)
    return

printme("打印字符串自身")

2.7.2 参数传递

  • 都是传递引用
  • 参数类型有:必备参数、关键字参数、默认参数、不定长参数。

2.7.3 匿名函数

2.7.4 变量作用域

2.7.5 main 函数

#!/usr/bin/python3
# -*- coding:utf-8; -*-

def foo():
    print("function")

if __name__ == "__main__":
    print("main")
    foo()

2.8 模块

2.8.1 导入模块

#!/usr/bin/python3
# -*- coding:utf-8; -*-
import support

support.print_func("zara")

2.8.2 定位模块

2.8.3 命名空间和作用域

2.8.4 python 中的包

2.9 文件 IO

#!/usr/bin/python3
# -*- coding:utf-8; -*-

try:
    user_info = "user_info.data"
    data = open(user_info, 'r')
    data.readline()

except IOError as err:
    print("File Erro: 打开用户数据文件失败")

finally:
    if 'data' in locals():
        data.close()

2.10 异常处理

2.11 面向对象

# -*- coding: UTF-8 -*-
class Employee:
   '基类'
   empCount = 0

   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1

   def displayCount(self):
     print "Total Employee %d" % Employee.empCount

   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary

print "Employee.__doc__:", Employee.__doc__
print "Employee.__name__:", Employee.__name__
print "Employee.__module__:", Employee.__module__
print "Employee.__bases__:", Employee.__bases__
print "Employee.__dict__:", Employee.__dict__

3

3.1 configparse

python2 可以使用 config.py,python3 使用 configparser module。

3.2 email

3.3 mysql connect/python

3.3.1 connect server

#!/usr/bin/python3
# -*- coding:utf-8; -*-
import mysql.connector
from mysql.connector import errorcode

config = {
    'host':'127.0.0.1',
    'user':'root',
    'password':'toor',
    'database':'touch_manager',
}

try:
    print("Connecting Database {}: ".format(config['database']), end='')
    cnx = mysql.connector.connect(**config)

except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
          print("Something is wrong with your user name or password")
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
          print("Database does not exist")
    else:
          print(err.msg)
else:
    print("OK")
    cnx.close()

3.4 GUI

3.5 JSON

3.6 multiprocessing

python 多进程处理。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

import multiprocessing

def do_cal(data):
    return data*2

def pre_process():
    print 'start process',multiprocessing.current_process().name

if __name__ == '__main__':
    inputs = list(range(10))
    pirnt('input:',inputs)

    buildin_output = map(do_cal, inputs)
    print('buildin_output:', buildin_output)

    pool_size = multiprocessing.cpu_count() * 2
    pool = multiprocessing.Pool(processes = pool_size, initializer = pre_process)
    pool_output = pool.map(do_cal, inputs)
    pool.close()
    pool.join()

    print('Pool output:',pool_output)

3.7 os

3.8 os.path

3.9 pexpect

3.10 profile

3.11 redis

3.12 Requests

3.13 shutil

3.14 smtplib

3.15 subprocess

主要用来调用 shell 命令,常用的命令有:

  • subprocess.call
  • subprocess.check_call
  • subprocess.check_output

以及异常处理:

  • subprocess.CalledProcessError

3.16 threading

python 多线程库。

3.17 time

#!/usr/bin/python3

# -*- coding:utf-8; -*-
import time

ticks = time.time();
print("当前时间戳是:", ticks)

print(time.strftime("%Y-%m-%d",time.localtime()))

3.18 XML

Author: lsl

Created: 2016-08-07 Sun 19:37

Validate