【问题标题】:My while-loop is not working. When I run it, it always give me infinite output我的 while 循环不工作。当我运行它时,它总是给我无限的输出
【发布时间】:2021-10-12 07:39:11
【问题描述】:

我在这个 while 循环中遇到了麻烦。每次我输入“是”时,它都会给我无限的输出。它似乎跳过了“try:”部分,我不知道为什么。

import random
number = int(random.randint(1, 11))
start = input('Do you wanna play Guess The Number? [Yes] [No]--')
while start.lower() == "yes":
    try:
            num = int('Enter a number within 1-10')
            if int(num) < 1 or int(num) > 10:
                raise ValueError ('Enter a number within the 1-10 only!')
            if int(num) == number:
                print('You got it!')
                break
    except ValueError as err:
            print('Number only!')

【问题讨论】:

    标签: python python-3.x loops while-loop


    【解决方案1】:

    这行num = int('Enter a number within 1-10') 失败,所以你得到一个异常。

    你的意思可能是num = int(input('Enter a number within 1-10'))

    【讨论】:

      【解决方案2】:

      没有将数字作为用户的输入,而是将字符串转换为 int,这就是您收到异常的原因,

      所以,首先从用户那里获取输入,然后将其转换为 int

       num = int(input('Enter a number within 1-10:'))
      

      无限循环的原因是因为你没有改变 start 的值。所以你需要改变start的值,如果输入不等于随机数。r

      这是改进后的代码,希望能让你明白

      import random
      number = int(random.randint(1, 11))
      start = input('Do you wanna play Guess The Number? [Yes] [No]--')
      while start.lower() == "yes":
          try:
                  num = int(input('Enter a number within 1-10:'))
                  if int(num) < 1 or int(num) > 10:
                      print('A number should be within the 1-10 only!')
                  if int(num) == number:
                      print('You got it!')
                      break
                  else:
                      print("Failed to Guess!!!")
                      start=input('Do you wanna play Guess The Number? [Yes] [No]--')
          except Exception as err:
                  print(err)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-22
        • 1970-01-01
        • 2017-01-28
        • 1970-01-01
        • 1970-01-01
        • 2016-01-03
        • 1970-01-01
        • 2021-10-07
        相关资源
        最近更新 更多