这里是Python初学者,正在努力使用逻辑OR运算符

问题描述 投票:0回答:2

在下面的Python IDLE上编写了代码段,并在下面得到了正确的答案:

>>> cars = ["audi", "bmw", "daimler", "toyota", "vw"]
>>> for car in cars:
    if "a" in car:
        print(car.title())
    else:
        print(car.upper())

结果:

Audi
BMW
Daimler
Toyota
VW

然后我更改了代码,这样我可以打印没有元音UPPER的汽车,其余的标题如下所示,但我打印了所有的汽车Title:

>>> cars = ["audi", "bmw", "daimler", "toyota", "vw"]
>>> for car in cars:
    if "a" or "e" in car:
        print(car.title())
    else:
        print(car.upper())

结果:

Audi
Bmw
Daimler
Toyota
Vw

有人可以帮忙说出最后一段代码有什么问题吗,目标是将所有没有元音的汽车全部打印为大写,其余的作为标题打印。

谢谢。

python
2个回答
0
投票

if "a" or "e" in car将始终为True,因为a在逻辑上为True。请尝试:

if "a" in car or "e" in car:
    print(car.title())
else:
   print(car.upper())

0
投票

您的表情:

"a" or "e" in car

等效于:

"a" or ("e" in car)

它总是总是 "a",是真实值。您应该改为使用:

"a" in car or "e" in car
© www.soinside.com 2019 - 2024. All rights reserved.