python if语句多个条件-关于函数:如何在python中为一个if语句提供多个条件

本问题已经有最佳答案,请猛点这里访问。

所以我在用python 3.1.5编写一些代码,这些代码需要有多个条件才能发生某些事情。例子:

1

2

3

4

5def example(arg1, arg2, arg3):

if arg1 == 1:

if arg2 == 2:

if arg3 == 3:

print("Example Text")

问题是,当我这样做时,如果arg2和arg3不等于0,它就不会打印任何内容。帮助?

埃多克斯1〔0〕怎么样

"问题是,当我这样做的时候,如果arg2和arg3等于0,它就不会打印任何东西。"预期的。这里唯一有效的论点是1,2,3

为什么不是if arg1 == 1 and arg2 == 2 and arg3 == 3:?

罗伯托,我已经试过了,但是奥古尔,我会试试你的。

@Soobacole应该是有效的…我真的不明白为什么,对不起。

你的Ozgur语法不正确。我应该提到我使用忍者术吗?

事实上,罗伯托是你的,我只是打错了,抱歉。

我会用

1

2

3def example(arg1, arg2, arg3):

if arg1 == 1 and arg2 == 2 and arg3 == 3:

print("Example Text")

and运算符与具有相同名称的逻辑门相同;当且仅当所有输入都为1时,它将返回1。如果需要逻辑门,也可以使用or操作符。

编辑:事实上,你文章中提供的代码对我来说很好。我看不出有什么问题。我认为这可能是您的Python的问题,而不是实际的语言。

我的IDE说它没有语法或其他错误,但是当它运行时,它不能正确地输出文本。罗伯托和你的代码(它们是一样的)都工作得很好。

这可能有点奇怪,也可能有点不好,但这是一种解决方法。

1

2

3

4(arg1, arg2, arg3) = (1, 2, 3)

if (arg1 == 1)*(arg2 == 2)*(arg3 == 3):

print('Example.')

乘以0的任何值==0。如果这些条件中的任何一个失败,那么它的计算结果将为假。

为什么你会喜欢这个而不是显而易见的?

假设您传递的是字符串而不是整数,请尝试将参数强制转换为整数:

1

2

3def example(arg1, arg2, arg3):

if int(arg1) == 1 and int(arg2) == 2 and int(arg3) == 3:

print("Example Text")

(编辑强调我不是在要求澄清;我只是想在我的回答中表现得圆滑些。??)

这应该是一个评论。

Darian Moody在他的博客中有一个很好的解决方案:

1

2

3

4

5

6

7

8

9

10a = 1

b = 2

c = True

rules = [a == 1,

b == 2,

c == True]

if all(rules):

print("Success!")

当给定iterable中的所有元素都为真时,all()方法返回True。否则,返回False。

您可以在这里的python文档中阅读更多关于它的信息,并在这里阅读更多的信息和示例。

(我也用这里的信息回答了类似的问题——如何在python中为一个if语句提供多个条件)

我参加聚会有点晚了,但我想我会分享一种方法,如果你有相同类型的条件,即检查是否所有、任何或给定数量的a_1=a_2和b_1=b_2,这可以通过以下方式完成:

1

2

3

4

5

6

7

8

9cond_list_1=["1","2","3"]

cond_list_2=["3","2","1"]

nr_conds=1

if len([True for i, j in zip(cond_list_1, cond_list_2) if i == j])>=nr_conds:

print("At least" + str(nr_conds) +" conditions are fullfilled")

if len([True for i, j in zip(cond_list_1, cond_list_2) if i == j])==len(cond_list_1):

print("All conditions are fullfilled")

这意味着你可以在两个初始列表中进行更改,至少对我来说,这样做更容易。

非常冗长和不可读。请参阅上面使用"all"方法的答案,以获得实现此功能的干净方法

是的,但是all语句不允许使用特定数量的条件。让它变得非常简单,完全无用。更不用说你不能在不改变代码的情况下改变列表,同样简单和不灵活。但是谢谢你的意见

请举个例子,因为我看不出你所拥有的和上面的例子所做的有什么区别。两者都可以在运行时改变条件,我认为需要一个临界值的条件,而不是所有条件,这是一个罕见的情况,而不是什么OP要求!要复制"至少一个",请使用any()而不是all()。

两个答案都不能改变条件的数量,它们可以改变条件本身,但不能改变条件的数量。

无法添加到条件列表中?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值