一般支持三目运算符的语言(如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中的三目运算符(三元表达式)

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

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

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

  3. 【python】python 中的三元表达式(三目运算符)

    python中的三目运算符不像其他语言 其他的一般都是 判定条件?为真时的结果:为假时的结果 如 result=5>3?1:0 这个输出1,但没有什么意义,仅仅是一个例子. 而在python中的 ...

  4. python 中的三元表达式(三目运算符)

    python中的三目运算符不像其他语言 其他的一般都是 判定条件?为真时的结果:为假时的结果 如 result=5>3?1:0 这个输出1,但没有什么意义,仅仅是一个例子. 而在python中的 ...

  5. Python中的匿名函数和函数式编程

    Python中的匿名函数和函数式编程 文章目录 Python中的匿名函数和函数式编程 一.匿名函数 匿名函数的格式: 二.函数式编程 map() filter() reduce() 区别 三.'三目运 ...

  6. python中if else语句用来形成二分支结构_python分支结构if详解

    1.流程控制 1)顺序结构:从上往下依次执行(默认) 2)分支结构:根据条件来选择性的执行某段代码,实现分支结构的方式只有一种:if 3)循环结构:让指定的代码重复执行 python中实现循环结构的方 ...

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

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

  8. 2!=5 or 0在python中是否正确-python 中 and or

    在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一. 一.and: 在布尔上下文中从左到右演算表达式的值,如果布尔上下 ...

  9. python中print的本质_Python基础语法全解

    一.Python简介 1. 了解Python Python是一种解释型(这意味着开发过程中没有了编译这个环节).面向对象(支持面向对象的风格或代码封装在对象的编程技术).动态数据类型的交互式(可在命令 ...

最新文章

  1. 曲苑杂坛--收缩数据库文件
  2. RocketMQ 介绍 msgId生成算法
  3. 【译】Why Decentralized AI Matters Part I: Economics and Enablers
  4. python 第三方库
  5. 开发人员如何学习 Kubernetes
  6. Jquery 多行拖拽图片排序 jq优化
  7. JS数据结构初识(一)-栈
  8. awk命令过滤tomcat的访日日志中IP地址
  9. 如何理解c和c ++的复杂类型声明
  10. 怎么样用计算机才能让电量增多,如何让你的笔记本更省电 这几招你学会能管大用...
  11. 录音转文字python实现
  12. 一首很好听的英文歌曲Peerless
  13. 阿里云云计算助理工程师认证(ACA)详细解读
  14. 信息安全实验:实现一个fake-wifi
  15. fatal remote does not appear to be a git repository
  16. 下载Nexus老版本war包
  17. [转帖]redis监控工具汇总
  18. 计算机等级考试三级网络技术复习提纲
  19. 使用统计学分析《鱿鱼游戏》中“玻璃垫脚石”的生存概率
  20. Java开篇(了解)

热门文章

  1. Shell工具 cut sed awk sort
  2. HDFS最基本的操作命令 和基本配置
  3. debian 查看php版本,在debian 9中为php7.0-fpm启用状态查询
  4. 清空缓存的命令_布隆过滤器应用——解决Redis缓存穿透问题
  5. cuda支持 java_cuda运行时错误(48):没有内核映像可用于在设备上执行
  6. java treemap_Java TreeMap的排序
  7. mac的终端通过ssh远程连接Linux服务器
  8. OpenCV探索之路(零):HighGUI——使用imwrite调整保存的图片质量
  9. Java接口的实现源代码_Comparable接口的实现:源代码
  10. mysql数据库汉字乱码解决方案