实验 4 Python 的流程控制

编程入门 行业动态 更新时间:2024-10-08 00:27:08

实验 4 Python 的<a href=https://www.elefans.com/category/jswz/34/1770115.html style=流程控制"/>

实验 4 Python 的流程控制

实验 4 Python 的流程控制


目录

实验 4 Python 的流程控制

Python 文件的创建和执行

流程控制

条件判断

比较大小游戏

更多判断

循环控制

💡 while 循环

💡 break 和 continue

玩转实验环境

总结


这节课,来点更专业的

你终于来了,快搬个小板凳坐下,今天我们来学点更专业的东西~

在上节课中,我们都是在 Python 的 命令行交互环境中学习 Python。但在实际的开发工作中,我们要把代码写进一个文件里,这样不管拿到哪里都可以执行,而且方便修改和调试。

所以在开始之前,我们先学习一下怎么创建 Python 文件并执行。

知识点

  • Python 文件的创建和执行
  • 流程控制
  • 条件判断
  • 循环

Python 文件的创建和执行

在开发过程中经常被使用到的 Python 程序,是一个或多个的脚本文件,通常会以 .py 作为文件后缀。当完成脚本的编写后,可以用 Python 解释器来运行 Python 脚本。

在实验环境中,你可以使用 vimsublime 或 gedit 来编写 Python 程序,这里以 gedit 举例:

💡 创建和打开文件

你可以通过两种方式,创建和打开 Python 文件:

1. 命令行方式创建

在 Xfce 终端中输入:

gedit test.py

 

这行命令的作用是:用 gedit 打开 test.py 文件;如果该文件不存在,则 创建 它并打开。

执行命令后,我们看到 gedit 弹了出来,而且文件名是 test.py

2. 在 gedit 中创建

还可以先打开 gedit 程序,再点击菜单栏的 文件-新建,即可创建一个新的空白文件。

💡 保存文件

在 test.py 文件中输入以下的代码内容:

print('hello shiyanlou')

 

输入完成后,按下 ctrl + s 或点击 保存 按钮,即可保存。

(如果你是在 gedit 中新建的文件,保存时请输入文件名 test.py,并注意存放路径是否在 home 目录)

💡 执行 Python 文件

保存文件后,先关闭 gedit ,然后打开 Xfce 终端,直接使用 Python3 解释器执行 test.py :

python3 test.py

 

可以看到 hello shiyanlou 输出到了屏幕上。


流程控制

下面,我们来学习计算机系统中的一大核心知识——流程控制。

「 流程控制 」是一个程序的关键所在。简单的说,「流程控制」就是告诉计算机什么时候该干什么事。比如一个游戏中,你要让计算机清晰地知道 —— 什么情况下会掉血,按下什么键代表攻击,过多久能复活……

学会流程控制后,你就可以用程序做很多事,比如:

写一个扣税计算器:

写一个抽卡游戏:

接下来,我们先来学习流程控制中的条件判断。


条件判断

其实我们每天都生活在条件判断中:早上如果闹钟 ⏰ 响了,执行起床/赖床程序;如果到了 12 点,执行吃饭程序;如果到了 6 点,执行下班或放学……

如果有一天,你的女朋友对你说,“下班买 2 个西瓜回来”,你会这样执行:

换成 Python 代码,买西瓜的程序还是一样的,只不过把 如果否则 换成了 ifelse 。

挺容易理解的吧?其实就是用代码告诉计算机:什么条件下该做什么

很多编程语言都会使用 if 、else 作为流程控制的关键字。 if 语句最简单的构成是这样的:

if SomethingHappen:DoThisCode

 

⚠️ 注意第 1 行末尾的冒号 : 和第 2 行的 4 个空格缩进,原因会在后面详解。

除此之外,Python 还加入了 elif,即 else if,方便执行更复杂的判断。

如:买 2 个西瓜,4 个苹果,5 根香蕉

代码如下(示例,非标准代码) :

if 看到卖西瓜的:    #当满足条件时,执行内部的代码;如不满足,则跳到下一个语句块买 2 个
elif 看到卖苹果的:买 4 个
elif 看到卖香蕉的:买 5 根
else:   # 如果上面的条件都不满足,则执行 else 内部的代码不买

比较大小游戏

让我们写一个比大小的游戏,进一步熟悉条件判断的语法:

在终端中输入 gedit compare.py,然后在打开的 gedit 中输入:

a = int(input("Please enter a number: "))
## 让用户输入一个数字,用变量 a 接受
if a > 10:   ##如果 a > 10,则执行内部的代码,反之跳过print('a > 10')## 请特别注意语句块内的空格缩进,请使用 4 个空格缩进。## 请特别注意语句块内的空格缩进,请使用 4 个空格缩进。## 请特别注意语句块内的空格缩进,请使用 4 个空格缩进。
elif a == 10:print('a == 10')
else:print('a < 10')

 

