2017-07-31 59 views
-1

我一直在试图弄清楚为什么这个简单的程序无法正常工作。它总是返回错误消息。如果变量不在给定范围内,则返回错误消息 - 但错误消息总是返回?

这是一个程序,它由5个整数,并增加了他们,但如果他们是大于100或小于0,则返回错误信息..只是它总是返回此无论放在什么数字英寸

我是新来的,所以我知道它可能过于复杂或迂回,但它应该起作用。 This is a picture of my programming.

+1

请不要张贴照片,发布您的实际代码 –

+4

复制并粘贴在这里的代码,不要让我们从一个形象,如果一切都重新输入我们想自己测试一下。 –

回答

0

or不按照您认为的方式工作。

它比较它旁边的两个语句,如果其中一个是True那么该语句是正确的。在这种情况下,所有整数属实所以与第一or声明:因为整数被视为True

int_one or int_two... 

永远是真实的!因此,你的比较应该是:

if int_one not in range or int_two not in range or int_three not in range or int_four not in range or int_five not in range: 

为了使这个比较快,我会做一个列表,然后使用while让用户输入他们的输入到列表中,并通过一个比较它们一个:

user_input_list = [] 
i = 0 

while len(user_input_list) < 5: 
    user_input = int(input("Enter the " + str(i+1) + "th number:")) 
    if 0 <= user_input <= 100: 
     user_input_list.append(user_input) 
     i += 1 
    else: 
     print("Please enter a number from 0 to 100") 

Try it here!

+0

谢谢。另外想知道,你会如何亲自编写比较以节省一些时间? – Lilac

+0

@Lilac给我一点时间 –

+0

@Lilac看我的编辑。如果有助于解决您的问题,请记住接受(绿色复选标记)答案。 –

0

将来会使用代码格式选项在您的问题中发布您的代码。

“或”运算符查看返回布尔型真/假值的2个表达式的输出。所以你使用它的方式是不正确的。

>>> if 1 or 2 or 3 not in [1,2,3]: 
...  print "hi" 
... 
hi 
>>> if 1 not in [1,2,3] or 2 not in [1,2,3] or 3 not in [1,2,3]: 
...  print "hi" 
... 
>>> 

考虑上面的例子。第一个是你在做什么。你应该做后者。