(a> = 0)%5有什么问题,因为它给我1而不是0

时间:2020-10-29 18:24:37

标签: python-3.x

做一个简单的elif程序,而我使用的(a>=0) % 5只是一个输入,但是它不起作用,总是等于1。编程的新手不能确定我做错了什么。 / p>

2 个答案:

答案 0 :(得分:2)

考虑以下表达式:

 (5 >= 0) % 5

比较(5 >= 0)的值为True,然后将其转换为1。 因此,您将看到以下结果:

1 % 5
# 1

答案 1 :(得分:1)

这是因为如果a >= 0确实优于或等于Truea的求值结果就是0

TrueFalseint的子类,因此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)