叶子嘤嘤嘤 发表于 2021-3-1 21:29:32

零基础学PYTHON 09讲课后题求助

题目是这样的:0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。

我的解题思路如下:

temp=input("请输入密码: ")
times=3
while 1<times<=3:
    if temp==str("小甲鱼是帅哥"):
      print("密码正确,进入程序.......",end=" ")
      break
    elif "*"in temp:
      input("密码中不能含“*”您还有"+str(times)+"次机会,请输入密码: ")
    else:
      input("密码输入错!您还有"+str(times-1)+"次机会!请输入密码: ")
    times=times-1
print("密码错误次数过多,程序退出")


问题1:答案正确的时候 会多打印"密码错误次数过多,程序退出"
问题2:输入*号后,可输入答案的次数少一次

总之各种问题,有没有大神帮我把这个改对啊,谢谢

逃兵 发表于 2021-3-1 21:54:58

temp=input("请输入密码: ")
times = 3
while times:

    if temp=="小甲鱼是帅哥":
      print("密码正确,进入程序.......",end=" ")
      break
    elif times == 1:
      print('密码错误次数过多,程序退出')
    elif "*"in temp:
      temp = input("密码中不能含“*”您还有"+str(times-1)+"次机会,请输入密码: ")
    else:
      temp = input("密码输入错!您还有"+str(times-1)+"次机会!请输入密码: ")

    times-=1

均昊山 发表于 2021-3-1 22:30:11

c = 1
for i in range(4):
   a = input()
   if a == '1':
         print('正确')
         c = 0
         break
   else:
         if 3 - i ==0:
             print('次数完')
         elif '*' in a:
             print('不允许输入符号,错误剩余次数{}'.format(3 -i))
         else:   
             print('错误剩余次数{}'.format(3 -i))

if c == 0:
    print('进入程序')

顽主12138 发表于 2021-3-1 22:31:33

谢谢
页: [1]
查看完整版本: 零基础学PYTHON 09讲课后题求助