Python中的三目运算符(三元表达式)

一般支持三目运算符的语言(如C语言)的语法格式一般是这样的:

判断条件(返回布尔值)?为真时的结果:为假时的结果

比如:

x = x%2==1 ? x+1:x;

python并不支持? :这种符号所表达的先判断再选择的含义,但仍然有相应的语法支持:

1. Python 的语法支持

为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)

顺序略有不同,

x = x+1 if x%2==1 else x

在比如我们欲实现一个基础版本(递归版本)的斐波那契数列:

def fn(n):return n if n < 2 else fn(n-1)+fn(n-2)

Python 中的三目运算符目的是得到一个结果,未必就是将该结果return,或者进行简单的变量赋值,如下:

l = []
l.append(1 if x>=1. else 0)# 将会给形式带来巨大的简洁

一个应用实例请见 十进制小数<==>二进制小数

C/C++也是如此,所以我们不要窄化对三目运算符的理解:

std::vector<int> vs;
int a, b;
vs.push_back(a > b ? a : b);
  • 赋值表达式,当条件判断成立时,变量赋值为 .3,不成立时,变量赋值为 .5

    • a = .3 if predicate else .5

2. 使用 np.where

使用np.where()

np.where(判断条件,为真时的处理,为假时的处理)
x = np.where(x%2==1, x+1, x)

3. 三目运算符更为奇特的用法

// C/C++
int max, min;
n > m ? (max = n, min = m):(max = m, min = n);// 此时的三目运算符不在等号右侧,用于赋值,而是做一些操作

关注阿布的进击,获取最新信息

Python中的三目运算符(三元表达式)相关推荐

  1. Python中的三目运算符

    一般支持三目运算符的语言(如C语言)的语法格式一般是这样的: 判断条件(返回布尔值)?为真时的结果:为假时的结果 比如: x = x%2==1 ? x+1:x; python并不支持? :这种符号所表 ...

  2. Python中eval函数的表达式如何使用

    这篇文章主要介绍了Python中eval函数的表达式用法示例,文中通过示例对比来为大家进行详细的讲解,有需要的朋友可以借鉴参下,希望有所帮助 eval 是干嘛的? 解析字符串表达式并执行,并返回一个值 ...

  3. python中raise stoplteration_推导表达式迭代器生成器模块和包 | 编程电脑技术交流...

    魔法方法需要特定的条件去触发 有next是迭代器 # li = [] # for i in range(1,10): # li.append(i) # print(li) # ------------ ...

  4. Python(迭代、三元表达式、列表生成、生成器、迭代器)

    迭代 什么是迭代1 重复2 下次重复一定是基于上一次的结果而来 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在 ...

  5. Python中的三目运算符------if else 同行

    缘由: 今天看了一个代码,这个样子的: bench = 0 if len(stock['WEIGHT'])==0 else float(stock[['WEIGHT']].apply(sum)) 大概 ...

  6. Python中的运算符与表达式 1

    你所编写的大多数语句(逻辑行)都包含了Python表达式(Expressions).一个表达式的简单例子便是 2+3.表达式可以拆分成运算符(Operators)与操作数(Operands). 运算符 ...

  7. python中表示红色的表达式_python-SymPy中表达式的抽象表示

    不依赖于所用符号的表示是一种功能.例如, f1 = lambda x, y: (2*x+y)**2 定义了一个不与x和y绑定的函数,除了作为该函数内部的占位符外,它们不存在. (这是一个Python函 ...

  8. Python中的运算符与表达式

    1.+运算符除了用于算术加法外,可以用去其他类型的连接,但是必须保证连接的数据类型是一样的. 2.当列表.字符串或元组等类型变量与整数进行*运算时,表示对内容进行重复并返回重复后的新对象. 3.Pyt ...

  9. Python基础之三元表达式

    三元表达式又称三元运算符,是软件编程中的一个固定格式,语法是"条件表达式?表达式1:表达式2".常用于根据条件为变量赋值. Python中也有三元表达式,不过Python的三元运算 ...

最新文章

  1. 解决用img src=%# Eval(ShowPhoto)%动态绑定图片,发布到IIS上无法显示的问题
  2. 重新同步多线程集成测试
  3. 各种囧然不同流行的编程风格
  4. andriod socket开发问题小结
  5. 使用差分金字塔提取图像边缘 python实现
  6. Excel—身份证生日提取
  7. C语言阿拉伯数字转大写汉字,阿拉伯数字转大写汉字
  8. ipod nano 无法添加mp4视频 电影失败解决方法
  9. 网络编程close与shutdown的区别
  10. 中国信通院:2017年Q3共享单车行业发展指数报告(附下载)
  11. 19-10-29-C++基础学习二
  12. 潜在因子模型_如何使用潜在因子模型在图形数据库中构建推荐系统
  13. redis value最大值_Redis value的5种类型及常见操作
  14. 创建React项目(入门保姆级)
  15. 【李刚-21天通关Python】第四章:函数
  16. Office到底买哪个好
  17. 生化危机5:惩罚 感
  18. win10将硬盘作为存储池删除读不到盘符_东芝的传承,我来延续:铠侠TC10 SATA固态硬盘上手评测...
  19. asp.net1053-走班制排课系统#毕业设计
  20. 联想笔记本Thinkpad x1 carbon设置指纹的方法

热门文章

  1. php输出源代码,PHP源代码分析-echo实现详解
  2. 博士延期的我,女友已经是副教授了
  3. 张艾迪(创始人):DCM的不识人.我说我会像乔布斯一样成为投资者的骄傲
  4. Dracula theme
  5. MODIS数据介绍和下载总结
  6. 【引用】免费论文检测 系统 软件 论文免费检测 论文抄袭检测大师 万方数据论文相似性检测系统 万方论文检测...
  7. 2019年度技术总结
  8. Python 爬虫小课 2-9 中国妖怪数据库,运行中竟然发现有个色(he)欲(xie)妖怪分类
  9. 自用 学习BCR 免疫组化
  10. 机器人genghis_iRobot的智慧家居:从扫地机器人和擦地机器人的联动开始