我可以使用while循环来限制用户变量吗

2024-06-17 11:36:44 发布

您现在位置:Python中文网/ 问答频道 /正文

import random
>>> pc = random.randint(0,5)
>>> 
>>> while user > 0 & user < 6:
    while True:
     user = int(input("enter no"))
    if user < pc :
        print("low")
    elif user > pc:
        print("high")
    else :
        print("correct")
        break

在这里,我试图将用户限制在0--6之间。如果他进入了超范围,他就不能前进


Tags: noimporttrueinputifrandomintlow
2条回答

您可以使用while循环读取用户输入,然后验证用户的输入,如果它满足您的需要,您只需中断循环,否则,您可以继续循环以请求输入。你知道吗

对于Python3:

while True:
    try:
        user = int(input('Choose a number: '))
    except ValueError:
        print("Not a number")
        exit(-1)
    if 0 <= user <= 6:
        break
    else:
        print("Make sure the input is between 0 to 6")

# process with the user variable
print(user)

首先,要获得用户的输入,根据您使用的python版本,需要执行以下操作:

对于python 2:

user = raw_input("Enter a number between 0 and 6: ")

对于python 3:

user = input("Enter a number between 0 and 6: ")

现在,要检查用户输入的值是否介于0和6之间,需要进行以下检查:

if 0 <= int(user) <= 6:
     ...

或者

if int(user) in range(7):
     ...

或者

if int(user) >= 0 and int(user) <= 6:
     ...

所有这些都是有效的。这里需要注意的是user将是一个字符串,因此int(user)。你知道吗

然后在函数中,如果输入的值不在0和6之间,则可以引发异常:

raise ValueError("Invalid number input, must be within 0 and 6")

所以最后你会得到这样的结果:

>>> import random
>>> pc_num = random.randint(0, 6) #Between 0 and 6, inclusive.
>>> while true:
        user_num = int(input("Enter a number between 0 and 6: "))
        if 0 <= user_num <= 6:
            if user_num < pc_num:
                print("low")
            elif user_num > pc_num:
                print("high")
            else:
                print("correct")
                break
        else:
            raise ValueError("Invalid number input, must be within 0 and 6")

相关问题 更多 >