Python逻辑(OR)和比较(==)



给出一个权重。它可以是磅或公斤。然后代码相应地转换(即磅到公斤;公斤到磅(。在代码中,lbs具有单位输入:l或l。kg具有单位输入:k或k。

weight = 60
unit = "k"
if unit == "L" or "l":
weight_kg = weight * 0.45
print(f"You are {weight_kg}kg")
else:
weight_lb = weight * 2.2
print(f"You are {weight_lb}lbs")

但这又回来了:你重达27.0公斤。代码仍然执行if语句,尽管所提供的单元不是"if";L";或";l";。

然后我将if语句调整为:

if unit == "L" or unit == "l":

现在它给出了正确的132.0磅

我试着浏览了在线教程和笔记,但仍然不明白为什么第一个代码不起作用,为什么第二个代码起作用。。。

基本思想是"l〃;是一个真实的价值

> if unit == "L" or "l":

在你调整你的代码之前,它会返回:你是27.0kg。尽管提供的单位不是",但代码仍然执行if语句;L";或";l〃;因为您没有指定是否有任何变量等于(比较运算符(";l〃;是否。所以在执行时,它总是执行真理是一种真理的价值。由于它是OR运算符,如果单元==";L";一个操作数为真,如果单位="L";但另一个操作数始终为true,因此if语句将运行。

如果您对AND运算符做了同样的操作,它就会执行else语句。

这里有一个例子:

输入:

> if 'l' or 'L':
>     print("HI") 
> else:
>     print("HELLO")

输出:HI

这里的输出总是"0";HI";因为运算符的两边总是执行True。

尝试使用AND运算符:

输入:

> weight = 60 unit = "k"
> 
> if unit == "L" and "l":
>     weight_kg = weight * 0.45
>     print(f"You are {weight_kg}kg") 
> else:
>     weight_lb = weight * 2.2
>     print(f"You are {weight_lb}lbs")

输出:你是132.0磅

我无意破坏这里的逻辑。我只是想告诉你,用AND运算符两边都需要True,并且只需要"True";l〃;执行True,所以它执行else语句。

真诚的价值观:根据Python文档:默认情况下,对象被视为true。真诚的价值观包括:1.非空序列或集合(列表、元组、字符串、字典、集合(

2.非零的数值

3.真

相关内容

  • 没有找到相关文章

最新更新