【小白学 Python】吃了一顿火锅,学会了 Python 三大核心控制结构:小心看饿了

i小码哥

共 5007字,需浏览 11分钟

 ·

2020-09-28 06:03

小白系列 第 10

周末与同学吃火锅的时候,突然想到整个吃饭的流程特别像 Python 的三大控制结构。 

具体怎么讲呢?  请听小码哥细细品味火锅里的 Python 。

为了节省时间,我们提前一天打电话预定了位子。但是,这家的火锅店实在太火了,我们到的时候前面还是排满的长长的队伍,有18桌。

随着时间流失,排在我们前面的小伙伴们一个个依次进入了饭店,享受到了美食。而我们还在疯狂的刷着抖音,看着娱乐八卦。

突然,我想到 漫长的等候过程特别像 Python的顺序结构,而火锅店的服务员就是 Python 执行器,因为只有被他叫到的号才能进入火锅店,而剩下的号只能等待,不能跳号,也不能弃号。

排队号就是 Python 程序,一个号相当于一条 Python 代码。


这个流程 正是 Python 的 顺序结构, 因为 Python 的代码就是一条一条执行的。具体如下:

01
顺序结构


顺序结构就是按照你写的代码顺序执行,也就是一条一条语句顺序执行。

也就是一个个的排队号码牌被服务员叫进去吃饭。如下图:



本节内容以前的代码(比如:【小白学Python】怎么理解字典呢?)都是顺序结构,如上图所示,其中语句1、语句2为代码。
 
语句1或语句2又被称为代码块。我们也可以把代码块理解为吃饭的人数,有的是一个人,有的是2个人,有的是很多人。

代码块又称为语句块,是一组代码的集合。

在吃火锅的时候,个号对应一堆人在Python语言中,Python 根据 【缩进】 来判断代码行与前一行的关系。

如果代码的缩进相同,Python认为它们为一个语句块;否则就是两个语句块。

一般使用4个空格或tab按键缩进代码,有的IDE自动缩进代码,比如Pycharm.

例子:
this is one blockthis is a new line in the one block this issecond block this isa new line in the second block xxxxxxthis is the three blockthis is a new line in the three block


当你开始编写代码的时候,你一定要注意代码的缩进问题,因为这是很多新手学 Python容易犯的错误之一: 干货 | 学Python,请避开这些坑!

需要缩进的代码一定要缩进,否则是得不到正确的结果,也有可能出现语法错误。

如果没有出现语法错误,也就是能跑成功代码。这个就是运行错误或者逻辑错误。调试这样的代码,只有仔细查找或画出流程图。




一眨眼,半个小时过去了。终于等到服务员叫我们的号了。于是乎,我们高兴的接入了饭店,看到了期待已久的菜单,开始了点菜之旅。

点菜真是一个技术活,对于有选择困难症的人来说。你有吗?

到底吃点哪个菜呢?火锅的配菜实在太多了,首先锅底就有很多种,有辣的、清汤的、潘茄的、咖喱的等等。由于我们都可以吃辣,我们选择了重庆麻辣锅,返过来,如果不能吃辣,只能选择清汤的或者其他不辣的锅底。

这个选择锅底的过程正是 Python 的分支结构。具体如下:


02
分支结构


分支结构又称为选择结构,意思是程序代码根据判断条件,选择执行特定的代码

比如我们根据大家的口味选择了麻辣锅底。不同种类的火锅锅底可以看作 Python 代码,我们自己就是程序执行器。只有被我们选中的锅底种类才能出现在我们面前,否则就是出错了。
Python 代码也是如此:

如果条件为真,程序执行一部分代码;否则执行另一部分代码。

也可以理解为判断条件把程序分为两部分,根据条件结果只能执行其中一部分。

再比如:

高考为条件,考上了就去上大学;否则不去上大学,去做其他的,条条大道通罗马,只要努力都可以成功。

具体执行流程如下图所示,条件为真时执行语句1,否则执行语句2.

 

在火锅店,手指图片的动作就可以表示选择了。但是,在Python语言中,选择结构的语法使用关键字 if、elif、else 来表示,并且不同的排列组合具有了不同的语法点。

注意:  本文列出5种非常常用的语法结构,也可以说是分支结构的常用语法点,必须要掌握的哦。

是不是有点怕怕的感觉,害怕学不会?,因为语法点太多了。

请认真往下看,一定可以学会的,因为本文采用了一个生活化的例子解释: 

虽然我们等了半个小时,但是,该火锅店推出了优惠套餐,针对不同的人群具有不同的折扣活动,具体如下:

夫妇套餐,并且享受打8折优惠单身套餐,并且享受9折优惠情侣套餐,并享受7.5安慰套餐,并且享受7折优惠
还请帮忙宣传我们餐馆,多谢!

如果让你实现下面的功能,你该怎么考虑呢?比如,用什么语法结构表示?请跟我往下看

语法1:if语句,判断条件为真,执行语句组


if 判断条件:
语句组

具体解释如下:

1.   判断条件就是前面的各种运算符表达式的一种,或者几种的组合,比如 age >= 18;

2.   判断条件后面是以冒号(:)结尾;

3.   如判断条件为真,执行语句组(一行或多行代码);

4.   语句组为一个代码块,使用缩进表示。

