第四集:流程控制语句
选择语句
最简单的 if 语句
Python 中使用 if 保留字来组成选择语句,其最简单的语法形式如下:
if 表达式:
语句块
1
2
其中,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或逻辑表达式,如果表达式为真,则执行 “语句块”,如果表达式为假,就跳过 “语句块”,继续执行后面的代码。
示例1:
number = 5
if number == 5:
print( "number 的值是5" )
1
2
3
注意:if 语句后面的冒号 ‘:’ 很容易被遗忘
示例2:
if bmi < 18.5:
print( "您的 BMI 指数为:" + str(bmi) )
print( "您的体重过轻了。。。" )
1
2
3
注意:第二个 print() 没有使用缩进,无论 bmi 的值是否小于 18.5 都会执行,如果第二个 print() 也使用了缩进,那么只有条件成立时才会执行
if…else 语句
if 表达式:
语句块1
else:
语句块2
1
2
3
4
程序中使用 if…else 语句时,如果出现 if 语句多余 else 语句的情况,那么该 else 语句将会根据缩进确定该 else 语句是属于哪个 if 语句的。
示例:
a = 0
if a >= 0:
if a > 0:
print( "a 大于零" )
else:
print( "a 小于零" )
1
2
3
4
5
6
if…elif…else 语句
在 Python 中是没有 switch 语句的,所以实现多重选择的功能,只能使用 if…elif…else 多分支语句或者 if 语句的嵌套
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
...
else:
语句块n
1
2
3
4
5
6
7
8
9
示例:
age = int( input( "请输入您的年龄:" ) )
if age <= 18:
print( "您的年龄还小,要努力学习哦!" )
elif 18 < age <= 30:
print( "您现在的阶段正是努力奋斗的黄金阶段!" )
elif 30 < age <= 50:
print( "您现在的阶段正是人生的黄金阶段!" )
else:
print( "最美不过夕阳红!" )
1
2
3
4
5
6
7
8
9
if 语句的嵌套
if 选择语句可以有多种嵌套方式,开发程序时,可以根据自身需要选择合适的嵌套方式,但一定要严格控制好不同级别代码块的缩进量
示例:
# 判断输入年份是不是闰年
# 判断方法:四年一润,百年不闰,四百年再润
year = int( input( "请输入年份:" ) )
if year % 4 == 0:
if year % 100 == 0:
if year % 400 == 0:
print( year, "年是闰年" )
else:
print( year, "年不是闰年" )
else:
print( year, "年是闰年" )
else:
print( year, "年不是闰年" )
1
2
3
4
5
6
7
8
9
10
11
12
13
循环语句
在 Python 中,循环主要有两种,一种是重复一定次数的循环,称为计数循环,如 for 循环;另一种是一直重复,直到条件不满足时才结束的循环,称为条件循环,如 while 循环。
注意:在其它语言中,条件循环还包括 do…while 循环,但是在 Python 中是没有 do…while 循环的
while 循环
while 条件表达式:
循环体 # 一组被重复执行的语句
1
2
示例:
print( "今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问何几 ?\n" )
none = True # 作为循环条件的变量
number = 0 # 计数的变量
while none:
number += 1
if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:
print( "答曰:这个数是", number )
none = False
1
2
3
4
5
6
7
8
上述例子运行结果为 23
在使用 while 循环语句时,一定不要忘记添加将循环条件变为 False 的代码,否则将出现死循环。
for 循环
for 迭代变量 in 对象:
循环体
1
2
其中,迭代变量用于保存读取出的值,而对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组等。
示例1:
print( "计算 1+2+3+...+100 的结果为:" )
result = 0 # 保存累加结果的变量
for i in range(101):
result += i # 实现累加功能
print(result) # 在循环结束时输出结果
1
2
3
4
5
补充内容:上面代码中使用了 range() 函数,该函数为 Python 内置的函数,用于生成一系列连续的整数,多用于 for 循环语句中,其语法格式如下:
range(start, end, step)
start:用于指定计数的起始值,可以省略。如果省略,则从 0 开始。
end:用于指定计数的结束值(但不包括该值),不能省略。当 range() 函数只有一个参数时,即表示指定计数的结束值。
step:用于指定步长,即两数之间的间隔,可以省略。如果省略,则表示步长为 1。
注意:在使用 range() 函数时,如果只有一个参数,那么表示指定的是 end;如果只有两个参数,则表示指定的是 start 和 end;只有三个参数都存在时,最后一个才表示步长。
示例2:
for i in range(1, 10, 2):
print( i, end = ' ' )
1
2
上述例子运行结果为 1 3 5 7 9
如果想让 print() 语句输出的内容在一行上显示,使用 print() 函数时,不能直接加逗号,需要加上 ", end = ‘分隔符’ "
循环嵌套
在 Python 中,允许在一个循环体中嵌入另一个循环体,这称为循环嵌套。在 Python 中,for 循环和 while 循环都可以进行循环嵌套。
示例:
for i in range(1, 10, 1): # 输出 9 行
for j in range(1, i + 1): # 输出与行数相等的列
print( str(j) + " X " + str(i) + " = " + str(i * j) + "\t", end = "" )
print(") # 换行
1
2
3
4
上述例子输出 1-9 乘法口诀表
break、continue 和 pass 语句
break
break 语句可以终止当前的循环,包括 while 和 for 在内的所有控制语句。
break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下跳出循环。如果使用嵌套循环,break 循环将跳出最内层的循环。
示例:
print( "今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问何几 ?\n" )
for number in range(100):
if number % 3 == 2 and number % 5 == 3 and number % 7 == 2: # 判断是否符合条件
print( "答曰:这个数是", number ) # 输出符合条件的数
break # 跳出循环
1
2
3
4
5
continue
continue 语句的作用没有 break 强大,它只能终止本次循环提前进入下一次循环。
continue 语句一般会结合 if 语句进行搭配使用,表示在某种条件下,跳出当前循环的剩余语句,然后继续进行下一轮循环。如果使用嵌套循环,continue 语句将只跳过最内层的循环中的剩余语句。
示例:
total = 0 # 用于保存累加和的变量变量
for number in range(1, 100):
if number % 2 == 1: # 判断是否符合条件
continue # 继续下一次循环
total += number # 累加偶数的和
print( "1 到 100 之间(不包括 100)的偶数和为:", total ) # 输出累加的和
1
2
3
4
5
6
pass
Python 中还有一个 pass 语句,表示空语句。它不做任何事,一般起到占位的作用。
示例:
for i in range(1, 10):
if i % 2 == 0: # 判断是否为偶数
print( i, end = ' ' )
else: # 不是偶数
pass # 占位符,不作任何操作