做一个简单的elif程序,而我使用的(a>=0) % 5
只是一个输入,但是它不起作用,总是等于1。编程的新手不能确定我做错了什么。 / p>
答案 0 :(得分:2)
考虑以下表达式:
(5 >= 0) % 5
比较(5 >= 0)
的值为True
,然后将其转换为1
。
因此,您将看到以下结果:
1 % 5
# 1
答案 1 :(得分:1)
这是因为如果a >= 0
确实优于或等于True
,a
的求值结果就是0
。
True
和False
是int
的子类,因此True % 5
的值为1 % 5
,得出1
。
尝试使用负数a
,您会发现(a >= 0) % 5
会给您0
。
示例:
>>> a = 3
>>> (a >= 0) % 5
1
>>> a = 0
>>> (a >= 0) % 5
1
>>> a = -3
>>> (a >= 0) % 5
0
如果您希望a
中的input
始终为正,则可以执行以下操作:
a = -1
while a < 0:
# ask for the input while a is stricly negative
a = int(input())
print(a)