51.else语句 (循环里面的else)
while、for
循环可以附带一个else 语句(可选)
。如果for、while
语句没有被break 语句 结束
,则会执行else
子句,否则不执行。
语法格式如下:
while 条件表达式:
循环体
else: 语句块
或者:
for 变量 in 可迭代对象:
循环体
else:
语句块
【操作】员工一共4 人。录入这4 位员工的薪资。全部录入后,打印提示“您已经全部录 入4名员工的薪资”。最后,打印输出录入的薪资和平均薪资
empNum = 0 # 员工数
salarySum = 0 # 工资和
salarys = []
for i in range(4):
s = input('请输入员工的薪资(按Q或q结束:')
if s.upper() == 'Q':
print('录入完成,退出.')
break # 若果break执行,那么else那段就不会执行了.
if float(s) < 0:
continue
empNum += 1 # 员工数
salarys.append(float(s))
salarySum += float(s)
else: # for循环结束之后
print('已经打印了{0}名员工的工资'.format(empNum)) # 把错误的排除掉了
print('输入的薪资是', salarys)
print('平均工资是:', salarySum/empNum)
# 运行效果
In [1]: empNum = 0 # 员工数
...: salarySum = 0 # 工资和
...: salarys = []
...: for i in range(4):
...: s = input('请输入员工的薪资(按Q或q结束:')
...: if s.upper() == 'Q':
...: print('录入完成,退出.')
...: break # 若果break执行,那么else那段就不会执行了.
...: if float(s) < 0:
...: continue
...:
...: empNum += 1 # 员工数
...: salarys.append(float(s))
...: salarySum += float(s)
...: else: # for循环结束之后
...: print('已经打印了{0}名员工的工资'.format(empNum)) # 把错误的排除掉了
...: print('输入的薪资是', salarys)
...: print('平均工资是:', salarySum/empNum)
请输入员工的薪资(按Q或q结束:100
请输入员工的薪资(按Q或q结束:200
请输入员工的薪资(按Q或q结束:300
请输入员工的薪资(按Q或q结束:400
已经打印了4名员工的工资
输入的薪资是 [100.0, 200.0, 300.0, 400.0]
平均工资是: 250.0
# 第二次运行
请输入员工的薪资(按Q或q结束:200
请输入员工的薪资(按Q或q结束:Q
录入完成,退出.
# 因为 break 了 所以 没有输出打印了 几名员工的薪资
输入的薪资是 [200.0]
平均工资是: 200.0