⚠️ 注意:以下五点,都很重要

  • if、elif、else 后要加冒号 :,告诉计算机这是一个判断语句,如满足条件,就执行语句块内部的代码。
  • Python 使用严格的缩进,来区分代码块的执行级别。比如 if 下面的代码要缩进四个空格,代表的是 if 内部的功能;else 下面的代码同样要缩进四个空格,代表是 else 内部的功能。
  • 推荐使用 4 个空格缩进;也可以在编辑器内,把 Tab 键改为四个空格,用 Tab 键缩进。
  • 用 input() 接受到的用户输入,类型为字符串 string,但字符串不能和整数比较大小,所以要用 int() 函数将数据转换为 int 整数类型。
  • 使用 int() 函数,可以把括号里的内容转换为整数,但要注意:只有数字或纯数字的字符串才能转换,如'a'、'abc'这样的内容就不行;float 类型的数字会只保留整数部分。

保存文件,关闭 gedit 后,在终端中输入 python3 compare.py ,运行刚刚的程序。

输入数字后,屏幕上打印出了比较结果,第一个条件控制程序成功


更多判断

💡 在一个判断中,还可以嵌套另一套判断,比如当男人喜欢上一个人时:

if 那个人是女人:if 单身:你可以追求她else:放弃
else:成为基友

 

💡 还可以使用 and 和 or 进行综合控制

if 那个人是女人 and 单身:   # A 和 B必须同时满足才能执行你可以追求她
else:成为基友

 

又比如:你今天不想吃饭,除非吃火锅或者烧烤:

if 火锅 or 烧烤:   # A 或 B 满足一个即可执行吃饭
else:不吃饭

 

在程序开发过程中,当遇到一些代码暂时不写(等到后面写),又不想程序在执行时报错的情况,可以使用 pass 关键字,程序执行遇到 pass 就会跳过这里的代码块继续执行后面的代码:

>>> a = 3
>>> if a<1:
...     print("a<1")
... else:
...     pass
...
>>> #程序没有报错

 


循环控制

对人类来说,「循环」糟糕透了,它往往意味着重复和枯燥。但大多数人都在循环中工作和生活,比如收集用户信息、下载 500 张图片、上 12306 抢春运的火车票、给 20 个亲戚解释你不是修电脑的……想想就如噩梦一般,相信没有人想过这种流水线的生活。

但有了计算机,一切都大不一样了:它任劳任怨、不会抱怨,而且工作速度比人快成千上万倍。你只需要制订好一些规则,然后在旁边泡杯茶,看云展云舒即可。

Python 中包含两种循环方式,一种是 for 循环,一种是 while 循环

💡 for 循环

for循环主要用于对一个范围内的每个元素进行指定操作。

语法如下:

比如在一个班级里,点名册就是一份列表,每个姓名都是一个元素。现在你是班长,每天上课前的点名太费劲了,你需要一个点名程序。

用 for 循环,2 行代码即可实现该功能:

namelist = ['Sophia','Emma','Olivia','Ava','Mia','Isabella','Zoe','Lily','Emily','Madison','Jackson','Aiden','Liam','Lucas','Noah','Mason','Ethan','Caden','Logan','Jacob']
# 点名册
for i in namelist:print(i)

 

在环境中练习一下:

💡 提示: namelist 可以通过右侧工具栏中的「剪切板」粘贴进去;print() 前同样要注意 4 个空格的缩进。

💡 range() 函数

如果需要处理一组数字列表,并且数字列表满足一定的规律,可以使用 Python 的内置函数 range()(范围)。

使用 range(x) 函数,可以生成一个从 0 到 x-1 的整数序列,比如我们想打印 0 到 9 的数,可以这样写:

for a in range(10):print(a)

 

还可以用 range(a,b) 取某个区间的数,比如要打印 1 到 10 ,你可以写:

for a in range(1,11):print(a)

 

⚠️ 注意: range(a,b) 包头不包尾,尾数要 + 1 。

🔥 小练习:帮依萍写日记

书桓走后,可怜的依萍每天只能对着日记,遥寄思念。现在,请你用 for 循环帮依萍写出“书桓走的第 n 天,想他”,一直写到第 10 天。

💡 提示:

  • range(a,b)
  • for ... in ...
  • print('书桓走的第 {} 天,想他'.format(i))
  • 如果忘了 .format() 的用法,可以在上节实验文档中查阅一下

💡 while 循环

另外一种循环是 while 循环,它的语法和用途都和 for 循环 有些不同。

for 循环 适用于 已知循环次数 的循环,所以后面跟的是次数或区间,到达指定次数就停止。

但现实生活中,我们往往不知道要循环多少次,才能达成目标。比如“愚公移山”,愚公不知道门前有多少座山,但只要门前有山,就要盘它,这种情况我们要怎么写?

while 循环 可以帮你解决这个问题。while 后面跟的是一个条件,只要条件满足,这个循环就会一直进行下去。

具体语法如下:

