创建一个while循环,从用户那里获取输入并检查负值

2024-10-01 13:36:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个简单的while循环,检查三个值中是否有任何一个为负,如果为真,则再次请求这三个值。你知道吗

这是我的密码:

def vyohykeliput():

    rivi = input("How many AB-zone trips do you make per month?\n")
    ABmatka = int(rivi)
    rivi1 = input("How many BC-zone trips do you make per month?\n")
    BCmatka = int(rivi1)
    rivi2 = input("How many ABC-zone trips do you make per month?\n")
    ABCmatka = int(rivi2)

    while ABmatka or BCmatka or ABCmatka < 0:
        print("The given values cannot be negative!")
        rivi = input("How many AB-zone trips do you make per month?\n")
        ABmatka = int(rivi)
        rivi1 = input("How many BC-zone trips do you make per month?\n")
        BCmatka = int(rivi1)
        rivi2 = input("How many ABC-zone trips do you make per month?\n")
        ABCmatka = int(rivi2)
vyohykeliput()

但每次运行程序时,不管给定的数字是负数还是负数,我都能输出“给定的值…”。而且,我已经设法让它打印“给定值…”无数次。你知道吗


Tags: youzoneinputmakedomanyhowint
2条回答

您要做的是:

while ABmatka < 0 or BCmatka < 0 or ABCmatka < 0:
    # ...

简而言之(至少对于更多的值或一个可数的值)就是

while any(x < 0 for x in (ABmatka, BCmatka, ABCmatka)):
   # ...

ABmatka or BCmatka or ABCmatka < 0是truthy,如果下列表达式之一是truthy:

ABmatka
BCmatka
ABCmatka < 0

这样说:

while ABmatka < 0 or BCmatka < 0 or ABCmatka < 0:

如果你只是这样写的话,你是在问ABmatka或BCmatka是否为None或任何其他伪值,比如0,“,[]

while ABmatka or BCmatka or ABCmatka < 0:

相关问题 更多 >