python三元运算符

原创 2014年02月21日 16:13:50

:以前没在python中用过三元运算符,今天使用?:提示错误,故而google了一下

在c/c++等语言中,三元运算符一般为如下使用形式:

判定条件?为真时的结果:为假时的结果

r = 5 > 1 ? 1 : 0

但是,在python2.5以前版本,是没有三元运算符的,在2.5版本中加入了三元运算,但是并不是一个符号,而是

为真时的结果 if 判定条件 else 为假时的结果  
r = 1 if 5 > 1 else 0

在python 2.5以前,一般使用 and-or 来模拟三元运算符,如下:


判定条件 and 为真时的结果 or 为真时的结果
r = 5>1 and 1 or 0
但是当结果为字符串时会出现一个问题:


r = 5>1 and '' or 's'

返回将是‘s’


因为‘’的布尔求值结果为False,因此返回为‘s’


为避免这一状况,一般写为:

r = (5>1 and [''] or ['s'])[0]

参考:http://woodpecker.org.cn/diveintopython/power_of_introspection/and_or.html#d0e10128  例4.19
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

三元运算符性能更优

1. 概述 以前在学习语言的时候,常常有人说如果能用三元运算符x=y>0?A:B;,其性能会比使用if...else...性能更好,后来了解了CPU的运行原理后,才明白其中的原因。 2.原理2.1 C...

【微信小程序常见问题】三元运算符设置失败的原因及解决方案

【微信小程序常见问题】三元运算符设置失败的原因

关于三元运算符、判断结构和选择结构的小结

class Demo { public static void main(String[] args) { int a=1,b; b=(a>1)?100:200; System.out...

Java学习之三元运算符-if语句

三元运算符package basis.day02; /** * 三元运算符(条件表达式)?表达式1:表达式2;(若为真输出1,若为假输出2) * 其中表达式1和表达式2的数据类型要一致。 * 三...

黑马程序员_04_算术_转移_逻辑_位_三元_运算符_判断语句

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------   0209-0209-0...

关于三元运算符中的类型提升

看了一篇好的关于三元运算符的讲解,就拿过来了,是关于三元运算符中的类型提升 [html] view plaincopyprint? public static void mai...

JavaScript三元运算符的多种使用技巧

发现代码慢慢写多了的时候会不自觉的将if else 用 三元来替代,仅仅是未了让代码更简洁精辟,当然也有人说用三元可以让你有高潮的感觉。最近在写js 的时候也有这样的感觉,并且收集了一些小技巧,分享分...

三元运算符的应用

三元操作符是if-else的简化写法,在项目中使用它的地方很多,也非常好用,但是好用又简单的东西并不表示就可以随便用,我们来看看下面这段代码: public class Client {  p...

程序流程控制(二)--三元运算符

3. 三元运算符 语法: 判断表达式?表达式1:表达式2 解释一下: 如果判断表达式的运算结果为 false,那么整个表达式的结果就是 表达式2;如果判断表达式的运算结果为 true,那么整个表...

PHP三元运算符

三元运算符的功能与“if...else”流程语句一致,它在一行中书写,代码非常精练、执行效率更高。 在PHP程序中恰当地使用三元运算符能够令脚本更为简洁、高效。 代码格式如下:(expr1) ? ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)