python直到型循环_值得收藏!16段代码⼊门Python循环语句作者 | 李明江 张良均 等
python基础代码语句出⾃ | ⼤数据(ID:hzdashuju)
导读:本⽂重点讲述for语句和while语句。for语句属于遍历循环,while语句属于当型循环。除了两个循环语句外,还介绍了break、continue与pass三个⽤于控制循环结构中的程序流向的语句。在此基础之上,还介绍了列表推导式,这是⼀种特殊的循环语句。
循环语句⼜称为重复结构,⽤于反复执⾏某⼀操作。⾯对⼤数量级的重复运算,即使借助计算机,重复编写代码也是费时的,这时就需要借助循环语句。使⽤循环语句⼀般要⽤到条件判断,根据判断式的返回值决定是否执⾏循环体。
循环分为两种模式,⼀种是条件满⾜时执⾏循环体;另⼀种则相反,在条件不满⾜时执⾏循环体。前者称为当型循环,后者称为直到型循环。
在图1中,虚线框内是⼀个当型循环结构,此结构包含判断条件和循环体,以及连接各部分的流向线。程序执⾏时,先判断条件的真假。判断为真时,则执⾏循环体;判断为假时,不再执⾏循环体,循环结束。当型循环先进⾏条件判断,如果满⾜循环条件,再执⾏循环体,因此⼜被称为前测试型循环。当型循环结构在图2中,虚线框内是⼀个直到型循环结构,此结构包括判断条件和循环体,以及连接各部分的
流向线。程序执⾏时,先执⾏⼀次循环体,再判断执⾏循环的结果是否满⾜判断条件。满⾜条件时,再次执⾏循环体;不满⾜条件时,不再执⾏循环体。直到型循环在执⾏判断前先进⼊循环体运⾏,因此⼜被称为后测试型循环。直到型循环结构Python中主要有两种循环语句,即for 语句和while语句。前者采⽤遍历的形式指定循环范围,后者视判断式返回值的情况⽽决定是否执⾏。要更灵活地操纵循环的流向,就要⽤
到break、continue和pass等语句。
01 for
for循环是迭代循环,在Python中相当于⼀个通⽤的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。不同于C语⾔,Python中的for语句将遍历系列中的所有成员,遍历顺序为成员在系列中的顺序。需要注意,在for循环中改变任何序列的内容都是危险的!
for语句不属于当型循环或直到型循环,它遍历序列对象内的元素,对每个元素运⾏⼀次循环体,循环的步数在程序开始执⾏时已经指定,不属于条件判断。
在for语句中,for和in搭配组成for-in循环结构,for-in循环依次把list或tuple中的每个元素迭代出来。for语句的基本语法格式如下。
transmit的副词
for 变量 in 序列:
操作语句for语句常⽤的语法格式及其参数说明如下所⽰:
序列:接收序列,表⽰遍历范围。⽆默认值
操作语句:接收操作语句,表⽰执⾏⼀段代码。⽆默认值exist啥意思
程序的执⾏从“for变量in序列”开始,该语句把序列中的每个元素代⼊变量,执⾏⼀遍操作语句1,重复的次数就是序列中元素的个数。
为了展⽰for循环的遍历功能,依次打印list中的姓名,如代码清单1所⽰。
代码清单1:for语句遍历提取str
# 单纯遍历的for语句
names = ['Michael', 'Bob', 'Tracy']
# 遍历输出names中的元素
for name in names:
print(name)输出结果:
Michael
Bob
Tracyfor语句同样可以实现dict的遍历⽅法,如代码清单2所⽰。
代码清单2:for语句遍历查询dict
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 遍历键值对
print('key_value:', end = '')
for key, value in dic.items():
print(key, value, sep = ':', end = ' ')
# 遍历键
labelme使用教程
print('keys:', end = '')
for key in dic.keys():
print(key, end = ' ')
# 遍历值
print('values:', end = '')
for value in dic.values():
print(value, end = ' ')输出结果:
key_value:a:1 b:2 c:3 d:4边框图片大全简笔画 简单
keys:a b c d
values:1 2 3 4从代码清单2可以看到,for语句中⽤于遍历的“变量”不仅可以是Python默认的指代词,也可以是常规的变量。
和条件语句⼀样,循环语句也可以使⽤嵌套,作⽤同样是丰富程序的功能性。设计⼀个成绩录⼊系统,就必然要录⼊姓名和课程这两类信息,仅靠⼀层循环是⽆法实现的,可使⽤两层循环结构,如代码清单3所⽰。
代码清单3:嵌套for语句
students = ['⼩明', '⼩红']
subjects = ['语⽂', '数学']
sum1 = []
avg = []
for i in students:
print ('开始录⼊%s的考试成绩!'%i)
sum = 0
for j in subjects:
print('请输⼊%s成绩:'%j)
score = int(input())
sum += score
average = sum / 2
avg.append(average)
sum1.append(sum)
print(students, '的总分依次是', sum1, ',', '平均分依次是', avg)
print('完成成绩录⼊!')输出结果:
开始录⼊⼩明的考试成绩!
请输⼊语⽂成绩:
97
请输⼊数学成绩:
90
开始录⼊⼩红的考试成绩!
请输⼊语⽂成绩:
89
请输⼊数学成绩:
100
['⼩明', '⼩红'] 的总分依次是 [187, 189] , 平均分依次是 [93.5, 94.5]
完成成绩录⼊!理论上,for循环也可以⽆限嵌套,但并不推荐。
02 while
while语句是Python中最常⽤的递归结构。区别于for循环,while循环结构包含条件判断式,是⼀种条件循环,属于当型循环。
while语句最基本的形式包括⼀个位于顶部的布尔表达式,⼀个或多个属于while代码块的缩进语句。也可以在结尾处包含⼀个else代码块,它与while代码块是同级的,组成while-else的形式。while语句的基本语法格式如下。
while 条件表达式:
操作语句 1
操作语句 2while语句常⽤的参数及其说明如下所⽰:
条件表达式:接收布尔表达式,表⽰判断条件是否成⽴。⽆默认值
操作语句:接收操作语句,表⽰执⾏⼀段代码。⽆默认值
执⾏while语句时,只要顶部的条件表达式返回真值,就⼀直执⾏while部分嵌套的递归代码,当条件表达式返回假值时,不再执⾏操作语句,程序跳出while结构。
while语句的基础使⽤⽅法如代码清单4所⽰。
代码清单4:while语句
sum = 0
n = 99
while n > 0:
sum += n
n -= 2
print(sum)输出结果:2500
如果布尔表达式不带有、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写⼊⼀个⾮零整数时,视为真值,执⾏循环体;写⼊0时,视为假值,不执⾏循环体。也可以写⼊str、list或任何序列,长度⾮零则视为真值,执⾏循环体;否则视为假值,不执⾏循环体。
如果布尔表达式始终返回1,while语句就变成⽆限循环,如代码清单5所⽰。
代码清单5:while语句⽆限循环
# 布尔表达式为常数1,始终为真值
while 1:
print('循环')输出结果:
循环
循环
…
# 布尔表达式每次递归运算都为2,始终为真值
x, y = 2, 1
while x / y:
print('循环')
x = x * 2
y = y * 2输出结果:
循环
循环
…运⾏代码清单5,将会不断打印出“循环”。代码清单5展⽰了制造⽆限循环的两种⽅式,既可以在while后写⼊⼀个固定的真值,也可以写⼊⼀个⼀直⽣成真值的表达式。要终⽌⽆限循环,可以使⽤快捷键Ctrl+C中断循环的执⾏,也可以⽤循环终⽌语句,这将在下⽂中介绍。
灵活地利⽤while语句中的布尔表达式及代⼊表达式的递归值,可以实现特别的功能,如代码清单6所⽰。
代码清单6:while语句实现str截取
string = 'abcd'
while string:
print(string)
# 该语句的递归计算是,每次从str的第2个字符开始截取
string = string[1:]输出结果:
abcd
bcd
cd
d代码清单6包含⼀个⾃减迭代值,它并不通过明显的运算符实现⾃减,⽽是利⽤索引法则,x变量⼀直从str中第2个值截取⾄结尾,每次都将位于str最前⾯的字符截取掉,最终只剩下⼀个字符时,再次截取就只有空的结果,布尔表达式返回0,循环终⽌。
通过代码清单5和代码清单6可以看到,灵活地利⽤递归式,可以实现程序流向的控制。
while循环同样可以使⽤嵌套,嵌套的while循环实现成绩录⼊系统如代码清单7所⽰。
代码清单7:嵌套while语句
j = 1
while j <= 2:
sum = 0
i = 1
name = input('请输⼊学⽣姓名:')
while i <= 2:
print ('请输⼊第%d门的考试成绩: '%i)
sum += int(input())
i += 1
avg = sum / (i-1)
print(name, '的平均成绩是%d'%avg)
j += 1
print('学⽣成绩输⼊完成!')输出结果:
请输⼊学⽣姓名:⼩明
请输⼊第1门的考试成绩:
98
请输⼊第2门的考试成绩:
88
⼩明 的平均成绩是93
请输⼊学⽣姓名:⼩红
请输⼊第1门的考试成绩:hive update语法
65
请输⼊第2门的考试成绩:
100
⼩红 的平均成绩是82
学⽣成绩输⼊完成!代码清单7的第1层while语句⽤于录⼊⼈名,第2层则在各⼈名下录⼊多门成绩,布尔表达式决定录⼊的⼈数和课程数。
03 break、continue与pass
在前两节中,已经介绍了Python中的两种循环语句。循环语句中还可以嵌⼊break、continue和pass语句,以灵活地改变流向,实现更多功能。
1. break
在Python中,break语句⽤于终⽌循环语句的执⾏。使⽤该语句时,即使循环条件判断为真,或序列未被完全递归,循环语句也会被⽴刻停⽌。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论