一个例子
再来回顾一下本章3.4节举的一个例子。在作家的签名售书会上,作家需要对100本书进行签名,则作家应该怎么做?
一般来说,流程是这样的,作家从左手边拿起第一本书,然后签名,再然后将签完名的书放回右手边。接着继续拿起第二本书,重复上面的动作。
这是一个最基本的循环动作。
可我们考虑一下下面两种情况:
第一种情况:如果在签第40本书的时候,发现缺页了,导致无法售出。那作家应该怎么办?
第二种情况:如果在签第40本书的时候,发现签字笔没有水了,这个时候作家应该怎么办?
循环跳转
在上面的两种情况中,如果遇到第一种情况,那很明显,作家应该把正在签的第40本书放在一边,然后拿起第41本书继续签。
这是循环跳转的第一种情况。在Python语言中,跳出本轮循环,然后继续执行下一轮循环,使用的关键字是continue。
如果遇到第二种情况,如果签字笔没有水了,而这时候又没有其他的笔可以替代,那么后续的签售活动就必须全部停下来。在Python语言中,因为运行几次循环后而满足某个条件,必须将后续的循环工作全部跳过的情况,使用的关键字是break。
可以通过这张图来理解一下continue和break的区别。
模拟ATM循环取款操作
程序示例:编写程序接收用户输入卡号、密码,然后提示用户输入取款金额,如果取款金额不正确,则提示用户重新输入(最多允许输入3次)。重复以上流程100次。
for i in range(100): print("----------------- 欢迎使用**银行ATM机,您是第 ",i+1," 位客户 -----------------") card_no=input("请输入您的银行卡号:") password=input("请输入您的银行卡密码:") error_cnt=0 while error_cnt<3: money=int(input("请输入您的取款金额:")) if money > 0 and money % 100 == 0: print("\n您本次的取款金额为",money," ,出钞中,请稍侯。。。") print("出钞完成,请取走您的银行卡和钞票。") break else: print("取款金额输入不正确,只能输入100的倍数!") error_cnt+=1 if error_cnt >= 3: print("取款金额输入错误次数过多,退出重试!") continue print("操作结束,欢迎下次再来。\n")