if的基本格式

if语句用来做判断,并选择要执行的语句分支。基本格式如下:

if CONDITION1:

code_block(1)

elif CONDITION2:

code_block(2)

elif CONDITION3:

...

...

else:

code_block_else

其中elif是可选的,可以有任意多个,else是可选的,表示全都不满足条件时该执行的分支。

例如:

a = 4

if a > 3:

print("hello world")

条件表达式Condition部分以运算结果的True、False为if的分支执行依据。在Python中所有数据对象要么是True,要么是False,所以任何一个数据、表达式都可以作为if的Condition。例如:

if 1:

...

if a > b:

...

if 'a':

...

if []:

...

if [[]]:

...

if a and b:

...

至于如何判断True、False,参见布尔值和逻辑运算。

switch/case的替代方案

在python中并没有switch和case的分支选择语句,但是使用if或dict也能轻松实现。

例如,使用dict实现等值的分支选择:

D = {

"apple": 8.0,

"pear": 3.5,

"orange": 2.5,

"banana": 2.5

}

fruit = "banana"

print(D[fruit])

上面没有提供default情况时的分支,但使用get()可以设置dict中找不到key时默认返回的值。例如:

print(D.get("greens","no this fruit"))

还可以通过in的成员测试来设置分支:

if fruit in D:

print(D[fruit])

else:

print("no this fruit")

dict只能做等值比较的分支选择,要提供非等值的分支比较,只能用if语句。

例如:

score = 77

if score >= 90:

print("优秀")

elif 70 <= score < 90:

print("良好")

elif 60 <= score < 70:

print("及格")

else:

print("不及格")

使用if的好处是通俗易懂,使用dict的好处是将数据存储到数据结构中,而存储到数据结构中的数据可以是很复杂的。比如,将函数作为dict的value。

if/else三元表达式

即所谓的三目运算,只不过python中不支持x ? y : z的方式,而是使用if的另一种表达式语法。

对于if x: xxx; else yyy这样的两分支语句,可以使用更精简的表达式方式来描述:

xxx if x else yyy

虽然看上去和原始的没什么区别,但很多时候要方便的多。例如赋值:

if x:

a = y

else:

a = z

等价的三元if写法:

a = y if x else z

注意,上面"="表示这整行是一个赋值语句,右边的是评估对象,评估之后赋值给a,也就是等价于a = (y if x else z),而不是等价于(a = y) if x else z。

else不能缺少,否则不是三元运算。另外,if的分支代码体y和z都必须只能是单条语句,不能是多语句。也就是说,不能转换下面的代码格式为三元表达式。

if x:

statement1

statement2

else:

statement3

statement4

实际上,三元运算也能使用and / or来实现,还能使用序列 + bool()来实现。

例如:

a = ((x and y) or z)

一般比较少用and/or来实现分支,因为可读性不好,而且并不总是能和if等价。但有一种情况使用and/or非常方便:从多个值中选择一个真值。例如:

a = x or y or z or None

下面是使用序列 + bool()的方式实现的三元运算操作,思路是bool(CONDITION)作为序列的索引。

a = [y, z][bool(x)]

还是那句话,python中基本总是首选简单的、通俗易懂的方式。所以,用if吧。

