2019-03-06 python1
难点
python
yield
设计模式:工厂模式、单例模式
闭包、装饰器
进程池pool
锁
蓝图
孤儿进程、僵尸进程
高级编程todo
CGI
mysql
mongodb
json
smtp邮件
网络编程
多线程
xml
标准库todo
os:操作系统接口
glob:文件通配符
re:正则
math:数学
urlib:互联网
datatime:日期和时间
zlib:数据压缩
timeit:性能度量
doctest、unittest:测试
环境:anaconda
中文:# -- coding: UTF-8 --
多行:multiline="hello
world
!"
标准数据类型:数字、字符串、元组
列表、字典、集合
元组(),列表[]
运算符:算术、比较、赋值、逻辑(and\or\not)、位、成员(in\not in)、身份(is\not is)、优先级
数字
数学函数:abs、ceil、cmp、exp、fabs、floor、log、log10、max、min、modf、pow、round、sqrt。
随机数函数:choice、randrange、random、seed、shuffle、uniform。
三角函数:
数学常量:pi、e
字符串
转义字符:
字符串格式化:
三引号可以字符串跨行。
字符串内建函数
:capitalize、center、count、bytes.decode、encode、endswith、expandtabs、find、index、isalnum、isalpha、isdigit、islower、isnumeric、isspace、join 、len...
列表
函数:max、min、len、list(元组)
方法:append、count、extend、index、insert、pop、remove、reverse、sort、clear、copy。
字典
集合
操作:add、remove、clear
other
end关键字
for循环:
for i in range():
*迭代器
与生成器*
>>>list=[1,2,3,4]
>>> it = iter(list) # 创建迭代器对象
>>> print (next(it)) # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>>
#!/usr/bin/python3
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
for x in it:
print (x, end=" ")
def函数
定长参数:
不定长参数:
# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vartuple)
# 调用printinfo 函数
printinfo( 70, 60, 50 )
# 可写函数说明
def printinfo( arg1, **vardict ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vardict)
# 调用printinfo 函数
printinfo(1, a=2,b=3)
>>>
1
{'a':2,'b':3}
匿名函数lambda:
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))
作用域:局部变量、全局变量
数据结构
数组(列表实现)
堆(列表实现)
队列(列表实现)
>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.append("Terry") # Terry arrives
>>> queue.append("Graham") # Graham arrives
>>> queue.popleft() # The first to arrive now leaves
'Eric'
>>> queue.popleft() # The second to arrive now leaves
'John'
>>> queue # Remaining queue in order of arrival
deque(['Michael', 'Terry', 'Graham'])
列表推导式:
>>> [[x, x**2] for x in vec]
[[2, 4], [4, 16], [6, 36]]
del
字典遍历
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
... print(k, v)
...
gallahad the pure
robin the brave
zip:
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
... print('What is your {0}? It is {1}.'.format(q, a))
...
What is your name? It is lancelot.
What is your quest? It is the holy grail.
What is your favorite color? It is blue.
模块
name属性:
一个模块被另一个程序第一次引入时,其主程序将运行。
如果我们想在模块被引入时,模块中的某一程序块不执行,
我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
#!/usr/bin/python3
# Filename: using_name.py
if __name__ == '__main__':
print('程序自身在运行')
else:
print('我来自另一模块')
运行输出如下:
$ python using_name.py
程序自身在运行
$ python
>>> import using_name
我来自另一模块
>>>
dir()
输入输出
repr():
>>> # repr() 函数可以转义字符串中的特殊字符
... hello = 'hello, runoob\n'
>>> hellos = repr(hello)
>>> print(hellos)
'hello, runoob\n'
rjust:
>>> for x in range(1, 11):
... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
... # 注意前一行 'end' 的使用
... print(repr(x*x*x).rjust(4))
...
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
{0:2d}
>>> for x in range(1, 11):
... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
...
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
zfill()
>>> '12'.zfill(5)
'00012'
>>> '-3.14'.zfill(7)
'-003.14'
>>> '3.14159265359'.zfill(5)
'3.14159265359'
str.format():
>>> print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com'))
菜鸟教程网址: "www.runoob.com!"
>>> print('{0} 和 {1}'.format('Google', 'Runoob'))
Google 和 Runoob
>>> print('{1} 和 {0}'.format('Google', 'Runoob'))
Runoob 和 Google
>>> print('{name}网址: {site}'.format(name='菜鸟教程', site='www.runoob.com'))
菜鸟教程网址: www.runoob.com
>>> import math
>>> print('常量 PI 的值近似为 {0:.3f}。'.format(math.pi))
常量 PI 的值近似为 3.142。
在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度。 用于美化表格时很有用。
>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}
>>> for name, number in table.items():
... print('{0:10} ==> {1:10d}'.format(name, number))
...
Runoob ==> 2
Taobao ==> 3
Google ==> 1
读写
read、readline、readlines、tell、seek、close
# 打开一个文件
f = open("/tmp/foo.txt", "w")
f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
# 关闭打开的文件
f.close()
str = input("请输入:");
print ("你输入的内容是: ", str)
picle序列与反序列化
os文件/目录方法
类
私有变量、私有方法