python的elseif语法_Python的if ? then : else语法

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

Possible Duplicate:

Python Ternary Operator

在一些语言中,包括Java、C/C++、C等,可以根据内嵌布尔表达式的结果赋值。

例如,

return (i < x) ? i : x

如果i

if (i < x)

return i

else

return x

是否可以在Python中使用这种语法?如果可以,如何使用?

您可以使用(x if cond else y),例如

>>> x = 0

>>> y = 1

>>> print("a" if x < y else"b")

a

这将起作用,lambda也会起作用。

是的,看起来像这样:

return i if i < x else x

它在Python中被称为条件运算符。

正如另一个答案所述,python的版本是:

i if i < x else x

(当然,对于这个特定的例子,人们更喜欢写作min(i, x),因为它更容易眼睛)

然而,这个表达式语法刚刚在Python2.5上可用(我想大概是2004年左右)。在此之前,使用了以下成语-但应小心,因为它容易出错:

i < x and i or x—因为逻辑运算符"and"实际上计算其链上的最后一个真值—因此,如果表达式为真,则i < x and i计算为i,or运算符计算为链上的第一个真值。在这种情况下,如果i < x为假,那么i< x and i也是假的,第一个真值为x。

很容易看出这个构造有多容易出错,因为如果i的布尔值为假(例如,如果i=0),那么它将返回x,即使i < x为真。

在那些日子里,我自己也曾写过这个结构:

(x,i)[i表达式"i

python 2.5中引入了a if b else c语法。大多数人已经升级到最新版本,但在旧代码中,您可能会发现另一种方法:

some_var = a

如果要使用这种语法,请记住,a的计算结果不能为false。

我认为它是在2.7之前引入的(是2.5吗?).它在2.6中确实有效,但在2.4中不起作用。不管怎样,加1。

你说得对-那是2.5版。感谢您的更正。

python中的三元运算符。

a if b else c

>>> a=1

>>> b=2

>>> a if a

1

>>> a if a>b else b

2

在python中尝试:

return i if i < x else x

这与爪哇、C、C++ C中的以下表达式完全等价。

return i < x ? i : x;

了解更多关于Python条件表达式的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值