python是没有三元描述符的,但是可以通过模拟的实现。

其中一种是:

(X and V1) or V2

正常情况下是不会有错误的,但是文章中也提到了,当V1=""时,就会有问题

比如

print (True and '') or 'V'

print (False and '') or 'V'

输出永远都是: V

完美的解决方案是在《python核心编程中提到的》:

V1 if X else V2

原文如下:如果你来自 C/C++ 或者是 Java 世界, 那么你很难忽略的一个事实就是 Python 在很长的一

段时间里没有条件表达式(C ? X : Y), 或称三元运算符. ( C 是条件表达式; X 是 C 为 True 时

的结果, Y 是 C 为 False 时的结果) 贵铎·范·罗萨姆一直拒绝加入这样的功能, 因为他认为应

该保持代码简单, 让程序员不轻易出错. 不过在十年多后, 他放弃了, 主要是因为人们试着用

and 和 or 来模拟它, 但大多都是错误的. 根据 FAQ , 正确的方法(并不唯一)是

(C and [X] or [Y])[0] . 唯一的问题是社区不同意这样的语法. (你可以看一看 PEP 308, 其

中有不同的方案.) 对于Python 的这一问题,人们表达了极大的诉求.

贵铎·范·罗萨姆最终选择了一个最被看好(也是他最喜欢)的方案, 然后把它运用于标准库中

的一些模块. 根据 PEP , "这个评审通过考察大量现实世界的案例, 包含不同的应用, 以及由不同

程序员完成的代码." 最后 Python 2.5 集成的语法确定为: X if C else Y .

如上文所说,该语法在python2.5才被加入,但是因为平时也不会用到2.4及以前的版本,所以也就够用了~

python中三元运算符_python 三元运算符详解相关推荐

  1. python中递归函数写法_python递归函数用法详解

    上期我们介绍了函数式编程,这期内容就是关于递归的函数内容,本期还是按照老规矩,给大家进行核心整理,内容通俗易懂,搭配实际应用,以供大家理解. 关于递归: 百度解释:是指函数/过程/子程序在运行过程序中 ...

  2. python中getopt函数_python getopt函数详解

    getopt模块可以帮助脚本解析sys.argv的命令行参数,它遵守和Unix getopt()函数相同的约定,该模块提供两个函数和一个异常. 1. getopt.getopt(args, optio ...

  3. python中getopt函数_python getopt模块详解

    getopt这个函数 就是用来抽取 sys.argv 获得的用户输入来确定执行步骤. getopt是个模块,而这个模块里面又有getopt 函数,所以getopt需要这样这样用. getopt.get ...

  4. python argv 详解_对python中的argv和argc使用详解

    主要问题 为什么argv中第一个,即index=0的内容就是文件名? python中argc是用什么实现的? 概念解释 argc:argument counter,命令行参数个数 argv:argum ...

  5. Python中的__name__和__main__含义详解

    背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main():     ...... if __name__ == "__ma ...

  6. python的raw_ input是什么意思-对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...

  7. python中str和input_对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...

  8. python3 isinstance用法_对python中assert、isinstance的用法详解

    1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...

  9. python中关于深拷贝和浅拷贝的详解

    python中关于深拷贝和浅拷贝的详解 概述 在python的语法中,有两种变量的拷贝方式 一种是深拷贝,一种是浅拷贝 我们先说深拷贝 语法 这里需要通过导入系统的copy模块中的deepcopy才可 ...

  10. python中zip的使用_浅谈Python中的zip()与*zip()函数详解

    前言 1.实验环境: Python 3.6: 2.示例代码地址:下载示例: 3.本文中元素是指列表.元组.字典等集合类数据类型中的下一级项目(可能是单个元素或嵌套列表). zip(*iterables ...

最新文章

  1. Repeater 嵌套
  2. jQuery 插件---hotkeys快捷键(热键).
  3. b丅151组成的充电器电路_BT151S-500R118
  4. 如何更有效WEB应用防火墙确保信息安全
  5. 芬兰高性能图表控件-免费试用并提供技术支持
  6. “牛津第一,16岁上大学”,中国美女学霸被骂学术媛?学术人“光鲜亮丽”就是错?...
  7. MFC之处理消息映射的步骤...
  8. python自动化框架pytest pdf_Python自动化测试框架-pytest,python
  9. AndroidStudio_Build Out窗口显示乱码解决方案---Android原生开发工作笔记222
  10. golang——channel笔记
  11. 强化学习的数学基础4---Q-Learning进阶
  12. C# 中值类型[Required(*****)] 报错
  13. 跨数据库跨系统,数据脱敏有新招
  14. 判断运行环境是手机还是 PC
  15. 《2022年中国网络安全市场全景图》
  16. 2016年中国的SaaS服务商企业研究
  17. html整体结构,详解HTML的整体结构
  18. php试卷分析,试卷分析常用统计指标
  19. spring+vue前后端端分离上传图片到后台静态资源目录(适合个人小项目)
  20. Python Web开发技巧III

热门文章

  1. oracle的hints类型,oracle中的sql语句优化附件_HINTS
  2. MongoDB 集群配置启动
  3. python学习爬取肯德基官网商品地址的查询
  4. Linux查看apache配置文件路径
  5. 心中充满爱,你才配谈理想
  6. elementUI表格包含固定列且按需显示时,切换标签,表格固定列样式错位问题
  7. 火星坐标(gcj02)、国测局坐标(GPS)和百度坐标(bd0911)互转
  8. Python图片修复项目 —— Bringing-Old-Photos-Back-to-Life
  9. 编写一个扫雷游戏,我们首先要清楚游戏规则
  10. 从小喜欢游戏对计算机兴趣,电脑游戏“学与玩”