例子
merried = Trueif merried: print("请接受我们的夫妇套餐,并且享受打8折优惠") print("还请帮忙宣传我们餐馆,多谢!\n") 请接受我们的夫妇套餐,并且享受打8折优惠
还请帮忙宣传我们餐馆,多谢!


语法2:  if-else语句,判断条件为真,执行语句组1;否则执行语句组2

if 判断条件:
语句组1else: 语句组2
例子
# if-else 语句
merried = Falseif merried: print("请接受我们的夫妇套餐,并且享受打8折优惠") print("还请帮忙宣传我们餐馆,多谢!\n")else: print("请接受我们的单身套餐,并且享受9折优惠") print("也请帮忙宣传我们餐馆,多谢!\n") 请接受我们的单身套餐,并且享受9折优惠
也请帮忙宣传我们餐馆,多谢!


语法3:  if-elif-else,有三个判断条件的情况,只有符合其中的一个,才执行相应的代码,然后跳出所有判断语句。

if 判断条件1:
语句组1elif 判断条件2:
语句组2else:    语句组3
例子
# if-elif-else 语句
merried = Falsedouble = Trueif merried and double: print("请接受我们的夫妇套餐,并且享受打8折优惠") print("还请帮忙宣传我们餐馆,多谢!\n")elif merried or double: print(" 请接受我们的情侣套餐,并享受7.5折") print("还请帮忙宣传我们餐馆,多谢!\n")else: print("请接受我们的单身套餐,并且享受9折优惠") print("也请帮忙宣传我们餐馆,多谢!\n") 请接受我们的情侣套餐,并享受7.5
还请帮忙宣传我们餐馆,多谢!

 
语法4: if-elif-elif-.....-else,有多个判断条件的情况,只有符合其中的一个,才执行相应的代码

if 判断条件1:
语句组1elif 判断条件2:
语句组2elif 判断条件3: 语句组3else: 语句组4
例子
# if-elif-elif-else 语句
merried = Falsedouble = Falsebreak_up = Trueif merried: print("请接受我们的夫妇套餐,并且享受打8折优惠") print("还请帮忙宣传我们餐馆,多谢!\n")elif double: print(" 请接受我们的情侣套餐,并且享受7.5折优惠") print("还请帮忙宣传我们餐馆,多谢!\n")elif break_up: print("请接受我们的安慰套餐,并且享受7折优惠\n")else: print("请接受我们的单身套餐,并且享受9折优惠") print("也请帮忙宣传我们餐馆,多谢!\n") 请接受我们的安慰套餐,并且享受7折优惠

语法5:嵌套代码块,if语句里面嵌套使用if语句,嵌套的if语句是上面4种语法的任何一种。

if 判断条件1
if 判断条件2: 语句组1 else
语句组2else: 语句组3


例子
# 嵌套语句
merried = Falsedouble = Falsebreak_up = Trueif not merried: ifdouble: print(" 请接受我们的情侣套餐,并且享受7.5折优惠") print("还请帮忙宣传我们餐馆,多谢!\n") elifbreak_up: print("请接受我们的安慰套餐,并且享受7折优惠\n") else: print("请接受我们的单身套餐,并且享受9折优惠") print("也请帮忙宣传我们餐馆,多谢!\n")else: print("请接受我们的夫妇套餐,并且享受打8折优惠") print("还请帮忙宣传我们餐馆,多谢!\n") 请接受我们的安慰套餐,并且享受7折优惠

经过不断地纠结,我们终于点完了。让我们高兴的时候,不到10分钟有一个机器人来到了我们面前。神奇的是机器人一直不断的给我们送我们点的菜,直到菜单上的菜被送完为止。

机器人根据菜单给我们送不同的菜品,这个流程特别像 Python 循环结构,具体如下:



03
循环结构


不断的重复为循环,比如机器人送菜给我们。但是记住:循环结构是在一定条件下反复执行某部分代码的操作。好比机器人根据菜单给我们送菜,不能多一个也不能少一个菜。

注意:这是 Python程序数据中使用率最高的一个结构。

在Python语言中,常见的循环结构有 for 循环和 while 循环 具体执行流程如图所示: 


具体解释:  当条件为真是,Python执行语句组,只要条件满足就会多次循环执行语句组。否则执行循环外的语句

由于篇幅有限,具体的循环结构 放在下一篇文章介绍:

通过一段火锅,我们了解了 Python的三大控制结构了,分别是:顺序结构、分支结构(选择结构)以及循环结构。
所以,程序控制结构就是控制程序执行顺序的结构。

无论任何高级项目 或者 优秀算法都可以使用这三种结构来设计完成。

这三种控制结构也是结构化程序设计的核心,与之相对的是面向对象程序设计。



好了,学完了三个控制结构,咱们看一个笑话:

我们经常听到的 C C++、Java 或者Python有什么区别呢?

有名的C语言就是结构化语言,而C++、Java 或者Python等都是面向对象的语言。

下面的一则笑话解释了区别:

情人节,有人看到C一个人喝酒,便问:你的好哥们C++、Java、Python他们呢?
C说:都过情人节去了。
问:你为什么不过呢?
C说:因为我没有对象(对象是面向对象设计的重要概念)。


 以上内容摘自《零基础轻松学 Python》
零基础学 Python,看下嘛

 只需7天时间,跨进Python编程大门,已有3800+加入
【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。
【赠予】价值109元 0基础入门在线课程,免费送给圈友们,供巩固
浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报