Python 如何确定值1、值2和值3是否为<;价值4?

Python 如何确定值1、值2和值3是否为<;价值4?,python,logical-operators,Python,Logical Operators,我正试图用python测试多个值。假设我有 value1 = 7 value2 = 2 value3 = 4 我想知道它们是否小于10。只要有一个值,它就很简单 value1 < 10 而且它确实会导致True。但是,如果我更改value1=20,上述内容仍然保持为真,而它显然是False。因此,除非我在python中发现了一个巨大的bug,否则我显然不了解和是如何工作的,不幸的是,它们对我帮助不大(在文档中搜索和真的很难找到任何东西) (值1

我正试图用python测试多个值。假设我有

value1 = 7
value2 = 2
value3 = 4
我想知道它们是否小于10。只要有一个值,它就很简单

value1 < 10
而且它确实会导致
True
。但是,如果我更改
value1=20
,上述内容仍然保持为真,而它显然是
False
。因此,除非我在python中发现了一个巨大的bug,否则我显然不了解
是如何工作的,不幸的是,它们对我帮助不大(在文档中搜索
真的很难找到任何东西)

(值1<10)和(值2<10)以及(值3<10)
工作如预期,但看看它,它应该是相同的我的第一个版本或

(value1 and value2 and value3) < 10    
(值1、值2和值3)<10

这也给了我一个假
True

我很乐意回答你的问题

使用“if”语句时,必须在布尔表达式之间加上“and”,即,如果测试像
if someVariable
这样的语句,并且
someVariable
的值不是
None
,则始终会得到“True”输出,因此,请尝试以下方法:

if val1 < 10 and val2<10 and val3<10:
    <code body>

如果val1<10和val2我愿意回答你的问题

使用“if”语句时,必须在布尔表达式之间加上“and”,即,如果测试像
if someVariable
这样的语句,并且
someVariable
的值不是
None
,则始终会得到“True”输出,因此,请尝试以下方法:

if val1 < 10 and val2<10 and val3<10:
    <code body>

如果val1<10和val2关于
操作符的工作原理已经有了很好的解释,因此我只想添加一个快速解决方案来测试多个数字是否小于另一个数字:

if max(value1, value2, value3) < value4:
    print("True")

关于
操作符的工作原理已经有了很好的解释,因此我只想添加一个快速解决方案来测试多个数字是否小于另一个数字:

if max(value1, value2, value3) < value4:
    print("True")

Python
运算符有一点您偶然发现的特性:

val = 5
print(1 and val)
print(2 and val)
print(0 and val)
print(-1 and val)
print(-2 and val)
输出:

因此,如果第一个表达式的计算结果为
0
,则Python中的
直接返回
0
,否则返回第二个表达式


因此,在您的例子中,
val1、val2和val3
将返回
val3
,因为其他的
都是非零的
Python
操作符有一点您偶然发现的特殊性:

val = 5
print(1 and val)
print(2 and val)
print(0 and val)
print(-1 and val)
print(-2 and val)
输出:

因此,如果第一个表达式的计算结果为
0
,则Python中的
直接返回
0
,否则返回第二个表达式


因此,在您的例子中,
val1、val2和val3
将返回
val3
,因为其他的
非零
Python提供了有用的内置函数
任何
,允许编写如下可读代码:

if all(v < 10 for v in (value1, value2, value3)):
    ...
如果全部(v<10表示v输入(值1、值2、值3)):
...

Python提供了有用的内置函数
any
,允许编写如下可读代码:

if all(v < 10 for v in (value1, value2, value3)):
    ...
如果全部(v<10表示v输入(值1、值2、值3)):
...

最后一次尝试(
(value1和value2以及value3)<10
)给出了一个错误的True,因为如果整数不为零,则为True。因此,括号内的语句为True。True小于10。因此,Python返回
True
是正确的。使用
max([value1,value2,value3]),
运算符获取两个布尔值并将其组合。所以像
(20和10)<15
这样的东西没有什么意义。解析为
(True和True)<15
,然后解析为
True<15
,最后一次尝试(
(value1和value2和value3)<10
)会给出错误的True,因为如果整数不为零,则该整数为True。因此,括号内的语句为True。True小于10。因此,Python返回
True
是正确的。使用
max([value1,value2,value3]),
运算符获取两个布尔值并将其组合。所以像
(20和10)<15
这样的东西没有什么意义。解析为
(True和True)<15
,然后解析为
True<15
,也解析为
True
如果某物和某物:
我知道并使用,因此我想我可以将其简化为我的第一个想法,因为if语句暗示(对我来说?)
的工作原理与书面语言类似。
如果某物和某物:
我知道并使用,因此我想我可以将其简化为我的第一个想法,因为if语句(对我?)意味着
的工作原理与书面语言类似。确实很奇怪。有关于这方面的文件或政治公众人物吗?你在问题中提到的,实际上是在谈论这一点。确实很奇怪。是否有相关的文件或政治公众人物?你在问题中提到的,实际上是在谈论这一点。