概述
一、while循环与break语句
1.while语句
基本形式:
while 判断条件1:
循环语句
当判断条件1
为true
时,执行循环语句,直到判断条件1
为假。
count = 0
while(count <= 10):
print("现在计数为:",count)
count += 1
2.break语句
基本形式:
while 判断条件1:
循环语句
判断条件2:
break
当判断条件1
为true
时执行循环语句。若此时判断条件2
为true
,执行break
跳出while
循环,若判断条件2
一直为false
,则执行while
循环,一直到判断条件1
为false
。
count = 0
while(count <= 10):
print("现在计数为:",count)
count += 1
if(count > 5):
break
例:具体要求如下:
填入当已处理零件数小于总零件数count < partcount时的while循环判断语句;
在停电时填入break语句跳出循环。
partcount = int(input())
electric = int(input())
count = 0
#请在此添加代码,当count < partcount时的while循环判断语句
#********** Begin *********#
while(count < partcount):
#********** End **********#
count += 1
print("已加工零件个数:",count)
if(electric):
print("停电了,停止加工")
#请在此添加代码,填入break语句
#********** Begin *********#
break
#********** End **********#
#测试输入:
3
0
#预期输出:
已加工零件个数: 1
已加工零件个数: 2
已加工零件个数: 3
二、for循环与continue语句
for
循环可以遍历序列成员,直到序列中的成员全部都遍历完后才跳出循环。循环语句中有一个continue
语句,这个语句的作用是跳出当前循环。
1.for语句
基本形式:
for iteration_var in sequence:
循环语句
依次遍历序列中的成员,执行循环语句。
list = ['python','java','c','c++']
for book in list:
print("当前书籍为:",book)
2.continue语句
基本形式:
for iteration_var in sequence:
循环语句
if 判断语句1:
continue
当遍历序列时,如果判断语句1
为真,则执行continue
语句,跳出当前循环,直接进入下一次循环。
list = ['python','java','c','c++']
count = 0
for book in list:
count += 1
if count == 3:
continue
print("当前书籍为:",book)
例:具体要求如下:
填入循环遍历studentname列表的代码;
当遍历到缺席学生时,填入continue语句跳过此次循环。
absencenum = int(input())
studentname = []
inputlist = input()
for i in inputlist.split(','):
result = i
studentname.append(result)
count = 0
#请在此添加代码,填入循环遍历studentname列表的代码
#********** Begin *********#
for student in studentname:
#********** End **********#
count += 1
if(count == absencenum):
#在下面填入continue语句
#********** Begin *********#
continue
#********** End **********#
print(student,"的试卷已阅")
#测试输入:
2
zhangsan,lisi,wangwu,zhaoliu,qianqi
#预期输出:
zhangsan 的试卷已阅
wangwu 的试卷已阅
zhaoliu 的试卷已阅
qianqi 的试卷已阅
三、循环嵌套
循环嵌套就是在一个循环体里嵌入另一个循环。
循环嵌套分为for
循环嵌套和while
循环嵌套。
1.for循环嵌套
基本形式:
for iteration_var in sequence:
for iteration_var in sequence:
循环语句
for x in range(1,10):
for y in range(0,x):
result = x + y
print(result)
2.while循环嵌套
基本形式:
while 判断条件:
while 判断条件:
循环语句
x = 1
y = 0
while x < 10:
while y < x:
result = x + y
print(result)
y += 1
x += 1
y = 0
例:具体要求如下:
当输入学生人数后,填入在for循环遍历学生的代码;
当输入各科目的分数后的列表后,填入for循环遍历学生分数的代码。
studentnum = int(input())
#请在此添加代码,填入for循环遍历学生人数的代码
#********** Begin *********#
for student in range(studentnum):
#********** End **********#
sum = 0
subjectscore = []
inputlist = input()
for i in inputlist.split(','):
result = i
subjectscore.append(result)
#请在此添加代码,填入for循环遍历学生分数的代码
#********** Begin *********#
for score in subjectscore:
#********** End **********#
score = int(score)
sum = sum + score
print("第%d位同学的总分为:%d" %(student,sum))
#测试输入:
2
23,56,78,90
21,56,78,76,91
#预期输出:
第0位同学的总分为:247
第1位同学的总分为:322
四、迭代器
1.迭代器的优点
-
迭代器访问与
for
循环访问非常相似,但是也有不同之处。对于支持随机访问的数据结构如元组和列表,迭代器并无优势。因为迭代器在访问的时候会丢失数据索引值,但是如果遇到无法随机访问的数据结构如集合时,迭代器是唯一访问元素的方式; -
迭代器仅仅在访问到某个元素时才使用该元素。在这之前,元素可以不存在,所以迭代器很适用于迭代一些无法预先知道元素总数的巨大的集合;
-
迭代器提供了一个统一的访问集合的接口,定义
iter()
方法对象,就可以使用迭代器访问。
2.理解迭代器
可直接作用于for
循环的数据类型如list
、tuple
、dict
等统称为可迭代对象:Iterable
。使用isinstance()
可以判断一个对象是否是可迭代对象。
from collections import Iterable
result = isinstance([],Iterable)
print(result)
result = isinstance((),Iterable)
print(result)
result = isinstance('python',Iterable)
print(result)
result = isinstance(213,Iterable)
print(result)
#结果为:
True
True
True
False
可以被next()
函数调用并不断返回下一个值的对象称为迭代器:Iterator
。next()
函数访问每一个对象,直到对象访问完毕,返回一个StopIteration
异常。使用isinstance()
可以判断一个对象是否是Iterator
对象。
from collections import Iterator
result = isinstance([],Iterator)
print(result)
result = isinstance((),Iterator)
print(result)
result = isinstance((x for x in range(10)),Iterator)
print(result)
#结果为:
False
False
True
所有的Iterable
都可以通过iter()
函数转化为Iterator
。
3.定义迭代器
当自己定义迭代器时,需要定义一个类。类里面包含一个iter()
函数,这个函数能够返回一个带next()
方法的对象。
class MyIterable:
def __iter__(self):
return MyIterator()
class MyIterator:
def __init__(self):
self.num = 0
def __next__(self):
self.num += 1
if self.num >= 10:
raise StopIteration
return self.num
4.复制迭代器
迭代器当一次迭代完毕后就结束了,在此调用便会引发StopIteration
异常。如果想要将迭代器保存起来,可以使用复制的方法:copy.deepcopy():x = copy.deepcopy(y)
,不可使用赋值的方法,这样是不起作用的。
例:具体要求如下:
当输入一个列表时,填入将列表List转换为迭代器的代码;
填入用next()函数遍历迭代器IterList的代码。
List = []
member = input()
for i in member.split(','):
result = i
List.append(result)
#请在此添加代码,将List转换为迭代器的代码
#********** Begin *********#
List = iter(List)
#********** End **********#
while True:
try:
#请在此添加代码,用next()函数遍历IterList的代码
#********** Begin *********#
num = next(List)
#********** End **********#
result = int(num) * 2
print(result)
except StopIteration:
break
#预期输入:
5,6,7,8,9
#预期输出:
10
12
14
16
18
最后
以上就是纯真歌曲为你收集整理的Python基础——循环结构的全部内容,希望文章能够帮你解决Python基础——循环结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复