- 序
- 译后感
- 原作者前言
- *args 和 **kwargs
- *args 的用法
- **kwargs 的用法
- 使用 *args 和 **kwargs 来调用函数
- 啥时候使用它们
- 调试 Debugging
- 生成器 Generators
- 可迭代对象(Iterable)
- 迭代器(Iterator)
- 迭代(Iteration)
- 生成器(Generators)
- Map,Filter 和 Reduce
- Map
- Filter
- Reduce
- set 数据结构
- 三元运算符
- 装饰器
- 一切皆对象
- 在函数中定义函数
- 从函数中返回函数
- 将函数作为参数传给另一个函数
- 你的第一个装饰器
- 使用场景
- 授权
- 日志
- 带参数的装饰器
- 在函数中嵌入装饰器
- 装饰器类
- Global和Return
- 多个return值
- 对象变动 Mutation
- __slots__魔法
- 虚拟环境 Virtualenv
- 容器 Collections
- 枚举 Enumerate
- 对象自省
- dir
- type和id
- inspect模块
- 推导式 Comprehension
- 列表推导式
- 字典推导式
- 集合推导式
- 异常
- 处理多个异常
- finally从句
- try/else从句
- lambda表达式
- 一行式
- For - Else
- else语句
- 使用C扩展
- CTypes
- SWIG
- Python/C API
- open函数
- 协程
- 函数缓存
- Python 3.2+
- Python 2+
- 上下文管理器
- 基于类的实现
- 处理异常
- 基于生成器的实现
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
三元运算符
三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(false)的条件判断,在Python 2.4以上才有了三元操作。
下面是一个伪代码和例子:
伪代码:
#如果条件为真,返回真 否则返回假
condition_is_true if condition else condition_is_false
例子:
is_fat = True
state = "fat" if is_fat else "not fat"
它允许用简单的一行快速判断,而不是使用复杂的多行if
语句。 这在大多数时候非常有用,而且可以使代码简单可维护。
另一个晦涩一点的用法比较少见,它使用了元组,请继续看:
伪代码:
#(返回假,返回真)[真或假]
(if_test_is_false, if_test_is_true)[test]
例子:
fat = True
fitness = ("skinny", "fat")[fat]
print("Ali is", fitness)
#输出: Ali is fat
这之所以能正常工作,是因为在Python中,True等于1,而False等于0,这就相当于在元组中使用0和1来选取数据。
上面的例子没有被广泛使用,而且Python玩家一般不喜欢那样,因为没有Python味儿(Pythonic)。这样的用法很容易把真正的数据与True/False弄混。
另外一个不使用元组条件表达式的缘故是因为在元组中会把两个条件都执行,而 if-else
的条件表达式不会这样。
例如:
condition = True
print(2 if condition else 1 / 0)
#输出: 2
print((1 / 0, 2)[condition])
#输出ZeroDivisionError异常
这是因为在元组中是先建数据,然后用True(1)/False(0)来索引到数据。 而if-else
条件表达式遵循普通的if-else
逻辑树, 因此,如果逻辑中的条件异常,或者是重计算型(计算较久)的情况下,最好尽量避免使用元组条件表达式。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论