Python语句进阶学习笔记
目录
- 更多分享:http://www.catbro.cn
序列解包(可选解包)
-
多个赋值操作同时进行(注意,解包的序列中的元素必须和赋值号左边的变量数量一致)
x,y,z = (1,2,3) print(x) : 1 print(y) : 2 print(z) : 3 x = 1; y = 2; x,y = y,x; print(x) : 2 print(y) : 1 values = 1,2,3 print(values) : (1,2,3) x,y,z = values; print(x) : 1 print(y) : 2 print(z) : 3
链式赋值
-
将同一个值给多个变量
x=y=somefunction(); 等价于: y = somefuncation(); x = y 不等价: x = somefuncation();y=somefuncation()
语句块
-
语句块并非一种语句
-
语句块是一组语言,在代码前放置空格来缩进语句即可创建语句块
-
在python中用:来标识语句块的开始
if True : print("hello");
条件
-
描述
if 条件: 语句块 elif: 语句块 else: 语句块 elif 表示 else if and 表示且 or 表示 或 while 条件: 语句块 for something in XXXX: 语句块
-
即表示对XXXX中的每一个元素,执行某些语句块,XXXX可以是列表,字典,元组,迭代器等等。
断言 assert
- 后面语句为真,否则出现 AssertionError
- 用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息。
pass
- pass 表示这里什么都没有,不执行任何操作
如果你的程序还有未完成的函数和类等,你可以先添加一些注释,然后代码部分仅仅写一个 pass,这样程序可以运行不会报错,而后期你可以继续完善你的程序
del
- del 删除的只是引用和名称,并不删除值,也就是说,Python 会自动管理内存,负责内存的回收,这也是 Python 运行效率较低的一个原因吧
range语句 range(start,end)
-
Range函数的工作方式类似于分片。
-
包含start,不包含end。
-
默认start = 0;
for i in range(10): print(i) 0 1 2 3 4 5 6 7 8 9
-
xrange类似于range,range是一次性创建整个序列,xrange一次性创建一个,迭代大量数据时首选xrange
zip : 压缩函数,将两个序列压缩成一个
x= ['a','b'];
y = ['1','2','3'];
z = zip(x,y)
for v in z:
print(v)
('a', '1')
('b', '2')
可以看到,z只存最短的序列的数量值
编号迭代 enumerate
s1 = "hello"
for index , s in enumerate(s1):
print("index is %d and value is %s"%(index,s))
index is 0 and value is h
index is 1 and value is e
index is 2 and value is l
index is 3 and value is l
index is 4 and value is o
exec :动态地执行语句中的代码
exec("print('hello')")
hello