break_continue关键字
break 语句
break 语句可用于 while 和for 循环,用来结束整个循环。当有嵌套循环时,break 语句只能跳出最近一层的循环。
【操作】使用 break 语句结束循环
while True:
str = input("请输入一个字符串:")
if (str.lower() == "quit"):
print("结束循环,退出")
break;
else:
print(str)
continue 语句
continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最近的一层循环。
【操作】要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明细,以及平均薪资
'''要求输入员工的薪资,若薪资小于 0 则重新输入。
最后打印出录入员工的数量和薪资明细,以及平均薪资'''
count = 0 #统计员工的数量
sum=0 #统计总的薪资
salarys=[] #存放薪资明细
while True:
salary=input("请输入员工的薪资:(如果是quit,则退出)")
if salary.lower()=="quit":
break;
else:
if int(salary)<0:
continue
sum = sum+int(salary)
salarys.append(salary)
count+=1
print("薪资明细为{0}".format(salarys))
print("录入员工数量为{0},总薪资为{1},平均每个人薪资为{2}".format(count,sum,sum/count))
else 语句
while、for 循环可以附带一个 else 语句(可选)。如果 for、while 语句没有被 break 语句 结束,则会执行 else 子句,否则不执行。
语法格式如下:
while 条件表达式:
循环体
else:
语句块
或者:
for 变量 in 可迭代对象:
循环体
else:
语句块
【操作】员工一共 4 人。录入这 4 位员工的薪资。全部录入后,打印提示“您已经全部录 入 4 名员工的薪资”。最后,打印输出录入的薪资和平均薪资’’‘员工一共 4 人。录入这 4 位员工的薪资。全部录入后,打印提示“您已经全部录 入 4 名员工的薪资”。最后,打印输出录入的薪资和平均薪资’’’
sum = 0
salarys=[]
for i in range(4):
salary=input("请输入员工的薪资:(quit结束)")
if salary.lower()=="quit":
break
sum=sum+float(salary)
salarys.append(salary)
i+=1
else:
print("您已经全部录 入 4 名员工的薪资")
print("四位员工的薪资为:{0}".format(salarys))
print("四位员工的总薪资为{0},平均薪资为{1}".format(sum,sum/4))
Zip()函数
使用 zip()并行迭代
通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。
【操作】测试 zip()并行迭代
name = ("Tom","Bob","BoBo","Helon")
age = (15,16,18,20)
sex = ("male","female","male","female")
for x,y,z in zip(name,age,sex):
print("{0} is a {1} who is {2} years old ".format(x,y,z))
补充:
zip()函数是python代码中非常常用的一个操作。
其以可迭代对象为输入参数,将可迭代对象里元素分别取出再组合成一个个元组,返回一个列表。
分为两种情况:
一、输入参数只有一个可迭代对象
m = [5,6,7,8,9]
n = zip(m)
print("zip对象转化为列表:",list(n))
二、输入参数有两个可迭代对象:这里又可以分成两种情况,长度相等和长度不相等。长度相等时,分别取出各自迭代对象中对应位置的元素,组合成新的元组,并返回一个list。如果长度不等,以其中最短的长度作为参照,在执行长度相等的操作。
x=[[1,1,1],[2,2,2],[3,3,3]]
y=[[4,4,4],[5,5,5],[6,6,6]]
z=[[7,7,7],[8,8,8]]
m=zip(x,y)
print("zip对象转换为列表:",list(m))
n=zip(x,z)
print("zip对象转换为列表:",list(n))
在压缩结果前面加*可以解压缩:
x=[[1,1,1],[2,2,2],[3,3,3]]
y=[[4,4,4],[5,5,5],[6,6,6]]
z=[[7,7,7],[8,8,8]]
m=zip(x,y)
print("zip对象解压缩为:",*m)
注意:解压缩后是元组而不是列表