关注 鹿韭 每天学习新知识!
AI | 古典舞 | 个人成长 让我们一起终身学习
鹿韭的第 10篇原创
哈喽,大家好呀!这里是鹿韭的生活录,我是鹿韭。一个从事AI行业5年,喜欢古典舞和分享生活感悟的98年女生。

▲ 图片来源于网络
欢迎来到「从 0 到 1 学习 AI」的系列文章。面对 AI ,你是否也曾有过“怕学不会”的犹豫,或是“不知从何下手”的迷茫?别担心,这个系列就是为你量身打造的“新手友好指南”。
今天,我们将用一篇文章,深入且全面的讲完python语句之python选择语句(python语句内容太多,咱们分两期来分享)。
接下来让我们一起开启一场温柔而坚定的“智识冒险”吧!

▲ 图片来源于网络
一、python中的“行”
让代码方便人看,让代码方便python解释器读
在正式走入python选择语句前,我们先补充一下python基础知识。
思考一个问题:你写下的代码,在python解释器中它的执行顺序是什么样的?
点击显示答案▼

代码自上而下,逐行执行。如果执行到某行代码出现错误,程序就会报错,后面的代码将不会执行(程序死亡)。
--如何避免程序死亡,这是后面的知识,目前还未更新到那个阶段。
这里出现了一个概念“行”,在python里面行分为两种,物理行、逻辑行。代码逐行执行,指的是按逻辑行逐行执行。
物理行:我们眼睛看到的一行(编辑器里敲回车换行,就是一个物理行)。
逻辑行:机器理解的一行,即Python 解释器真正理解的一句完整代码(当作一条指令来执行)。
建议一个物理行对应一个逻辑行。如果非要一个物理行对应多个逻辑行,则需要使用分号;隔开。
# 4个物理行 4逻辑行a = "你好"b = "罗海燕"print(a+b)print("请叫我Harriet")# 一个物理行 3个逻辑行a = "你好";b = "罗海燕";print("你好,请叫我Harriet")
如果一个逻辑行过长,不方便我们阅读代码,则可以使用隐式换行或显式换行来进行代码换行。无论你换了多少行,python解释器都只将它当做一行代码来处理。
隐式换行:只要在括号里(()、[]、{})即可合法换行,我们称为隐式换行。--推荐写法
# 隐式换行(一个逻辑行,2个物理行)a = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9+ 10 + 11 + 12 + 13 + 14 + 15 )
显式换行:通过 \ (反斜杠)换行, 必须放在一行的末尾。
# 显示换行(一个逻辑行,3个物理行)old_six = "元丰六年十月十二日夜,解衣欲睡,\月色入户,欣然起行。念无与为乐者,遂至承天寺\寻张怀民。怀民亦未寝,持刀遂我于中庭。。。"

▲ 图片来源于网络
二、选择语句(if)
拒绝代码从上到下硬跑,让你的代码学会“转弯”
前面我们知道,代码的执行规则很简单:从上到下,逐行跑到底。
试想一个场景:丧尸过马路。丧尸只会一根筋往前走,完全不看红绿灯,也不会分析路况,遇到陷阱,直接就死给你看。

▲ 图片来源于网络
同理,没有 if 的代码,是“直线型僵尸”:只会从上往下硬跑,不会拐弯,不会避险,遇到异常直接挂掉。有了 if,代码才能像人一样拥有灵魂。
1
if语句的核心作用
if语句的核心作用:让程序根据条件判断,选择性的执行语句(使程序会判断、会选择、会变通)。

▲ 图片来源于网络
2
if语句类型
在python中if语句主要有3种形式,按复杂程度从小到大排,分别为:单分支、双分支、多分支。
最基础的if语句(单分支)
核心逻辑:只要条件满足,就执行“If”内的代码块。
语法结构:

代码块要缩进四个半角空格(通常敲一个tab键即可)
缩进表示代码属于“if”,不缩进表示不属于。
代码执行流程图:

说明:条件满足就执行粉色代码块,然后再继续往下执行后面的代码;条件不满足就跳过粉色代码块,直接往后执行后面的代码。

