浅谈一下Python循环

作为一名普普通通大一计科的学生,在对C语言循环理解的基础上浅谈一下Python吧~

(是作业啦!表达不咋样,肯定有一些错误,内容都很简单啦!!)

在所有的编程语言中,循环结构必不可少。在Python中,主要有以下两种循环结构:for...in...、while 最为常见。

1、for...in...循环结构

Python 通过保留字 for 实现遍历循环:

for <循环变量> in <遍历结构>:
    
    代码块

遍历结构可以是字符串、文件、组合数据类型、range() 函数。

参数主要是用来存放每次循环体送来的单个元素,实现循环。到时候可以与 if 判断语句联用哦~

⬇️以一个超简单的题目为例:

计算100以内所有整数和

sum=0
for i in range(1,100):
	sum+=i
print(sum)

看得懂吧,应该能看得懂吧?

range(1,100) 的意思是:从1开始,逐个往后遍历,直到小于100就结束。(注意是左闭右开哦~)

这串代码实现了当 i 每往后遍历一次,就把i的值加给 sum,直至遍历结束,就能得到 sum 的值,也就得到了100以内所有整数和。

⬇️简单举一反三一下:

计算100以内所有奇数和

sum=0
for i in range(1,100,2):
	sum+=i
print(sum)

仔细观察一下,发现只有一处与上一题不同,是啥呢?

没错!就是 range(1,100,2) !这里就简单提一下 range() 函数的用法吧~

range(start, stop, step)

step 为指定的步进,通俗来说是按照 step 的值进行“每几个遍历一次”。本题中 step=2,意思就是每两个遍历一次,所以是 1、3、5...... 注意一下,range() 函数语法产生的数字的步进默认是1哦~

现在再来看看这两题,这下彻底懂了吧?会举一反三了吧?自己练去吧你!

2、while循环结构

Python中,while 循环与if条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行。

while 语句的语法格式如下:

while 条件表达式:

    代码块

执行流程:先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回头重新判断条件表达式的值是否为真,若为真,则重复上述操作。如此循环,直到条件表达式的值为假(False),才终止循环。

看似绕来绕去,其实个人感觉比 for...in...循环还简单,不过条件表达式的选择和确定尤为重要

⬇️老样子,来道普普通通的例题清醒一下脑子:

计算100以内所有整数和

i=1
sum=0
while i<100:
	sum+=i
	i+=1
print(sum)

同样的题目,却是不一般的感觉。看似完全不一样,实则大差不差。

根据上面执行流程的描述,加上各位聪明的脑袋,相信理解掌握起来轻轻松松,干脆再来一题巩固一下:

⬇️

计算100以内所有奇数和

i=1
sum=0
while i<100:
	sum+=i
	i+=2
print(sum)

此处 i+=2 与 for...in... 循环里 step=2 有异曲同工之妙,多多领悟。

注意,使用 while 循环时,一定要保证循环条件有变成假的时候,否则将永远无法结束循环,形成死循环。

当然啦,当我们找不到什么好的循环条件时,可以使用 True 作为循环条件开始循环。因此,当我们想结束循环时就必须要用 break 来退出循环。如果用 True 就一定要有 break啊!

3、循环嵌套

一个优秀程序里面很少只有一个或多个单层的循环,熟练掌握循环嵌套是成为优秀的程序猿的小小一步。

循环嵌套,顾名思义,简单来说就是指一个循环出现在另一个循环里面。对于外循环每次的迭代,内循环都要完成它的迭代。

具体流程为:当外部循环条件满足后,开始执行属于它内部的内层循环。等内部循环全部执行完毕,如果还满足外部循环条件,则外部循环再次执行。依此类推,直到跳出外层循环。

可以在循环体内嵌入相同的循环,也可以是不同的,如在 while 循环中嵌入 for 循环,反之也可以。

⬇️以一种常见的类型作为例题:

打印金字塔

n=int(input("输入要打印的层数:"))
#每一行
for i in range(1,n+1):
	#空格个数
	space_num=n-i
	for j in range(0,space_num):
		print(" ",end="")
	#*个数
	star_num=2*i-1
	for j in range(0,star_num):
		print("*",end="")
	print("") #换行

打印结果如下

这段代码外层循环以 for 循环遍历行数,内部第一个 for 循环则用来打印空格,第二个循环用来打印星号。这种类型的题只要找到空格、星号与行数之间的关系即可轻松解决。

⬇️加大一点难度,不过换汤不换药啦:

打印菱形

n=int(input("输入要打印的层数:"))
#打印上半部分的三角形
for i in range(1,n//2+2):
	space_num=n-i
	for j in range(0,space_num):
		print(" ",end="")
	star_num=2*i-1
	for j in range(0,star_num):
		print("*",end="")
	print("")
#打印下半部分的三角形
for i in range(n//2,0,-1):
	space_num=n-i
	for j in range(0,space_num):
		print(" ",end="")
	star_num=2*i-1
	for j in range(0,star_num):
		print("*",end="")
	print("") 

打印结果如下

首先要分析一下菱形的组成,发现是一个三角形加上一个倒三角组成。打印三角形相信大家都掌握了,那么现在只要把第一次循环计数器 i 的值改动一下,便能打出倒三角形。注意层数与星号的关系哟~

那么差不多就讲这些吧,最后让我们以一道稍有难度的变形题作为结尾吧~(*^_^*)~

⬇️⬇️⬇️

 欢迎大家在评论区打出你的代码哟(^U^)ノ~YO~

拜拜!ヾ(•ω•`)o


版权声明:本文为weixin_64449292原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。