流程控制主要分为条件判断和循环两个部分组成
条件判断
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。
语法结构(注意冒号):
if :
suite1
elif :
suite2
...
else:
suite
自上而下判断,如果某个判断结果为True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
python中的真假:任何非0数字和非空对象都为真,数字0、空对象和特殊对象None都为假。
if判断条件可以简写:
if x: # 表示只要x为任何非0数字和非空对象,就判断为True
三元表达式
三元表达式是对简单的条件语句的缩写,通常用在类似赋值表达式中
if else
如:
max = A if A > B else B
循环
while 循环
用户编写的非遍历式通用迭代结构
语法结构:
while :
suite
if :break
pass
if :continue
else:
suite
顶端测试为真即会执行循环体,并会重复多次测试直到为假后执行循环后的其他语句
break 和 continue 这两个语句通常都必须配合if语句使用。
break: 满足某一条件时提前退出循环(跳出最内层的循环)
continue: 满足某一条件时跳过当前的这次循环,直接开始下一次循环。
pass语句仅用于占位,而后再填充相关语句, 了保持程序结构的完整性
while True: 死循环
猜数字游戏,最多3次
#!/usr/bin/env pythonLukyNo=6No= int(input("input number:"))
cnt=1
while cnt<=3:if No LukyNo:print("big")else:print("bingo")breakNo= int(input("input number:"))
cnt+= 1
else:print("game over")
for 循环
一个通用的序列迭代器,用于遍历任何有序的序列对象内的元素。可用于字符串、元组、列表和其它的内置可迭代对象,以及通过类所创建的新对象。
语法结构:
for var in iterable:
suite
if :break
if :continue
else:
suite
python 提供了两个内置函数 range()/zip(),用于在for循环中定制特殊的循环
range(): 一次性返回连续的整数列表,会在内存中生成序列对象
zip(): 返回并行的元素元组的列表,常用于在for循环中遍历数个序列
>>> s='abcdefg'
>>> for i in range(0,len(s),2):print(s[i]) # 非完整遍历
a
c
e
g
动态构造字典
>>> keys=[1,2,3,4,5,6,7]
>>> values=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
>>> for (k,v) in zip(keys,values):newdic[k]=v
>>> print(newdic)
{1: 'Sun', 2: 'Mon', 3: 'Tue', 4: 'Wed', 5: 'Thu', 6: 'Fri', 7: 'Sat'}
猜数字游戏,最多3次(使用for实现)
#!/usr/bin/env python
LukyNo=6
for i in range(3):
No= int(input("input number:"))if No LukyNo:print("big")else:print("bingo")break
else:print("game over")