打王者吗?
打就timi~,不打你该干什么干什么去。
▲ 图片来源于网络
练习:出门上班,如果是下雨天,我们就带伞出门(判断条件,满足就干)。
print("准备出门上班去")weather = "下雨天"if weather == "下雨天":print("拿一把伞,今天下雨哦!")print("东西备齐了")print("走啦走啦")
运行结果:准备出门上班去拿一把伞,今天下雨哦!东西备齐了走啦走啦
If-else语句(双分支)
核心逻辑:只要条件满足就执行代码块1,否则就执行代码块2。
语法结构:

else不能单独出现,前面必须有if。
else与if具有互斥性。语句块1和语句块2,永远只执行其中一个。
代码执行流程图:

说明:条件满足就执行粉色代码块,然后再继续往下执行后面的代码;条件不满足就执行蓝色代码块,然后再继续往下执行后面的代码。(2个必须选一个执行,你才能往下走)

世纪难题
两个中必须救一个。
▲ 图片来源于网络
练习:出门去上班,如果遇到下雨天,我们就必须带伞或带雨衣,才能出门去上班(极限二选一:不带雨衣,那就默认带伞)
print("准备出门上班去")print("今天是下雨天")tool = input("请选择你要带的工具:")if tool == "雨衣":print("恭喜你,选择了雨衣!")else:print("恭喜你,选择了带伞!")print("东西备齐了")print("走啦走啦")
运行结果:准备出门上班去今天是下雨天请选择你要带的工具:我不带恭喜你,选择了带伞!东西备齐了走啦走啦
If-elif-else语句(多分支)
核心逻辑:用于多个条件判断,符合条件之一就执行对应代码块,否则就执行else。(层层过筛)
语法结构:
if 条件1:语句块1elif 条件2:语句块2...elif 条件n:语句块nelse:所有条件都不满足时的才执行的语句块
else 可以有0个或1个,且只能放在if语句的最后。
elif 子句可以有0个或无数个。
顺序很重要:从上到下挨个判断,只要判断到一个满足条件的,后面的elif和else都不再执行(n选1)。
代码执行流程图:

说明:多个代码块必须选一个执行,程序才能往下走
条件1满足就执行代码块1,条件1不满足就判断条件2;
条件2满足就执行代码块2,条件2不满足就判断条件3;
... ;
条件都不满足,执行else内的代码块,else永远兜底。

幸运大转盘
极限多选1。选且只能选其中一个。
▲ 图片来源于网络
练习:出门去上班,根据天气情况,判断需要带什么出门。如果是下雨天,我们就带伞;如果是大晴天,就带防晒帽;如果是下雪天,就带暖宝宝;如果都不是,那就啥都不带,带钥匙就行。(n选1)
print("准备出门上班去")weather = input("请输入今天的天气情况:")if weather == "下雨天":print("下雨天,那就带上伞出门吧!")elif weather == "大晴天":print("大晴天,那就带上防晒帽出门吧!")elif weather == "下雪天":print("下雪天,那就带上暖宝宝出门吧!")else:print("上面的都不是,那就带钥匙出门就行。")print("东西备齐了")print("我们出发吧!")
运行结果:准备出门上班去请输入今天的天气情况:大晴天大晴天,那就带上防晒帽出门吧!东西备齐了我们出发吧!
补充:If elif else连续区间的判断,只用判断单边条件是否满足即可(利用If else间的互斥性)。

