我们从一个具体的例子切入本节内容。假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if else 语句,例如:

if a>b:max = a;
else:max = b;

但是 Python 提供了一种更加简洁的写法,如下所示:

max = a if a>b else b

这是一种类似于其它编程语言中三目运算符? :的写法。Python 是一种极简主义的编程语言,它没有引入? :这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。

使用 if else 实现三目运算符(条件运算符)的格式如下:

exp1 if contion else exp2

condition 是判断条件,exp1 和 exp2 是两个表达式。如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。

前面的语句 max = a if a>b else b 的含义是:

  • 如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
  • 如果 a> b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。

三目运算符的嵌套

Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对,例如:

a if a>b else c if c>d else d

应该理解为:

a if a>b else ( c if c>d else d )

【实例】使用 Python 三目运算符判断两个数字的关系:

a = int( input("Input a: ") )
b = int( input("Input b: ") )
print("a大于b") if a>b else ( print("a小于b") if a<b else print("a等于b") )

可能的运行结果:

Input a: 45↙
Input b: 100↙
a小于b

该程序是一个嵌套的三目运算符。程序先对 a>b 求值,如果该表达式为 True,程序就返回执行第一个表达式 print("a大于b"),否则将继续执行 else 后面的内容,也就是:

( print("a小于b") if a<b else print("a等于b") )

进入该表达式后,先判断 a<b 是否成立,如果 a<b 的结果为 True,将执行 print("a小于b"),否则执行 print("a等于b")。

Python三目运算符(三元运算符)用法详解相关推荐

  1. python中的super用法详解_【Python】【类】super用法详解

    一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...

  2. python中的super用法详解_Python中super函数用法实例分析

    本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...

  3. python classmethod_对Python中的@classmethod用法详解

    在Python面向对象编程中的类构建中,有时候会遇到@classmethod的用法. 总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的水平中一般是用不到的. 不过还是好奇去查了一下. 大致可以 ...

  4. python lambda函数-Python的Lambda函数用法详解

    在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要 ...

  5. Python BS4解析库用法详解

    Python BS4解析库用法详解 Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定的数据.Bea ...

  6. Python格式化字符输出用法详解

    Python Print() 格式化输出用法详解 Python格式化有两种方式,一种利用%号格式输出,另一种利用Format: 建议利用Format格式,其具有较好的可扩展性 1.字符串格式化符号% ...

  7. python中setattr()函数用法详解

    setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的. getattr()用法详见博文:python中getattr()函数用法详解_IT之一小佬的博客-CSDN ...

  8. Python中self的用法详解(链接传送)

    Python中的self是什么意思? Python新手,今天看了一篇详细易懂的self用法介绍,感觉开了些窍,这里附上链接,以方便复习. Python中self用法详解(转载自CLHugh)

  9. python中的super用法详解_python super用法及原理详解

    这篇文章主要介绍了python super用法及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 概念 super作为python的内建函数. ...

  10. Python中import语句用法详解

    一. 什么是模块(module)? 在实际应用中,有时程序所要实现功能比较复杂,代码量也很大.若把所有的代码都存储在一个文件中,则不利于代码的复用和维护.一种更好的方式是将实现不同功能的代码分拆到多个 ...

最新文章

  1. 使用es6实现iview的选项卡切换
  2. 东芝3005您的机器需要保养_两联供之东芝中央空调天氟地水详细讲解
  3. Linux虚拟文件系统解析
  4. python selenium自动化_python selenium自动化之-环境搭建
  5. Hibernate中把Session和线程绑定的配置
  6. mongodb3.0 性能測试报告 一
  7. Python 3 教程一:入门
  8. 5个趣味Python练手项目
  9. 微信小程序云开发教程-WXML入门-列表渲染
  10. C++ primer第一章 C++概述 纪要
  11. 五分钟教你快速制作 macOS Mojave U盘启动盘
  12. (必读)工业机器人基础教程——快速入门学习
  13. java和c#通过esb服务互调用组件
  14. 服务器黑屏只显示鼠标是什么意思,电脑黑屏只显示鼠标怎么办
  15. 石墨文档(协同开发)
  16. 2018ei期刊目录计算机,科学网—2018年智能计算与信息系统国际会议(ICIS2018)征文期刊EI检索 - 周建国的博文...
  17. springboot报错(三) webjars被拦截或找不到
  18. dell远程控制卡的原理
  19. MATLAB图像模糊复原
  20. Voluntarily Relinquishing the Processor-----《Pro_Java_8_Programming_(3rd_edition)》

热门文章

  1. 解决手机端点击输入框后页面会被放大问题
  2. 自定义微信消息批量发送(一)
  3. Android实现横竖屏、全屏的几种方式
  4. linux升级gfortran,gfortran编译cp2k4.1
  5. 奶茶妹贪图刘强东什么
  6. 用开源做出来的必须开源吗_开源应该符合道德吗?
  7. leetcode刷题笔记——剑指offer(二)[回溯、排序、位运算、数学、字符串]
  8. ITextPdf中文不显示解决办法
  9. java单链表实现小学生管理系统
  10. 中国美术家协会吴冬梅的工笔人生