我一直绞尽脑汁想弄清楚为什么这个简单的程序不起作用。它总是返回错误消息。
这是一个占用5个整数并加起来的程序,但是如果它们大于100或小于0,它会返回一条错误消息..除了它总是返回这个,无论放入什么数字。
我是新人,所以我知道它可能过于复杂或迂回,但无论如何都应该有效。This is a picture of my programming.
答案 0 :(得分:0)
将来使用代码格式选项在您的问题中发布代码。
“或”运算符查看返回布尔值true / false值的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"
...
>>>
考虑上面的例子。第一个就是你在做什么。你应该做后者。
答案 1 :(得分:0)
True
无法按照您的想法运作。
它比较它旁边的两个语句,如果其中一个是or
,那么语句是正确的。在这种情况下,所有整数都是正确的,所以使用第一个int_one or int_two...
语句:
True
将永远为真,因为整数被视为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")
让用户将他们的输入输入到列表中并逐个进行比较:
h = legend(strcat('$\kappa$ = 0.1 MHz/','$\mu$','s'),...
strcat('$\kappa$ = 0.5 MHz/','$\mu$','s'))
set(h,'Interpreter','latex')