使用简单的while循环验证输入

时间:2015-03-04 16:45:05

标签: python validation loops while-loop boolean

我想验证输入只使用while循环接受0或1。我想使用布尔“OR”,因此当输入不等于1或0时,打印错误并坚持用户重新输入值。如果是,请继续使用代码,以便用户可以输入其余数据。

以下代码在输入1时有效,但在第二种情况下无效(在本例中为0),无论条件是什么。

number1=int(input("enter the your number)"))
while number1 !=1 or 0:
    print ("You must enter a BINARY number")
    number1=int(input("enter you first binary digit (from the right)"))

number2=int(input("enter the next (from the right)"))
while number2 !=1 or 0:
  print ("You must enter a BINARY number")
  number2=int(input("enter you second binary digit (from the right)"))

依旧......

3 个答案:

答案 0 :(得分:1)

使用此代替多个值:

while not number1 in (1, 0):

答案 1 :(得分:1)

其他建议可行,但我不认为它们解决了为什么你所写的不起作用的问题,所以我会尝试回答这个问题。

orand之类的布尔运算符适用于number1 != 1number != 0之间的条件,而不是1和{}之类的非布尔值。 {1}}。在英语中,你可以写0人们会理解你的意思是if number1 is not 1 or 0,但它在任何编程语言中都不会那样。

所以你可以写if number1 is not 1 and number1 is not 0或者你可以写if number1!=1 and number1!=0。或者,正如其他人所建议的那样,你可以写if not (number1==1 or number1==0),它更短,可以更好地扩展。

答案 2 :(得分:0)

<强>代码:

number1 = int(raw_input("Enter your number: "))
while number1 not in (0,1):
    print("You must enter a binary number.")
    number1 = int(raw_input("Enter your number: "))

number2 = int(raw_input("Enter your second number: "))
while number2 not in (0,1):
    print("You must enter a binary number")
    number2 = int(raw_input("Enter your second number: "))

print(number1, number2)

<强>输出:

  

输入您的电话号码:3

     

您必须输入二进制数。

     

输入您的电话号码:1

     

输入您的第二个号码:7

     

您必须输入二进制数

     

输入您的第二个号码:0

     

(1,0)