第4章 控制语句
if<条件1>:
<语句1>
elif<条件2>:
<语句2>
elif<条件3>:
<语句3>
......
else:
<语句n>
说明:elif语句,只要有一个条件成立,就会将其后的一个部分语句执行后推出整个if语句
if三元运算符
<表达式1> if <条件> else <表达式2>
a=None
b=3
x=b if a is not None else 0 #x 的值为 0
if语句嵌套
if<条件>:
if<条件>:
<语句1>
else<条件>:
<语句2>
else:
<语句3>
for循环执行语句,else中的<语句2>只有在循环正常退出时执行
for <循环变量> in <遍历对象>:
<语句1>
else:
<语句2>
break和continue
例:
for i in [1,2,3,4,5]:
print(i)
if i==2:
continue
print(i,"的平方是:",i*i)
if i==4
break
else:
print('循环结束!')
》》》
1
1的平方是:1
2
3
3的平方是:9
4
4的平方是:16
for语句与range()函数
for i in range(4)
range([start,] stop[,step])
start默认为0
for 语句使用range函数可以构建基于循环次数的循环程序,也可以义range()生成的数字作为索引来访问列表、元组、字符串中的值,还可以对遍历的序列实行处理,得到相关的数据
for语句与内置迭代函数(seq为序列)
enumerate(seq) 编号迭代 for i,item in enumerate('abcd'): print('第%d个字符是:%s'%(i,item))
sorted(seq) 排序迭代 for i in sorted([3,1,6,0])
reversed(seq) 翻转迭代
zip(seq1,seq2,....) 并行迭代 for i,j,k in zip(lsta,lstb,lstc):print('%d:%d:%d'%(i,j,k)) 只遍历到最短的序列长度
while循环:Python中while循环不如for循环简单明了,因此主要用在构建不确定运行次数的循环,一般情况下,遍历序列都采用for语句
增量赋值运算符
+=,-=,*=,/=,//=,**=,%=,&=。。。。。。。
推导:对序列或一系列的元素进行处理,处理结果仍被放到一个列表、字典等序列之中
基本形式:[<i相关表达式> for i in aiterator] #在for语句前加了对循环变量处理的表达式,最外层使用序列符号
[i**i for i in range(1,11)] #获得1~10的平方数存入列表之中
{k:v for k,v in zip(keys,values)} #使用并行迭代将两个列表组成字典
推导进阶:
使用if语句实现有选择地处理遍历序列中的元素
[i**i for i in range(1,11) if i**i%2==1]