热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EduCoderLinux与Python编程2021(循环结构)

注意:所有题目均在一个博客中嘿嘿😎第1关:While循环与break语句任务描述程序的第三大结构是循环结构。在此结构中,

注意:所有题目均在一个博客中
嘿嘿😎


第1关:While 循环与 break 语句

任务描述
程序的第三大结构是循环结构。在此结构中,通过一个判断语句来循环执行一个代码块,直到判断语句为假时跳出循环。循环语句分为while循环、for循环、循环嵌套和迭代器。循环语句中有一个语句break,通过这个语句可以跳出整个循环。

以下场景便模拟了循环结构与跳出循环的现实场景:
在一个工厂的流水线上每天需要加工零件100件,且每件零件所做的加工都是一样的,也就是说流水线每天要循环做相同的工作100次。但是如果在加工时突然停电,则流水线停止对后面所有零件的加工,跳出循环。

本关的任务是让学习者学会使用while循环与break语句。

相关知识
while循环和break的结构如下图1所示:

图1
图 1
while语句
while语句的基本形式为:

while 判断条件1:
循环语句
当判断条件1为true时,执行循环语句,直到判断条件1为假。例如:

count = 0
while(count <&#61; 10):
print(“现在计数为:”,count)
count &#43;&#61; 1
break语句
break语句的基本形式为&#xff1a;

while 判断条件1&#xff1a;
循环语句
判断条件2&#xff1a;
break
当判断条件1为true时执行循环语句。若此时判断条件2为true&#xff0c;执行break跳出while循环&#xff0c;若判断条件2一直为false&#xff0c;则执行while循环&#xff0c;一直到判断条件1为false。
例如&#xff1a;

count &#61; 0
while(count <&#61; 10):
print(“现在计数为:”,count)
count &#43;&#61; 1
if(count > 5):
break
如果您想了解更多循环结构的相关知识&#xff0c;请参考&#xff1a;[美] Katie Cunningham 著《 Python 入门经典》第三章。

编程要求
本关的编程任务是补全line.py文件中的判断语句部分&#xff0c;具体要求如下&#xff1a;

填入当已处理零件数小于总零件数count

在停电时填入break语句跳出循环。

本关涉及的代码文件line.py的代码框架如下:

partcount &#61; int(input())
electric &#61; int(input())
count &#61; 0
请在此添加代码&#xff0c;当count ########## Begin ##########
########## End ##########
count &#43;&#61; 1
print(“已加工零件个数:”,count)
if(electric):
print(“停电了&#xff0c;停止加工”)
# 请在此添加代码&#xff0c;填入break语句
########## Begin ##########
########## End ##########
测试说明
本文的测试文件是line.py&#xff0c;具体测试过程如下&#xff1a;

平台自动编译生成line.exe&#xff1b;

平台运行line.exe&#xff0c;并以标准输入方式提供测试输入&#xff1b;

平台获取line.exe输出&#xff0c;并将其输出与预期输出对比。如果一致则测试通过&#xff0c;否则测试失败。

以下是平台对src/step1/line.py的样例测试集&#xff1a;
测试输入&#xff1a;

3
0
预期输出&#xff1a;

已加工零件个数: 1
已加工零件个数: 2
已加工零件个数: 3

partcount &#61; int(input())
electric &#61; int(input())
count &#61; 0
#请在此添加代码&#xff0c;当count
#********** Begin *********#
while count < partcount:
#********** End **********#count &#43;&#61; 1print("已加工零件个数:",count)if(electric):print("停电了&#xff0c;停止加工")#请在此添加代码&#xff0c;填入break语句#********** Begin *********#break#********** End **********#

第2关&#xff1a;for 循环与 continue 语句

任务描述
Python 中还为我们提供了一种循环结构&#xff1a;for循环。for循环可以遍历序列成员&#xff0c;直到序列中的成员全部都遍历完后才跳出循环。循环语句中有一个continue语句&#xff0c;这个语句的作用是跳出当前循环。

以下场景便模拟了for循环结构与跳出当前循环的现实场景&#xff1a;
全班同学的试卷为一个序列&#xff0c;老师在批阅一个班同学的试卷时&#xff0c;需要从第一个同学开始一个一个批阅&#xff0c;然后根据每个同学的具体答卷情况给出最后得分。如果评阅到某张试卷时发现这位同学缺考&#xff0c;为空白卷&#xff0c;那么就不评阅这张试卷&#xff0c;直接评阅下一张。当全部同学的试卷都评阅完毕时&#xff0c;结束评阅&#xff0c;跳出循环。

本关的任务是让学习者学会使用for循环与continue语句。

相关知识
for循环和continue结构如下图1所示&#xff1a;

图1
图 1
for语句
for语句的基本形式为&#xff1a;

for iteration_var in sequence:
循环语句
依次遍历序列中的成员&#xff0c;执行循环语句。例如&#xff1a;

list &#61; [‘python’,‘java’,‘c’,‘c&#43;&#43;’]
for book in list:
print(“当前书籍为:”,book)
continue语句
continue语句的基本形式为&#xff1a;

for iteration_var in sequence:
循环语句
if 判断语句1&#xff1a;
continue
当遍历序列时&#xff0c;如果判断语句1为真&#xff0c;则执行continue语句&#xff0c;跳出当前循环&#xff0c;直接进入下一次循环。例如&#xff1a;

list &#61; [‘python’,‘java’,‘c’,‘c&#43;&#43;’]
count &#61; 0
for book in list:
count &#43;&#61; 1
if count &#61;&#61; 3:
continue
print(“当前书籍为:”,book)
如果您想了解更多循环结构的相关知识&#xff0c;请参考&#xff1a;[美] Katie Cunningham 著《 Python 入门经典》第三章。

编程要求
本关的编程任务是补全checkWork.py文件中的部分代码&#xff0c;具体要求如下&#xff1a;

填入循环遍历studentname列表的代码&#xff1b;

当遍历到缺席学生时&#xff0c;填入continue语句跳过此次循环。

本关涉及的代码文件checkWork.py的代码框架如下:

absencenum &#61; int(input())
studentname &#61; []
inputlist &#61; input()
for i in inputlist.split(’,’):
result &#61; i
studentname.append(result)
count &#61; 0
请在此添加代码&#xff0c;填入循环遍历studentname列表的代码
########## Begin ##########
########## End ##########
count &#43;&#61; 1
if(count &#61;&#61; absencenum):
# 请在下面填入continue语句
########## Begin ##########
########## End ##########
print(student,“的试卷已阅”)
测试说明
本文的测试文件是checkWork.py&#xff0c;具体测试过程如下&#xff1a;

平台自动编译生成checkWork.exe&#xff1b;

平台运行checkWork.exe&#xff0c;并以标准输入方式提供测试输入&#xff1b;

平台获取checkWork.exe输出&#xff0c;并将其输出与预期输出对比。如果一致则测试通过&#xff0c;否则测试失败。

以下是平台对src/step2/checkWork.py的样例测试集&#xff1a;
测试输入&#xff1a;

2
zhangsan,lisi,wangwu,zhaoliu,qianqi
预期输出&#xff1a;

zhangsan 的试卷已阅
wangwu 的试卷已阅
zhaoliu 的试卷已阅
qianqi 的试卷已阅

absencenum &#61; int(input())
studentname &#61; []
inputlist &#61; input()
for i in inputlist.split(&#39;,&#39;):result &#61; istudentname.append(result)
count &#61; 0
#请在此添加代码&#xff0c;填入循环遍历studentname列表的代码
#********** Begin *********#
for student in studentname:
#********** End **********#count &#43;&#61; 1if(count &#61;&#61; absencenum):#在下面填入continue语句#********** Begin *********#continue#********** End **********#print(student,"的试卷已阅")

第3关&#xff1a;循环嵌套

任务描述
在Python 中&#xff0c;除了while循环与for循环&#xff0c;还有循环嵌套。循环嵌套就是在一个循环体里嵌入另一个循环。以下场景便模拟了循环嵌套与跳出循环的现实场景&#xff1a;
在一次考试结束后&#xff0c;学校需要统计每位同学的考试总成绩。在这个场景中&#xff0c;我们先将所有同学组成一个序列&#xff0c;然后遍历每位同学。在遍历到每位同学时还要遍历每位同学的每门分数并进行计算&#xff0c;最后得出每位同学的总成绩。

本关的任务是让学习者学会使用循环嵌套。

相关知识
循环嵌套分为for循环嵌套和while循环嵌套。

for循环嵌套
for循环嵌套的基本形式为&#xff1a;

for iteration_var in sequence:
for iteration_var in sequence:
循环语句
例如&#xff1a;

for x in range(1,10):
for y in range(0,x):
result &#61; x &#43; y
print(result)
while循环嵌套
while循环嵌套的基本形式为&#xff1a;

while 判断条件&#xff1a;
while 判断条件&#xff1a;
循环语句
例如&#xff1a;

x &#61; 1
y &#61; 0
while x <10:
while y result &#61; x &#43; y
print(result)
y &#43;&#61; 1
x &#43;&#61; 1
y &#61; 0
如果您想了解更多循环嵌套的相关知识&#xff0c;请参考&#xff1a;[美] Katie Cunningham 著《 Python 入门经典》第三章。

编程要求
本关的编程任务是补全sumScore.py文件中的部分代码&#xff0c;具体要求如下&#xff1a;

当输入学生人数后&#xff0c;填入在for循环遍历学生的代码&#xff1b;

当输入各科目的分数后的列表后&#xff0c;填入for循环遍历学生分数的代码。

本关涉及的代码文件sumScore.py的代码框架如下:

studentnum &#61; int(input())
请在此添加代码&#xff0c;填入for循环遍历学生人数的代码
########## Begin ##########
########## End ##########
sum &#61; 0
subjectscore &#61; []
inputlist &#61; input()
for i in inputlist.split(’,’):
result &#61; i
subjectscore.append(result)
# 请在此添加代码&#xff0c;填入for循环遍历学生分数的代码
########## Begin ##########
########## End ##########
score &#61; int(score)
sum &#61; sum &#43; score
print(“第%d位同学的总分为:%d” %(student,sum))
测试说明
本文的测试文件是sumScore.py&#xff0c;具体测试过程如下&#xff1a;

平台自动编译生成sumScore.exe&#xff1b;

平台运行sumScore.exe&#xff0c;并以标准输入方式提供测试输入&#xff1b;

平台获取sumScore.exe输出&#xff0c;并将其输出与预期输出对比。如果一致则测试通过&#xff0c;否则测试失败。

以下是平台对src/step3/sumScore.py的样例测试集&#xff1a;
测试输入&#xff1a;

2
23,56,78,90
21,56,78,76,91
预期输出&#xff1a;

第0位同学的总分为:247
第1位同学的总分为:322

studentnum &#61; int(input())
#请在此添加代码&#xff0c;填入for循环遍历学生人数的代码
#********** Begin *********#
for student in range(studentnum):
#********** End **********#sum &#61; 0subjectscore &#61; []inputlist &#61; input()for i in inputlist.split(&#39;,&#39;):result &#61; isubjectscore.append(result)#请在此添加代码&#xff0c;填入for循环遍历学生分数的代码#********** Begin *********#for score in subjectscore:#********** End **********#score &#61; int(score)sum &#61; sum &#43; scoreprint("第%d位同学的总分为:%d" %(student,sum))

第4关&#xff1a;迭代器

任务描述
迭代器用来循环访问一系列元素&#xff0c;它不仅可以迭代序列&#xff0c;也可以迭代不是序列但是表现出序列行为的对象。本关的任务是让学习者理解与学会使用迭代器。

相关知识
迭代器的优点
迭代器访问与for循环访问非常相似&#xff0c;但是也有不同之处。对于支持随机访问的数据结构如元组和列表&#xff0c;迭代器并无优势。因为迭代器在访问的时候会丢失数据索引值&#xff0c;但是如果遇到无法随机访问的数据结构如集合时&#xff0c;迭代器是唯一访问元素的方式&#xff1b;

迭代器仅仅在访问到某个元素时才使用该元素。在这之前&#xff0c;元素可以不存在&#xff0c;所以迭代器很适用于迭代一些无法预先知道元素总数的巨大的集合&#xff1b;

迭代器提供了一个统一的访问集合的接口&#xff0c;定义iter()方法对象&#xff0c;就可以使用迭代器访问。

理解迭代器
可直接作用于for循环的数据类型如list、tuple、dict等统称为可迭代对象:Iterable。使用isinstance()可以判断一个对象是否是可迭代对象。例如&#xff1a;

from collections import Iterable
result &#61; isinstance([],Iterable)
print(result)
result &#61; isinstance((),Iterable)
print(result)
result &#61; isinstance(‘python’,Iterable)
print(result)
result &#61; isinstance(213,Iterable)
print(result)
结果为&#xff1a;

True
True
True
False
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。next()函数访问每一个对象&#xff0c;直到对象访问完毕&#xff0c;返回一个StopIteration异常。使用isinstance()可以判断一个对象是否是Iterator对象。例如&#xff1a;

from collections import Iterator
result &#61; isinstance([],Iterator)
print(result)
result &#61; isinstance((),Iterator)
print(result)
result &#61; isinstance((x for x in range(10)),Iterator)
print(result)
结果为&#xff1a;

False
False
True
所有的Iterable都可以通过iter()函数转化为Iterator。

定义迭代器
当自己定义迭代器时&#xff0c;需要定义一个类。类里面包含一个iter()函数&#xff0c;这个函数能够返回一个带next()方法的对象。例如&#xff1a;

class MyIterable:
def iter(self):
return MyIterator()
class MyIterator:
def init(self):
self.num &#61; 0
def next(self):
self.num &#43;&#61; 1
if self.num >&#61; 10:
raise StopIteration
return self.num
复制迭代器
迭代器当一次迭代完毕后就结束了&#xff0c;在此调用便会引发StopIteration异常。如果想要将迭代器保存起来&#xff0c;可以使用复制的方法:copy.deepcopy():x &#61; copy.deepcopy(y)&#xff0c;不可使用赋值的方法&#xff0c;这样是不起作用的。

如果您想了解更多迭代器的相关知识&#xff0c;请参考&#xff1a;[美] Wesley J.Chun 著《 Python 核心编程》第八章。

编程要求
本关的编程任务是补全ListCalculate.py文件中的部分代码&#xff0c;具体要求如下&#xff1a;

当输入一个列表时&#xff0c;填入将列表List转换为迭代器的代码&#xff1b;

填入用next()函数遍历迭代器IterList的代码。

本关涉及的代码文件ListCalculate.py的代码框架如下:

List &#61; []
member &#61; input()
for i in member.split(’,’):
result &#61; i
List.append(result)
请在此添加代码&#xff0c;将List转换为迭代器的代码
########## Begin ##########
########## End ##########
while True:
try:
# 请在此添加代码&#xff0c;用next()函数遍历IterList的代码
########## Begin ##########
########## End ##########
result &#61; int(num) * 2
print(result)
except StopIteration:
break
测试说明
本文的测试文件是ListCalculate.py&#xff0c;具体测试过程如下&#xff1a;

平台自动编译生成ListCalculate.exe&#xff1b;

平台运行ListCalculate.exe&#xff0c;并以标准输入方式提供测试输入&#xff1b;

平台获取ListCalculate.exe输出&#xff0c;并将其输出与预期输出对比。如果一致则测试通过&#xff0c;否则测试失败。

以下是平台对src/step4/ListCalculate.py的样例测试集&#xff1a;
预期输入&#xff1a;

5,6,7,8,9
预期输出&#xff1a;

10
12
14
16
18

List &#61; []
member &#61; input()
for i in member.split(&#39;,&#39;):result &#61; iList.append(result)
#请在此添加代码&#xff0c;将List转换为迭代器的代码
#********** Begin *********#
IterList &#61; iter(List)
#********** End **********#
while True:try:#请在此添加代码&#xff0c;用next()函数遍历IterList的代码#********** Begin *********#num &#61; next(IterList)#********** End **********#result &#61; int(num) * 2print(result)except StopIteration:break


推荐阅读
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 对于许多初学者而言,遇到总线错误(bus error)或段错误(segmentation fault/core dump)是极其令人困扰的。本文详细探讨了这两种错误的成因、表现形式及解决方法,并提供了实用的调试技巧。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 本文深入探讨了面向切面编程(AOP)的概念及其在Spring框架中的应用。通过详细解释AOP的核心术语和实现机制,帮助读者理解如何利用AOP提高代码的可维护性和开发效率。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 在处理数值数据时,有时需要将浮点数数组中的元素转换为整数。NumPy 提供了多种方法来实现这一目标,其中 np.trunc() 函数可以方便地对数组进行取整操作。 ... [详细]
author-avatar
mthp
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有