061
continue 语句
continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最近的一层循环。
【操作】要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资
empNum = 0 #员工数
salarySum = 0 #工资总额
salarys = [] #存储工资函数的数组
while True:
s = input("请输入员工薪资(按Q或q结束进行统计)")
if s.upper() == "Q": #如果输入值的大写表达式为Q时候(包含q和Q)
print("输入完成,进行统计")
break
if float(s)<0:
continue
empNum += 1
salarys.append(float(s)) #工资数组中存入工资数额
salarySum += float(s)
print("员工数{0}".format(empNum))
print("录入薪资:",salarys)
print("平均薪资{0}".format(salarySum/empNum))
062
循环中的else语句
while、for 循环可以附带一个 else 语句(可选)。**如果 for、while 语句没有被 break 语句结束,则会执行 else 子句,否则不执行。**语法格式如下:
while 条件表达式:
循环体
else:
语句块
或者:
for 变量 in 可迭代对象:
循环体
else:
语句块
【操作】员工一共 4 人。录入这 4 位员工的薪资。全部录入后,打印提示“您已经全部录入 4 名员工的薪资”。最后,打印输出录入的薪资和平均薪
salarySum= 0
salarys = []
for i in range(4):
s = input("请输入一共 4 名员工的薪资(按 Q 或 q 中途结束)")
if s.upper()=='Q':
print("录入完成,退出")
break
if float(s)<0:
continue
salarys.append(float(s))
salarySum += float(s)
else:
print("您已经全部录入 4 名员工的薪资") #完整完成上一步四次循环则执行else语句
print("录入薪资:",salarys)
print("平均薪资{0}".format(salarySum/4))
063
循环代码的优化
虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:
- 尽量减少循环内部不必要的计算
- 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
- 局部变量查询较快,尽量使用局部变量
其他优化手段
- 连接多个字符串,使用 join()而不使用+
- 列表进行元素插入和删除,尽量在列表尾部操作