Python语句 - littleboy12580/learning_python GitHub Wiki
Python语句
try语句处理错误
try:
pass #主要代码块
except:
pass #异常处理代码
else:
pass #没有异常的时候执行的代码
finally:
pass #无论是否发生异常都会执行的代码
赋值语句
序列赋值运算
1.元组赋值
A,B=nudge,wink
2.列表赋值
[C,D]=[nudge,wink]
3.Python3.0有一种新的序列赋值
a,*b = 'spam'
其结果是a被赋值's',b被赋值p['p','a','m']
若没有剩下的内容可以匹配带*的名称,则会赋值一个空的列表
a,b,c,d,*e = [1,2,3,4]
print(a,b,c,d,e)
此时的结果为 1 2 3 4 []
若有多个带*的名称,则会报错
a,*b,c,*d = [1,2,3,4]
会报错
若带*的名称自身没有编写到一个列表中也会报错
*a = [1,2,3,4]
会报错,正确的写法应该是:
*a, = [1,2,3,4]
多目标赋值
把右侧的对象赋值给所有提供的变量名,但是要注意不可变对象和可变对象的区别
a = b = 0
b = b + 1
此时a,b的值分别为0和1
a = b = []
b.append(42)
此时a,b的值分别为[42],[42]
增强赋值
增强赋值并不是合并,它是对原处进行修改
L=[1,2]
M=L
L=L+[3,4]
此时的L,M分别为[1,2,3,4]和[1,2]
L=[1,2]
M=L
L+=[3,4]
此时的L,M分别为[1,2,3,4]和[1,2,3,4]
打印操作语句
print([object,...][,sep=' '][,end='\n'][,file=sys.stdout])
object表示要打印的内容,sep表示打印内容间的分隔字符串,end表示打印结束后在文本末尾添加的一个字符串,file指定文本将要发送到的文件
print(x,y,z,sep='...',end='\n',file=open('data.txt','w'))
判断语句
字典实现switch效果
在python中没有switch或case语句,但可以通过字典来达到同样的效果
branch = {'spam':1.25
'ham':1.99
'eggs':0.99}
print(branch.get('spam','Bad choice'))
或者是
choice = 'bacon'
if choice in branch:
print(branch[choice])
else:
pass
三元表达式
A = Y if X else Z
当X为真时执行Y否则执行Z
循环语句
1.break:跳过整个循环语句
2.continue:跳到循环开头
3.循环else块:当循环正常离开时才会执行(即没有碰到break语句)
列表解析语句
解析语句可以通过加入if判断,双层for循环进行嵌套
lines = [line.rstrip() for line in open('script1.py') if line[0] == 'p']
这句话相当于
res=[]
for line in open('script1.py'):
if line[0] == 'p':
res.append(line.rstrip())
[(x,y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]
最后的结果为[(0,1),(0,3),(2,1),(2,3),(4,1),(4,3)]
迭代器
range()支持多个迭代器,zip(),map(),filter()只支持单个迭代器