python中三元运算符_python 三元运算符详解
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 三元运算符详解相关推荐
- python中递归函数写法_python递归函数用法详解
上期我们介绍了函数式编程,这期内容就是关于递归的函数内容,本期还是按照老规矩,给大家进行核心整理,内容通俗易懂,搭配实际应用,以供大家理解. 关于递归: 百度解释:是指函数/过程/子程序在运行过程序中 ...
- python中getopt函数_python getopt函数详解
getopt模块可以帮助脚本解析sys.argv的命令行参数,它遵守和Unix getopt()函数相同的约定,该模块提供两个函数和一个异常. 1. getopt.getopt(args, optio ...
- python中getopt函数_python getopt模块详解
getopt这个函数 就是用来抽取 sys.argv 获得的用户输入来确定执行步骤. getopt是个模块,而这个模块里面又有getopt 函数,所以getopt需要这样这样用. getopt.get ...
- python argv 详解_对python中的argv和argc使用详解
主要问题 为什么argv中第一个,即index=0的内容就是文件名? python中argc是用什么实现的? 概念解释 argc:argument counter,命令行参数个数 argv:argum ...
- Python中的__name__和__main__含义详解
背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main(): ...... if __name__ == "__ma ...
- python的raw_ input是什么意思-对python中raw_input()和input()的用法详解
最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...
- python中str和input_对python中raw_input()和input()的用法详解
最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...
- python3 isinstance用法_对python中assert、isinstance的用法详解
1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...
- python中关于深拷贝和浅拷贝的详解
python中关于深拷贝和浅拷贝的详解 概述 在python的语法中,有两种变量的拷贝方式 一种是深拷贝,一种是浅拷贝 我们先说深拷贝 语法 这里需要通过导入系统的copy模块中的deepcopy才可 ...
- python中zip的使用_浅谈Python中的zip()与*zip()函数详解
前言 1.实验环境: Python 3.6: 2.示例代码地址:下载示例: 3.本文中元素是指列表.元组.字典等集合类数据类型中的下一级项目(可能是单个元素或嵌套列表). zip(*iterables ...
最新文章
- Repeater 嵌套
- jQuery 插件---hotkeys快捷键(热键).
- b丅151组成的充电器电路_BT151S-500R118
- 如何更有效WEB应用防火墙确保信息安全
- 芬兰高性能图表控件-免费试用并提供技术支持
- “牛津第一,16岁上大学”,中国美女学霸被骂学术媛?学术人“光鲜亮丽”就是错?...
- MFC之处理消息映射的步骤...
- python自动化框架pytest pdf_Python自动化测试框架-pytest,python
- AndroidStudio_Build Out窗口显示乱码解决方案---Android原生开发工作笔记222
- golang——channel笔记
- 强化学习的数学基础4---Q-Learning进阶
- C# 中值类型[Required(*****)] 报错
- 跨数据库跨系统,数据脱敏有新招
- 判断运行环境是手机还是 PC
- 《2022年中国网络安全市场全景图》
- 2016年中国的SaaS服务商企业研究
- html整体结构,详解HTML的整体结构
- php试卷分析,试卷分析常用统计指标
- spring+vue前后端端分离上传图片到后台静态资源目录(适合个人小项目)
- Python Web开发技巧III
热门文章
- oracle的hints类型,oracle中的sql语句优化附件_HINTS
- MongoDB 集群配置启动
- python学习爬取肯德基官网商品地址的查询
- Linux查看apache配置文件路径
- 心中充满爱,你才配谈理想
- elementUI表格包含固定列且按需显示时,切换标签,表格固定列样式错位问题
- 火星坐标(gcj02)、国测局坐标(GPS)和百度坐标(bd0911)互转
- Python图片修复项目 —— Bringing-Old-Photos-Back-to-Life
- 编写一个扫雷游戏,我们首先要清楚游戏规则
- 从小喜欢游戏对计算机兴趣,电脑游戏“学与玩”