使用while循环检查条件



我试图让这个程序,每次当用户输入一个数字,如果数字在0和2之间,它将返回用户输入的数字。否则,它将继续打印语句&;Enter selection: &;到控制台,直到用户输入范围内的值为止。我的问题是,我的while循环似乎不工作,所以每次无论我输入什么值(即使它在范围0,2之外),该值仍然返回。

下面是我现有的代码:
def get_user_option_input():
number = input('Please enter a number: ')
num = int(number)
while not num > 0 and num < 2:
print('Enter selection: ')
return num

number = get_user_option_input()
print(number)

希望有人能帮我解决这个问题。感谢!

您可以这样做:

def get_user_option_input():
# Set num to something that is not in the valid range
num = -1
# Do until num is between 0 and 2
while not (num > 0 and num < 2):
# Get user input
number = input('Please enter a number: ')
num = int(number)
return num
number = get_user_option_input()
print(number)

注意()not (num > 0 and num < 2)中的重要性。现在notnum > 0 and num < 2都是负的。与之前一样,not只否定了boolean条件的num > 0部分。

如果用户输入的第一个数字在范围之外,那么它将永远运行print('Enter selection: '),因为num在循环内永远不会改变。要解决这个问题,您需要将print('Enter selection: ')更改为num = int(input('Enter selection: '))。同时,将while not num > 0 and num < 2:更改为while not (num > 0 and num < 2):。否则,not只否定num > 0。通过添加括号,not否定了num > 0num < 2

相关内容

  • 没有找到相关文章

最新更新