python if语句多个条件-python if条件判断语句相关推荐

  1. python输入end退出循环_4.学习python获取用户输入和while循环及if判断语句

    0x00 Abstract 在开发中为了增加程序与用户的互动性需要增加获取用户输入的功能,在python中可以使用input()函数来获取用户的输入.当获取用户的各种输入后,我们需要使用逻辑语句来对数 ...

  2. java中if语句的用法_Java中的if判断语句用法介绍

    在实际生活中经常需要做出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行.Java中有一种特殊的语句叫做选择语句,它也需要对一些条件做出判断 ...

  3. python学习手册条件-Python学习手册之控制结构(一)

    在上一篇文章中,我们对 Python 进行了简单介绍和介绍了 Python 的基本语法,现在我们继续介绍 Python 控制结构. 查看上一篇文章请点击:https://www.cnblogs.com ...

  4. python出租车计费_python的基础程序——判断语句(以出租车计费为例)

    判断语句用于检测某个条件是否成立.如果成立,则执行判断语句内的程序:否则,跳过判断语句,执行后面的内容.(判断语句分为三类if,else,switch.但python编程语言中一般没有switch). ...

  5. python用for循环输出直角三角形_使用FOR循环语句在屏幕上输出一个由星号组成的直角三角形...

    题目要求: 请用C++的信息输出方式,使用循环语句在屏幕上输出一个由星号组成的直角三角形,形状如下: * ** *** **** ***** 要求: 完全使用C++的信息输出方式,即cout以及流插入 ...

  6. Python教学 | Python 中的分支结构(判断语句)【附本文代码和数据】

    查看原文:[数据seminar]Python教学 | Python 中的分支结构(判断语句)[附本文代码和数据] Part1引言 上期文章我们学习了组合数据类型字典以及元组,这标志着 Python 基 ...

  7. python基础一入门必备知识-python基础教程#菜鸟也能看懂的超简单入门必备知识...

    python基础语法教程 python一直是一门非常火爆的编程语言,从简洁的语法,全面的功能,也是得到许多编程萌新的重视,在刚刚接触编程不久的人来说,python就像是代码编程的入门语言,但其实想成为 ...

  8. C++学习笔记3[条件判断语句]

    C++学习目录链接: C++学习笔记目录链接(持续更新中) 文章目录 一.条件判断语句 1.判断语句 二.使用条件运算符进行判断 三.switch语句 四.判断语句嵌套 总结 一.条件判断语句 1.判 ...

  9. continue和break的区别,以及如何跳出多重循环(或者判断)语句

    先说一下很简单的continue和break的区别: continue:在循环语句中,它会中断正常的控制流程(跳出当次循环),将控制转移到continue所在的流程的首部,然后继续下一次循环例如: b ...

  10. CAPL编程中的思想:if...else...判断语句还能这么玩

    CAPL中的[if-else-]语句,和其他语言的没有什么区别,用来判断给定条件是否满足.我们先简单复习一下它的用法:根据给定条件的多少,有三种用法: (1) 只有一种给定条件:if void Fun ...

最新文章

  1. lazada本地店和跨境店的优劣势分析
  2. 怎么利用Excel统计各分数段的人数?(亲测sum函数可用)
  3. redis序列化_scrapy_redis中序列化源码及其在程序设计中的应用
  4. python画图中grid等于true_Python中的matplotlib画图总结
  5. java mongodb 返回所有field_JAVA高级之反射
  6. 1-4 数组元素的区间删除 (20 分)
  7. 程序员or需求工程师,谁决定软件的最高水平?
  8. 解决thrift: ···No such file or directory问题
  9. maven deploy到nexus报错:Return code is: 401, ReasonPhrase:Unauthorized
  10. 计算机上机单招试题及答案,全国高职单招计算机类模拟试卷考卷及答案
  11. 老牌下载站fixdown被挂马 威金蠕虫开始复苏
  12. 个性签名html,经典个性签名-2021最新QQ经典-QQ经典个性签名-腾牛个性网
  13. linux课程设计tiny6410,tiny6410烧写linux
  14. Schema指示器(Indicators)
  15. 《我的极品媳妇》方志强 王亚欣 小说读后感
  16. Linux安装和使用Xftp6和Xshell6教程
  17. 路径遍历(目录遍历)
  18. 珞珈1号-数据预处理流程
  19. 8086到80386汇编数据传送指令的扩展
  20. ethtool Linux网卡详解

热门文章

  1. Windows XP Professional系统修复的操作方法
  2. 017-平衡二叉树(三)
  3. 物联网架构成长之路(3)-EMQ消息服务器了解
  4. == ===区别,利用!= !==判空。
  5. 3、iOS Xcode创建protocol(代理).h文件
  6. 较复杂js的书写格式
  7. 【BETA】Mac技巧之查看苹果电脑 Mac OS X 系统是否开启 64 位运算,以及设置 32/64 位模式的方法...
  8. python爬虫案例-Python爬取租房数据实例,据说可以入门爬虫的小案例!
  9. python在线读-文档编辑工具Markdown
  10. python中文版-Python3.8.2下载