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()只支持单个迭代器