Summer黎 发表于 2021-2-2 23:25:53

*题目,求问是哪里的问题

print("guess the key, you have 3 chances")
guess = input()
key = "是小仙女呀"
x=3
while True:
    for i in guess:
      if i == "*":
            print("密码中不能含有*,请重新输入:")
            guess = input()
      continue
    break
while x:
    if guess == key:
      print("Right!")
      break
    else:
      print("猜错啦,您还有",x-1,"次机会!")
      guess=input()
      x-=1
      continue
print("game over!")

jackz007 发表于 2021-2-2 23:58:59

本帖最后由 jackz007 于 2021-2-3 00:00 编辑

   多个循环,多处键盘输入,多处判断,代码逻辑混乱。
   应该是一个循环,一个输入,一个判断,在循环中输入,先判断是否正确,如果不正确,再判断是否含有 '*',如果没有,再给出错误信息,并减去一次次数。
print("guess the key, you have 3 chances")
key = "是小仙女呀"
x = 3
while x > 0:
    guess = input()
    if guess == key:
      print("Right!")
      break
    else:
      if '*' in guess:
            print("密码中不能含有 * ,请重新输入:")
      else :
            if x > 1 :
                print("猜错啦,您还有" , x - 1 , "次机会!")
            x -= 1
else:
    print('很遗憾,机会用完了。')
print("game over!")            

Summer黎 发表于 2021-2-4 15:26:47

jackz007 发表于 2021-2-2 23:58
多个循环,多处键盘输入,多处判断,代码逻辑混乱。
   应该是一个循环,一个输入,一个判断,在循 ...


谢谢!

print("密码中不能含有 * ,请重新输入:")
continue       # 这个地方不用加一个continue吗?自动就可以回去循环吗?如果不需要,那什么情况才需要continue?
页: [1]
查看完整版本: *题目,求问是哪里的问题