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中的三目运算符相关推荐
- Python中的三目运算符(三元表达式)
Python中的三目运算符(三元表达式) 一般支持三目运算符的语言(如C语言)的语法格式一般是这样的: 判断条件(返回布尔值)?为真时的结果:为假时的结果 比如: x = x%2==1 ? x+1:x ...
- Python中的三目运算符------if else 同行
缘由: 今天看了一个代码,这个样子的: bench = 0 if len(stock['WEIGHT'])==0 else float(stock[['WEIGHT']].apply(sum)) 大概 ...
- 【python】python 中的三元表达式(三目运算符)
python中的三目运算符不像其他语言 其他的一般都是 判定条件?为真时的结果:为假时的结果 如 result=5>3?1:0 这个输出1,但没有什么意义,仅仅是一个例子. 而在python中的 ...
- python 中的三元表达式(三目运算符)
python中的三目运算符不像其他语言 其他的一般都是 判定条件?为真时的结果:为假时的结果 如 result=5>3?1:0 这个输出1,但没有什么意义,仅仅是一个例子. 而在python中的 ...
- Python中的匿名函数和函数式编程
Python中的匿名函数和函数式编程 文章目录 Python中的匿名函数和函数式编程 一.匿名函数 匿名函数的格式: 二.函数式编程 map() filter() reduce() 区别 三.'三目运 ...
- python中if else语句用来形成二分支结构_python分支结构if详解
1.流程控制 1)顺序结构:从上往下依次执行(默认) 2)分支结构:根据条件来选择性的执行某段代码,实现分支结构的方式只有一种:if 3)循环结构:让指定的代码重复执行 python中实现循环结构的方 ...
- python中raise stoplteration_推导表达式迭代器生成器模块和包 | 编程电脑技术交流...
魔法方法需要特定的条件去触发 有next是迭代器 # li = [] # for i in range(1,10): # li.append(i) # print(li) # ------------ ...
- 2!=5 or 0在python中是否正确-python 中 and or
在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一. 一.and: 在布尔上下文中从左到右演算表达式的值,如果布尔上下 ...
- python中print的本质_Python基础语法全解
一.Python简介 1. 了解Python Python是一种解释型(这意味着开发过程中没有了编译这个环节).面向对象(支持面向对象的风格或代码封装在对象的编程技术).动态数据类型的交互式(可在命令 ...
最新文章
- 曲苑杂坛--收缩数据库文件
- RocketMQ 介绍 msgId生成算法
- 【译】Why Decentralized AI Matters Part I: Economics and Enablers
- python 第三方库
- 开发人员如何学习 Kubernetes
- Jquery 多行拖拽图片排序 jq优化
- JS数据结构初识(一)-栈
- awk命令过滤tomcat的访日日志中IP地址
- 如何理解c和c ++的复杂类型声明
- 怎么样用计算机才能让电量增多,如何让你的笔记本更省电 这几招你学会能管大用...
- 录音转文字python实现
- 一首很好听的英文歌曲Peerless
- 阿里云云计算助理工程师认证(ACA)详细解读
- 信息安全实验:实现一个fake-wifi
- fatal remote does not appear to be a git repository
- 下载Nexus老版本war包
- [转帖]redis监控工具汇总
- 计算机等级考试三级网络技术复习提纲
- 使用统计学分析《鱿鱼游戏》中“玻璃垫脚石”的生存概率
- Java开篇(了解)
热门文章
- Shell工具 cut sed awk sort
- HDFS最基本的操作命令 和基本配置
- debian 查看php版本,在debian 9中为php7.0-fpm启用状态查询
- 清空缓存的命令_布隆过滤器应用——解决Redis缓存穿透问题
- cuda支持 java_cuda运行时错误(48):没有内核映像可用于在设备上执行
- java treemap_Java TreeMap的排序
- mac的终端通过ssh远程连接Linux服务器
- OpenCV探索之路(零):HighGUI——使用imwrite调整保存的图片质量
- Java接口的实现源代码_Comparable接口的实现:源代码
- mysql数据库汉字乱码解决方案