python反复循环怎么写_5.Python循环的本质就是⼀段代码懒
得重复写
为啥要滚雪球学 Python,⽬的就是当你学会编程⼀些思想之后,可以让知识的雪球⾃⾏滚动起来。
已完成的⽂章
本系列⽂章将在2021年春节前完成,欢迎关注,点赞,评论 --- 梦想橡⽪擦
五、Python 循环的本质就是⼀段代码懒得重复写
程序中的循环概念⾮常容易理解,⼀段相似的代码不想重复去写,然后让程序去完成这个操作就是循环。例如从 1 加到 100,如果你依次去加会发现,代码⼜臭⼜长,最好的写法当然是让程序通过循环依次去累加。
5.1 for 循环
for 循环可以将对象中元素进⾏遍历(也叫迭代)操作,每次遍历都可以对元素进⾏相应的处理,截⽌到本篇博客,可遍历(迭代)对象⽬前为列表类型。
for 循环的语法格式如下:
for item in my_list(可迭代对象):
for 代码块
上述代码中的 item 就是每次循环得到的对象,即可迭代对象⾥⾯的每个值。
这⾥最重要的⼀个概念是可迭代对象(iterable object),英⽂你也需要记住,后⾯经常⽤到。
可迭代对象包含的类型⾮常多,例如有列表、元组、字典与集合,除了列表以外其它的内容将在后⾯进⾏学习。
5.1.1 for 循环基本使⽤
学习列表之后,对于 for 循环你需要建⽴⼀个基本的概念就是 for 循环可以依次获取到列表中的每⼀项,注意是依次获取。
编写代码的时候与 if 语句⼀样要注意缩进。
接下来通过 for 循环打印列表中每⼀项。
my_list = ["apple","orange","banana","pear"]
for item in my_list:
print(item)
for 循环语句中只要缩进⼀致,可以由多⾏代码构成,例如:
my_list = ["apple","orange","banana","pear"]
for item in my_list:
print("输出⼀个⽔果")
print(item)
5.1.2 for 循环嵌套 if 判断语句
for 循环⾥⾯可以是多段代码,那这样其实也是可以嵌套 if 语句的,具体写法可以参考:
my_list = [1,2,3,4,5,6,7]
for item in my_list:
if item >3:
print("该元素⽐3⼤")
print("该元素是:",item)
上述代码可以判断当列表中的元素⼤于 3 的时候,输出 if 语句中的内容,你可以尝试补全 else 语句。
5.2 range 函数
在 Python 中可以通过 range 函数⽣成⼀个等差序列,这个等差序列就是⼀个可迭代对象,如果使⽤ type 函数查看对象类型会发现range 函数⽣成的对象类型是 range,具体代码如下:
my_range = range(4)
print(my_range)
print(type(my_range))
输出结果为:
range(0, 4)
可以看到 range 函数⽣成的是⼀个 range 对象,上⽂中⽤到了 range 函数,语法格式为 range(4),通⽤的语法格式如下:
range(start,stop,step)
其中只有 stop 是必填项,step 默认值是 1,如果省略 start 默认表⽰从 0 到 stop-1。具体运⾏下述代码即可清楚。
my_range1 = range(4)
for i in my_range1:
print(i)
print("#"*10)
my_range2 = range(1,4)
for i in my_range2:
print(i)
print("#"*10)
my_range3 = range(1,6,2)
for i in my_range3:
print(i)
输出结果如下,我们都是使⽤ for 循环语句进⾏的输出,通过 list 函数也可以。
1
2
3
>>
1
2
3
>>
1
3
5
range 函数在后续的编程中属于常⽤函数,很多场景下都需要借助它⽣成⼀个等差序列,所以该函数请牢牢掌握。所谓掌握的意思就是现在你需要好好的打⼀打代码。
5.3 for 循环补充知识
5.3.1 for 循环嵌套
⼀个循环中的代码块嵌套另⼀个循环称为循环的嵌套,在编写循环嵌套代码的时候需要注意。
代码块的缩进⼀定要留意,核对好代码块属于哪个 for 循环
解析来是⼀个经典案例,当年橡⽪擦学习的时候就在这⾥废了很⼤⼒⽓,⼀直到期末考试也没弄明⽩,⼊门阶段这应该⽐较难理解的程序了,通过 Python 输出⼀个九九乘法表。
for i in range(1,10):
for j in range(1,10):
print("%d*%d=%3d"%(i,j,i*j),end=" ")
print(" ")
代码运⾏之后如下图所⽰:
这个程序包含了 for 循环,for 循环嵌套,格式化输出字符串,还有不同级别的缩进。 循环在执⾏的时候,你可以先这么理解,外层循环转1 遍,内层循环跑 1 圈。
python新手编程100例这句话的含义初学到这个阶段,很难理解,这是啥意思?很多教材可能会写流程图,告诉你分⽀怎么⾛,怎么⾛。很费劲,在橡⽪擦看来这是个顿悟的事情。
在上述代码中标记两条线。
外层循环就是说的最上⾯的循环,它循环⼀次,⾥⾯的循环,就是包含变量 j 的那个 for 循环,要循环 1 圈,就是都循环⼀遍。 那结论就出来了。当 i = 1 的时候,j 从 1 ⼀直变到 10,然后在输出⼀个 print(" ");
当 i=2 的时候,i 还是要从 1 变到 10,然后在输出⼀个 print(" ");
当 i=3 的时候...,然后在输出⼀个 print(" ")
i=4 的时候,然后在输出⼀个 print(" ")
当 i=9 的时候,内层循环循环完最后⼀圈。所有的循环都运⾏完毕,结束该程序。
特别说明⼀下 print 函数输出的时候,默认会带⼀个 \n,之前的课程已经学习了,该符号代表换⾏。如果想去掉 print 函数⾃带的换⾏符,需要使⽤ end 参数,即 print("待输出内容",end=" ")。
放⼼,虽然我详细的说了⼀遍流程,能悟了的同学就地就悟了,看不懂还是看不懂,这个地⽅确实很难(难吗?),不过不⽤担⼼,随着写代码越来越多,慢慢的你就会了,不会写这个也不影响后续的学习,总之多写两遍就懂了。
5.3.2 break 终⽌循环
终⽌循环你就这么理解,当满⾜某个条件的时候,我不想循环了,这就是 break 的使⽤场景,当满⾜某个条件这肯定⽤到的是 if 语句。
例如,当循环⼀个列表的时候,如果出现⼀个⼤于 3 的数字,那终⽌循环,代码如下:
for i in range(1,10):
if i > 3 :
print("出现⼤于3的数字,终⽌循环")
break
5.3.3 continue 继续循环
continue 与 break 类似,都是当满⾜某个条件时,要做的事情,只不过程序碰到 continue 关键字,不是终⽌循环,⽽是进⼊下⼀次循环,当前循环不管还剩下什么⼯作,不做了。
for i in range(0,5):
if i > 3 :
continue
print("当前数字为:",i)
上述代码中在 for 循环存在⼀个 if 判断,当 i>3 的时候,也就是列表中数字⼤于 3,直接进⼊下⼀次循环,这样导致⼀个事情就是在循环中发现⽐ 3 ⼤的数字之后,print 就不会执⾏了,所以运⾏代码会发现下述结果,只显⽰⼩于等于 3 的数字。
当前数字为: 0
当前数字为: 1
当前数字为: 2
当前数字为: 3
5.3.4 for ... else 循环
for ... else 循环是 Python 中⼀种特定的语法结构,⼤⽩话就是当 for 循环执⾏完毕了就执⾏ else。很多时候⼤⽩话能理解了,你能⽤来描述清楚这个是⼲啥,这个知识点其实已经掌握了,初学阶段没必要咬⽂嚼字的。
例如测试下述代码:
for i in range(0,5):
if i > 3 :
continue
print("当前数字为:",i)
else:
print("不管上⾯的 for 循环⼲了啥,我都要执⾏⼀次")
在这⾥其实有个知识点需要补充下,就是代码配对的问题,啥叫配对,if 和 else 就是⼀对,为什么会有这种说法呢,参见下述代码:
if 条件:
pass
if 条件:
pass
else:
pass
pass 表⽰占位,在 Python 中是⽀持该关键字的,就是还没想清楚这⾥写啥代码,先弄个单词放着占住位置。
上⾯的代码出现了两个 if 和⼀个 else,⼀定要注意,else 和最近的 if 是⼀对,最上⾯的 if 就是⼀个普通的 if。这种问题在代码嵌套的时候会更加有意思。
if 条件:
pass
if 条件:
if 条件:
pass
else:
pass
else:
pass
依据缩进关系,你要好 if 与 else 哪个是⼀对显得⾮常重要了。⾁眼看不出来就实际敲敲键盘。
综合刚学习的内容,现在你知道如何对 for else 进⾏配对了吗?
5.4 while 循环
while 循环也是 Python 中的⼀种循环语法,不过这种循环很容易搞成死循环,就是⼀直循环下去到电脑崩溃,死循环有坏处但也有它的应⽤场景,后⾯咱也会学习到。
while 循环的语法格式如下:
while 条件:
代码块
格式中条件⾮常重要,这个条件运算之后需要判断真假,为真(True)才会进⼊到 while 中的代码块运⾏程序。
5.4.1 while 循环的经典应⽤
while 循环除了语法结构与 for 循环有差异以外,很多地⽅基本⼀致,接下来完成⼀个通过 while 循环实现的经典案例 - 猜数字,这个勉强算是⼀个游戏。
# 最终的答案为 12,其实可以⽤随机数
answer = 12
# ⽤户猜的数字
guess = 0
# 条件为 判断 guess 不等于 answer
while guess!=answer:
guess = int(input("请输⼊⼀个 1~100 之间的数字:"))
if guess > answer:
print("你的数字⼤了")
elif guess < answer:
print("你的数字⼩了")
else:
print("恭喜猜对,数字为 12 ")

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论