假设一个简单的ATM机的取款过程是这样的:首先提示用户输入密码(password),最多只能输入三次,超过三次则提示用户“密码错误,请取卡”结束交易。如果用户名密码正确,再提示用户输入金额(amount),ATM机只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户“交易完成,请取卡”,否则提示用户重新输入金额。
提示:
利用二重循环实现。
外层循环控制用户输入密码的次数以及是否验证通过。如果密码未通过验证,利用continue跳转到外层循环条件处,继续接收用户输入。
内层循环控制用户输入的金额。如果金额合法,则输出用户取钱金额并提示交易完成,并利用break跳出循环;否则利用continue跳到内层循环条件处继续接收用户输入
题目有点问题,0元又怎么可以取出呢?
a=1
while True:
password = input('请输入密码:')
if password != '123':
a = a + 1
print('第'+str(a-1)+'次密码错误')
if a > 3:
print('密码错误,请取卡')
break
elif password == '123':
print('请输入金额(amount)')
while True:
money = int(input('ATM机只能输出100元的纸币,一次取钱数要求最低100元,最高1000元:'))
if money >= 100 and money <= 1000:
print('取出金额:',money)
print('交易完成')
break
else:
print('输入金额错误')
continue
PASSWORD = "yes"
ok = False
for i in range(3):
if (input() == PASSWORD):
ok = True
if (not ok):
print("密码错误,请取卡")
exit(0)
while(money = int(input()))
if (money % 100 == 0 and money > 0 and money <= 1000):
print("取了{}元".format(money)
print("交易完成,请取卡")
break;
else:
print("重新输入")
user_code = "123456"
flag_done = 0
flag_error = 0
for i in range(3):
password = input("请输入交易密码:")
if(password== user_code):
while 1:
money = int(input("请输入取款金额:"))
if(0<=money<=1000 and money%100==0):
print("取款{}元".format(money))
print("交易完成,请取卡")
flag_done=1
break
else:
print("金额输入有误,",end="")
else:
if(i==2):
print("密码错误,请取卡")
else:
print("密码错误,",end="")
if(flag_done==1):
break
假定密码是123456,输入三次错误退出如下:
金额如果输错将会一直重复输入