▲ 图片来源于网络
练习:根据心理年龄与实际年龄,打印智商等级。智商IQ = 心理年龄MA 除以 实际年龄CA 乘以 100。
天才:140以上(包含)
超常:120-139之间(包含)
聪慧:110-119之间(包含)
正常:90-109之间(包含)
迟钝:80-89之间(包含)
低能:80以下
mental_age=int(input("请输入心理年龄:"))physical_age=int(input("请输入实际年龄:"))IQ=mental_age/physical_age*100if0<=IQ<=300:if IQ>=140:print("天才")elif IQ>=120:print("超常")elif IQ>=110:print("聪慧")elif IQ>=90:print("正常")elif IQ>=80:print("迟钝")else:print("低能")else:print("老登,你输的值计算出来不在正常IQ范围,请重新输入")
3
If 嵌套
If嵌套 :在条件里套条件。有时候,一个条件满足后,还需要进一步进行判断(俄罗斯套娃,一层又一层,层层筛选)
上面我们介绍了,if语句的3种主要形式,这三种形式可以根据需求任意进行嵌套。为了方便代码阅读,建议嵌套不超过3层。

清代选妃
层层选拔,层层过滤。
循环那条线先去掉,下一期会分享相关内容。
▲ 图片来源于网络
练习:女生对男朋友的灵魂拷问。
# 获得的最终好感度answer = input("请回答你爱不爱我:")level_of_love = input("请回答有多爱:")# 判断结果if answer == "爱":print("回答满意,留你狗命")if level_of_love == "很爱":print("回答满意,比心")elif level_oflove == "一般爱":print("回答一般满意,不开心了")else:print("回答不满意,分手")else:print("你不爱我,分手")
运行结果:请回答你爱不爱我:爱请回答有多爱:一般爱回答满意,留你狗命回答一般满意,不开心了

▲ 图片来源于网络
4
if语句的条件表达式(三元表达式)
条件表达式(又称三元表达式):
条件成立,取值1;条件不成立取值2。
一行代码搞定 “if else” 结构,简化代码,增强代码可读性。
语法结构:
变量 = 值1if 条件 else 值2给变量做“二选一”赋值。
可用于函数返回“二选一”。(函数返回值后续章节分享)
Python的三元表达式与其他语言的不一致,多数语言的三元表达式为:a ? b : c 如果条件a为ture,取 “?”后面的值,否则取“:”后面的值。

▲ 图片来源于网络
练习:在终端中输入一个年份,如果是闰年为变量day赋值29,否则赋值28。
year = int(input("请输入年份:"))# 常规ifelse结构写法# if year % 4 == 0 and year % 100 != 0:# day = 29# else:# day = 28# print(f"{year}年的2月有{day}天")# 条件表达式day = 29if year % 4 == 0and year % 100 != 0else28print(f"{year}年的2月有{day}天")
刚开始写不出来没事,就写原始结构,写完后再拖拽成一行就行。
5
if 语句的真值表达式
if、elif 后面跟着的那一串判断条件,就叫「真值表达式」。它的任务只有一个:算出 True(真) 或 False(假)。然后if 根据结果决定代码跑不跑,是真(前面提到的条件成立)就跑,是假(前面提到的条件不成立)就不跑。
真值表达式:条件本身
if 语句:用条件控制流程
真值表达式通常由比较运算符和逻辑运算符组成,这两种运算符的运算结果是bool类型。
a >= 10name == "彭于晏"is_login and is_vip
在Python中,以下8种情况算False(假),其余的都是Ture。
"" (空字符串)
[] (空列表)
{} (空字典)
() (空元组)
set() (空集合)
0 (数字0)
False (布尔假)
None
示例:
if100:print("是真值(True)")else:print("是假值(False)")#等同于ifbool(100):print("是真值(True)")else:print("是假值(False)")
对于上面两种情况来说,其表达效果相同。

▲ 图片来源于网络
编程就像生活,从来不是一条直线,真实的生活充满了各种“如果”,希望这篇文章能帮你理清思路,让你的代码像你的思维一样清晰。
python的if选择语句到这里就完结了,感谢观看,本期分享就到这里啦,我们下期见~

我是鹿韭
这里是鹿韭的生活录
世间所有美好莫过于与你相遇~
28岁开启我的自媒体人生,在这里我将分享技术、生活!
感谢你的喜欢+关注

作者:鹿韭
图源:网络
点亮【赞和转发】祝你好运且发财,喜欢我,记得来朋友圈找我。

Happy Time
都看到这里了
记得关注,下次还能找到我哟~
回见~
前情回顾: