Python 流程控制

流程控制主要分为条件判断和循环两个部分组成

条件判断

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。

语法结构(注意冒号):

if <条件判断>:
  suite1
elif <条件判断>:
  suite2
...
else:
  suite

自上而下判断,如果某个判断结果为True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。

python中的真假:任何非0数字和非空对象都为真,数字0、空对象和特殊对象None都为假。

if判断条件可以简写:
if x:   # 表示只要x为任何非0数字和非空对象,就判断为True

   <suite>

 

三元表达式

三元表达式是对简单的条件语句的缩写,通常用在类似赋值表达式中

<suite> if <条件判断> else <suite>

如:

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 python LukyNo=6 No = int(input("input number: ")) cnt=1 while cnt<=3: if No < LukyNo: print("little") elif No> LukyNo: print("big") else: print("bingo") break No = 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("little") elif No> LukyNo: print("big") else: print("bingo") break else: print("game over")

 

posted @ 2017-05-24 18:58  bobo0609  Views(231)  Comments(0)    收藏  举报