不允许你没有加入社群!
⛳️ 前言
2022 年真的太难了,没想到写给 78 技术人社群的第 2 篇学习博客拖延了这么久的时间,估计第一批成员已经学有所成了吧。
本篇博客继续给大家带来 Python 中的重点知识,分支语句。
任何一门语言,基本都包含下述三种逻辑:
- 顺序语句;
- 判断语句;
- 循环语句。
本篇博客要解决的就是后两种语句在编程中的落地实现,由于顺序语句就是正常的线性思维,所以不再进行特别说明。
在正式开始学习前,先用中文写一下两种语句的基本逻辑:
判断语句就是 正确的时候执行一段代码,错误的时候执行另一段代码,循环语句是 当满足某条件,就反复执行 。
⛳️ if 语句
在上一篇博客 中,咱已经了解了 Python 字符串相关知识,肯定有同学说:“你怎么没继续讲变量,整型变量,运算符这些知识点呀,不按套路出牌?”。
同学,当你问出这个问题的时候,你已经知道这些概念,那我们就不用多讲了,继续学就行了
if 语句是 Python 语言中最基本的条件判断语句,它的基本逻辑就是*当某个表达式为真的时候,就执行其内部代码块*
,理解这句话就已经掌握了 if 语句语法,而接下来要做的就是用代码将其实现即可。
if 条件表达式:
代码第一行
代码第二行
上述表达可以称作伪代码,在学习的时候,可以借助该形式理解程序结构和梳理逻辑。
写代码的时候,一定要注意中英文标点符号的问题。
学习任何编程,语法格式和概念名词都是重点,理解它们才能快速的进入编程大门,所以这里必须要岔开话题,对概念名词进行特殊说明。
第一个要点if
是 Python 里面的关键字,你不能把这个特殊的单词用作变量名,函数名,类名等,下文学到的 while
也是关键字/保留字。
第二个要点条件表达式
:很重要的概念,是编码领域的抽象名词,先理解,在应用。
条件 二字表是非,表真假;
表达式 在 Python 中表示的是一个值,这个就特别抽象了,表达式=值,所以在看一下下述代码:
1 # 表达式
1+1 # 表达式
2<6 # 表达式
True # 表达式
这些抽象概念其实才是学编程真正的难点(好像理工科知识都有类似的特点)。此时在把 条件表达式 联系在一起就容易理解了,条件是真假,表达式是一个值,所以 条件表达式是一个真假值,这里一定要理解到位,否则后面学习起来会碰到障碍(说白了,就是跟不上了)。
再补充一个知识点,啥是真假值?在 Python 中,True
和 False
这两个值表示真假,而它们所在的数据类型叫做布尔类型,转换成普通语句就是:布尔类型的变量仅有两个值,分别是 True
和 False
。
你会发现,编程就是这么有趣,理解概念之后,很多问题解释起来就简单多了。
写下你的第一个分支语句代码吧:
if True:
print("我是 if 语句")
输出内容如下所示:
语法结构掌握之后,就可以在条件表达式下功夫进行学习了,例如判断下述代码是否为正确的条件表达式。
1 # 条件表达式
0 # 条件表达式
5>2 # 条件表达式
a # 条件表达式
"" # 条件表达式
1==2 # 条件表达式
False # 条件表达式
就上述一段代码,还能延申出很多知识点,但是先放一下,后文我们继续学习,先把 if 语句盘完,其相关知识点还涉及两个,一个是 else
语句,一个是 elif
语句。
依旧是先看一段代码,然后在理解:
age = 18
name = "橡皮擦"
if age <=18:
str_ = "本文作者: {},她的年纪是:{}".format(name,age)
print(str_)
else:
str_ = "本文作者: {},她的年纪是:{}".format(name,age)
print(str_)
输出内容如下所示:
上述代码出现了一个新的语句 else:
,简单翻译就知道其表示否则的意思,也就是说当 if
语句后跟的 条件表达式 不为真时,那执行 else
语句中的代码。
这里最大的难题,也是初学者要解决的难点,并不在语法结构和代码理解上,而是代码层级,直接进入读代码部分,如果下述内容都可以理解,else
语句也就彻底掌握了。
if True:
print("第一个 if 语句")
if True:
print("第二个 if 语句")
if False:
print("第三个 if 语句")
else:
print("第一个 else 语句")
if True:
print("第四个 if 语句")
else:
print("第二个 else 语句")
if True:
print("第五个 if 语句")
这只是演示代码,实战中代码要更加复杂,如果你可以直接阅读,或明白我为何展示这段代码,else
语句在初学阶段最难的是层级 二字。
如果单纯的看代码无法理解,在配合图片为大家展示一下:
注意上图标记 if
else
缩进相同的为一组,并且 if
语句可以单独存在,但 else
语句不可以,直接使用就是语法错误(invalid syntax)。
这里有一个小提示,在 Python 代码缩进的时候,要习惯使用 Tab
键进行操作,而不要敲空格键(官方建议每层缩进为 4 空格,可以在 IDE 中对 Tab 键进行设置)。
if
语句和 else
语句都可以进行嵌套,这一点要牢记。
if
语句的知识点还没有完全说完,还有一个语句,叫做 elif。
其实这个也很容易理解,elif
就是 else if
的简写,例如下述需求。
用户选择性别的时候,可以选择男,女,保密 三个选项,在数据库存储的时候,男对应 1,女对应 0,未知对应-1。
上述需求转换为代码之后,就是分支语句由三部分构成,代码示例如下所示:
sex = "男"
if sex == "男":
db_sex = 1
elif sex == "女":
db_sex = 0
else:
db_sex = -1
学习 elif
的时候,要注意下述三点提示信息:
-
elif
语句可以出现多次; -
elif
语句必须紧接if
语句出现,不能出现在else
语句之后; -
elif
语句不能单独出现; -
elif
语句可以与if
语句一起出现。
上述内容都是文字上的描述,依旧抽象,具体内容我们查看代码。
# `elif` 语句可以出现多次;
if True:
pass
elif True:
pass
elif True:
pass
elif True:
pass
# 上述代码是正确的
# -----------------------------------------------------------
# `elif` 语句必须紧接 `if` 语句出现,不能出现在 `else` 语句之后;
if True:
pass
elif True:
pass
elif True:
pass
elif True:
pass
else:
pass
# 上述代码是正确的
if True:
pass
else:
pass
elif True:
pass
elif True:
pass
# 上述代码是错误的
# -----------------------------------------------------------
# `elif` 语句不能单独出现;
elif True:
pass
elif True:
pass
# 上述代码是错误的
# -----------------------------------------------------------
# `elif` 语句可以与 `if` 语句一起出现。
if True:
pass
elif True:
pass
# 上述代码是正确的
# -----------------------------------------------------------
elif
语句最重要的知识点内容,都在上述代码中了,反复学习即可。
下面在把刚刚欠的知识点进行一下补充。
1
为什么是一个条件表达式,按照咱们刚刚学过表达式的概念判断,其应该为整数表达式。
没错,但是因为我们将 1
放在了 if
语句的后面,所以语法规范要求其转换为条件表达式,所以可以得到下述结论。
条件表达式仅有 2 个结果,一是 True,另一个 False。
- 任何非 0 整数都可以转换为真,即 True;
- 任何非空字符串都可以转换为真,即 True;
-
>
,<
,==
等符号是条件运算符,即使用该运算符之后,会返回一个布尔值;
⛳️ while 语句
在 Python 中最先接触的循环语句,就是 while
循环,其语法格式如下所示:
while 条件表达式:
待执行的代码块
待执行的代码块
不属于 while 语句的代码块
有了前文的铺垫,这时你最先理解的依旧是 条件表达式 的重要性,当其值为真时,执行 while
语句内部代码,为假时,不执行。
接下来直接进行代码阅读环节。
i = 0 # 声明一个全局变量
while True:
# 变量执行+1操作
i+=1
# 输出变量 i
print(i)
运行代码,会发现出现了 死循环 现象,该情况是未来我们要尽量避免的代码。
死循环:代码无终止状态,一直运行下去。
上述代码声明了一个全局变量,然后条件表达式 设置为 True
,此时一直为真,所以循环语句内部的代码会一直运行下去,每次都进行 +1 操作,即得到如下结果。
一般情况下,我们编写循环代码是需要一个终止状态的,请阅读如下代码:
i = 0
while i<10:
i+=1
print(i)
代码运行结果如下所示:
当输出数字 10 之后,代码停止运行,即当 条件表达式 i<10 不成立的时候,代码停止运行,那条件表达式为 False 是如何形成的,就涉及 while
语句的运行规则了,还是文字说明。
- 第一次循环:当 i = 0 的时候,满足 i<10 这一条件,所以执行 while 内部代码,即执行 i+1,并且输出 i;
- 第二次循环:第二次循环 i = 1 ,重新到条件表达式 i<10 位置进行判断,满足这一条件,所以执行 while 内部代码,即执行 i+1,并且输出 i;
- 第三次循环:第三次循环 i = 2 ,重新到条件表达式 i<10 位置进行判断,满足这一条件,所以执行 while 内部代码,即执行 i+1,并且输出 i;
- ……
- 第 N 次循环,此时 i =10,已经不满足 i<10 这一条件了,终止循环,代码结束运行,这就是
while
循环的运行过程。
如果在代码运行过程中,出现了 死循环 情况,可以使用组合键
Ctrl+C
终止代码运行。
掌握 while
循环的关键点就是掌握其运行流程!
实战中 while
语句可以进行嵌套,但是尽量不要超过三层,否则会大幅度增加代码理解难度,例如你可以阅读下述代码,然后吐槽一下这是哪个队友写的。
a = 10
while a < 15:
print("a=",a)
a+=1
b = 1
while b<5:
print("b=",b)
b+=1
c = 1
while c < 5:
print("c=",c)
c+=1
临摹上述代码,自行在 Python 环境中进行测试,你会劝自己以后不写三层循环的。
while
语句中也可以嵌套 if
语句,这里还需要补充两个知识点,即两个语句。
-
break
语句:终止当前循环; -
continue
语句:跳过当前循环。
下面的环节依旧是阅读代码,理解逻辑。
i = 0
while i<5:
i+=1
if i==3: # 当 i == 3 的时候,跳出当前循环
continue
print('i=',i)
代码运行结果如下所示,其输出内容跳过了 i = 3,然后循环继续运行,这就是 continue
的价值。
上述代码换做 break 之后,你可以继续查看效果。
i = 0
while i<5:
i+=1
if i==3: # 当 i ==3 的时候,终止当前循环
break
print('i=',i)
代码运行结果,当 i=3
时,循环不在运行。
在代码实战中,continue 跳过当前循环,这一场景使用较少。
⛳️ 总结
第二天的学习到这里就可以了,本篇博客的重点就分为两部分,if
语句和 while
语句,学习的难点是条件表达式,本文学习完毕,你已经掌握了程序运行的三大语句了。
课后题
- 写一个颜色翻译器,可以识别 10 种颜色;
- 实现在字符串中查找子字符串,例如 梦想橡皮擦的 Python 专栏写的还不错,在其中查找擦,如果有,返回真;
- 输出 1-100 之间的所有偶数,所有基数,所有 5 的倍数;
????????????????????????
???? 你正在阅读 【梦想橡皮擦】 的博客
???? 阅读完毕,可以点点小手赞一下
???? 发现错误,直接评论区中指正吧
???? 橡皮擦的第 723 篇原创博客
从订购之日起,案例 5 年内保证更新