Python语句控制结构
条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
if 语句
Python中if语句的一般形式如下所示:
if 判断条件: 执行语句…… else: 执行语句……
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句,
代码演示:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 例1:if 基本用法 flag = False name = 'luren' if name == 'python': # 判断变量否为'python' flag = True # 条件成立时设置标志为真 print 'welcome boss' # 并输出欢迎信息 else: print name # 条件不成立时输出变量名
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
注意:
- 1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
- 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 3、在Python中没有switch – case语句。
简单if语句:
var1 = 100 if var1: print ("1 - if 表达式条件为 true") print (var1) var2 = 0 if var2: print ("2 - if 表达式条件为 true") print (var2) print ("Good bye!")
单分支语句:
num= int(input("请输入一个数字: ")) print("") if num< 10: print("您输入的数字小于10") else: print("您输入的数字大于10")
多分支语句:
num= int(input("请输入一个数字: ")) print("") if num== 10: print("您输入的数字为10") elif num==20: print("您输入的数字为20") else: print("您输入的数字不是10也不是20")
以下为if中常用的操作运算符:
if 嵌套
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。
if 表达式1: 语句 if 表达式2: 语句 elif 表达式3: 语句 else 语句 elif 表达式4: 语句 else: 语句
代码演示:
num=int(input("输入一个数字:")) if num%2==0: if num%3==0: print ("你输入的数字可以整除 2 和 3") else: print ("你输入的数字可以整除 2,但不能整除 3") else: if num%3==0: print ("你输入的数字可以整除 3,但不能整除 2") else: print ("你输入的数字不能整除 2 和 3")
循环结构
Python中的循环语句有 for 和 while,另外Python中没有do..while循环。。
Python循环语句的控制结构图如下所示:
Python中while语句的一般形式:
while 判断条件: 语句
需要注意冒号和缩进。
代码演示:
计算 1 到 1000 的总和:
n = 1000 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("1 到 %d 之和为: %d" % (n,sum))
无限循环
我们可以通过设置条件表达式永远不为 false 来实现无限循环:
var = 10 num=0 while var <11 : # 表达式永远为 true num=num+1 print ("Good bye!"+num)
无限循环在服务器上接收客户端的实时请求非常有用。
while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块:
count = 0 while count < 10: print (count, " 小于10") count = count + 1 else: print (count, " 大于或等于10")
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中, flag = 1 while (flag): print ('Hello Word!')
for 语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
代码演示:
sites = ["Baidu", "Google","Runoob","Taobao"] for site in sites: if site == "Runoob": print("Hello Word!") break print("循环数据 " + site) else: print("没有循环数据!") print("完成循环!")
注意:
Python中的for、while循环都有一个可选的else分支(类似if语句和try语句那样),在循环迭代正常完成之后执行。
换句话说,如果我们不是以除正常方式以外的其他任意方式退出循环,那么else分支将被执行。也就是在循环体内没有break语句、没有return语句,或者没有异常出现时就会执行else语句。
代码演示:
for i in range(5): if i == 2: break print(i) else: print('Iterated over everything :)')
else语句在循环中的一个常见使用案例是实现循环查找。假说你在查找一个满足特定条件的项目(item),同时需要进行附加处理,或者在未发现可接受的值时生成一个错误:
for x in data: if meets_condition(x): break else: # raise error or do additional processing
没有else语句的话,你需要设置一个标志,然后在后面对其检测,以此确定是否存在满足条件的值。
for、while循环支持嵌套,如下所示,输出一个9*9的乘法表:
While
i = 1 j=1 while i <= 9: while j <= 9: print("%s*%s = %s "%(i,j,i*j),end="") j+=1 i += 1 j = 1 print()
for
i = 1 j=1 for i in range(1,10): for j in range(1,10): print("%s*%s = %s "%(i,j,i*j),end="") print()
for and while
i = 1 j=1 for i in range(1,10): while j <=9: print("%s*%s = %s "%(i,j,i*j),end="") j+=1 j = 1 print()