有了 while 循环 ,愚公可以这样移山:

while 山还在:盘它!

 

🔥 小练习: 下面,我们来用 while 循环,打印 1 到 10 的数字,亲手感受一下 while 循环有哪些不同:

a = 1
while a <= 10:  ##同样注意冒号和语句块缩进print(a)a = a + 1

 

 


这个程序是这样运转的:

 

一开始,a 的预设值为 1。

来到第二行的 while 循环,此时 a <= 10,满足条件,进入循环。

进入第三行,执行循环中的命令,打印 a 的值。

进入第四行,把 a 的值加 1 ,a 的值变成了 2,至此一轮循环结束。每轮循环结束后,程序会跳转到循环开头(即图中的第二行),再次判断是否满足循环的条件,如满足则再次执行循环。在这里,a = 2 ,2 <= 10,满足条件,则再次进入循环……

……

直到 a > 10 为止,循环条件不再满足,循环停止。

再总结一下两种循环的区别:


💡 break 和 continue

💡break

在循环中,我们可以使用 break 和 continue 这两个关键字,来进一步控制流程。

break 表示停止当前循环,如:

for a in range(10):if a == 5:breakprint(a)

 


程序会打印 0到 4 之间的数字。

💡continue

continue 表示跳过当前循环轮次,去执行下一轮循环。

比如这次我们想打印 1 到 10 的数,但不想打印 5 ,代码可以这样写:

a = 0
while a < 10:a = a + 1if a == 5:continueprint(a)

 

至此,流程控制 就暂时介绍完了。流程控制 在编程中非常重要,请下来多多练习和总结,后面还有一个挑战等待你完成。


玩转实验环境

为了大家能更好地使用实验环境,我们有必要简单介绍下右侧工具栏的功能。

相信很多同学都发现了,我们右侧的工具栏有很多按钮,它们的功能分别如下:

💡 切换界面

实验启动后,默认进入的界面是图形界面(桌面),如果使用图形界面感觉较卡,可以尝试切换到字符界面。点击该按钮可以在两种界面之间切换。

💡 剪切板

学习界面工具栏上有一个剪刀按钮,点击此按钮会打开剪切板。

剪切板用来在外部与实验环境之间进行拷贝与粘贴。

向环境拷入内容:如果要拷贝内容到实验环境,只需将内容复制粘贴到剪切板的输入框,点击保存按钮,实验环境内部即可使用右键粘贴到这些内容。

从环境拷出内容:在环境中使用右键选择复制,然后打开剪切板,剪切板中的输入框显示内容即实验环境中的系统剪切板内容。

💡 共享桌面

点击共享桌面,可以把自己的桌面分享给其他人。共享桌面的主要应用场景是演示操作和协作答疑。目前实验楼的楼 + 课程都由助教提供共享桌面的实时答疑服务。

点击共享桌面会弹出 2 个链接,分别对应共享桌面的两种模式:

  • 只读模式:对方只能远程观看你的操作,主要应用在远程教学演示操作。
  • 协作模式:对方可以在你的实验环境中进行操作。当你遇到问题时,就可以把协作链接分享给朋友或老师,以便对方进行远程协助。

根据需要将对应的链接发给朋友,朋友即可访问你的桌面。

💡 下载代码

点击 下载代码 按钮,会将实验环境中的 /home/shiyanlou/Code 目录自动打包并下载到本地。你可以将代码等需要导出的文件放到这个目录下。

💡 上传文件

点击 上传文件 按钮,可以上传一个大小不超过 5M 的文件到 /home/shiyanlou/Code 目录下。

💡 环境信息

点击 环境信息 按钮可以看到当前 shiyanlou 用户的默认密码,当然你也可以使用 sudo passwd shiyanlou 命令自己设置。

💎 保存环境(会员)

开通会员后,支持保存 2 个环境和联网等功能,相当于拥有了 2 台可以长期保存的专属实验机。

当你实验没有做完、或者临时有事需要离开时,就可以把环境保存起来,下次实验时继续使用该环境,里面的配置、代码等等都不会改变。

💎 SSH 直连(会员)

如果你的网络较慢,或者实验环境较卡,可以使用 SSH 直连的方式连接实验环境。

SSH 直连指的是使用本地的 SSH 客户端连接实验环境,把实验环境当成一台远端的 SSH 服务器来使用,连接后在 SSH 客户端中进行实验操作。由于需要联网,SSH 直连也是会员才能使用的功能。


总结

我们来回顾一下今天的知识点:

  • Python 文件的创建和执行
  • 流程控制
  • 条件判断
  • 循环

请课下把这些知识整理在你的 「脑图」 中,类似这样:

💡 不要忘了作业:

课后,我们为你准备了一个挑战 —— 用前面所学的知识完成一个小游戏。我们趁热打铁前进吧!


 

更多推荐

实验 4 Python 的流程控制

本文发布于:2024-03-12 10:58:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1731349.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:流程   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!