痴月熊学Python
文章目录
往期文章
第一章:Python-新人报道
第二章:小学生都会的数学计算,痴月熊学Python
第三章:变量-从此你就叫张三了!,痴月熊学python
第四章:神奇的变身器-转义字符(改),痴月熊学python
第五章:稍息!立正!——print格式化输出,痴月熊学python
第六章:小学生不一定会的运算,痴月熊学python
第七章:考了多少分啊孩子,痴月熊学python
第八章:数据结构四兄弟——列表(上),痴月熊学python
第九章:数据结构四兄弟——列表(下),痴月熊学python
前言
hello,今天又和大家见面了。哇阅读量越来越少了,就离谱!上一章的列表也讲完了,那今天这章必须得讲循环了。不过阅读量越来越少了,就离谱!上一章的列表也讲完了,那今天这章必须得讲循环了。不过阅读量越来越少了,就离谱!上一章的列表也讲完了,那今天这章必须得讲循环了。不过阅读量越来越少了,就离谱!上一章的列表也讲完了,那今天这章必须得讲循环了。不过阅读量越来越少了,就离谱!上一章的列表也讲完了,那今天这章必须得讲循环了。不过… …
提示:以下是本篇文章正文内容,下面案例可供参考
一、why 循环
刚刚不小心陷入循环了,还好我给痴月熊的文章三连了,不然差点出不来。循环就是不停的去执行同一个操作,所以所为啥要去循环呢。python的循环语句分为两种:for语句和while语句。for循环和while循环的区别说白了,就是for你让它循环几次就循环几次,while则是一直循环。while语句你写一个让它一直循环,只要条件一直是真的,终有一天你的电脑会嗝屁的。所以为啥要去循环呢,肯定是有些东西一个一个写出来比较麻烦啊。所以说人类为了偷懒还是会进步的。刚好上一章学会了列表,for循环经常用作遍历某个容器,就比如列表。while看要一直循环的环境需求,不过也是会停止的,只要条件为假,或者你手动停了。
二、for循环的基本使用
2.1、语法格式
for i in (可迭代对象)
循环体
这就是for循环的语句格式了。你可以把这堆东西这么理解:for循环可迭代对象,把每次从可迭代对象里循环出来的值赋给i,然后再执行循环体。
2.2、使用for循环遍历列表
那我们上面提到了for循环可以用来遍历列表,那我们具体如何遍历呢。看下面代码:
list = ["a","b","c","d"]
for i in list:
print(i)
RUN:
a
b
c
d
代码执行过程:
定义一个列表list
把list的第一个元素赋给 " i "(i = a),然后打印 " i "
再次循环回list,把list第二个元素赋给 " i "(i = b) ,然后打印 " i "
再次循环回list,把list第三个元素赋给 " i " (i = c),然后打印 " i "
再次循环回list,把list第四个元素赋给 " i "(i = d) ,然后打印 " i "
再次循环回list,发现list里面没有更多的元素了,循环结束。
2.3、使用range函数创建列表
range函数的作用是生成一个等差序列。等差序列都知道是啥吧,不知道的这里我提一下。一个序列从第二项起,每一项与它的前一项的差等于同一个常数,这就叫等差序列。range函数的使用方式默认是从0开始,比如你写一个range(5),那它就会从0开始一直到(5-1)。range(5):0,1,2,3,4 ## range(1,5):1,2,3,4 ## range(3,7):3,4,5,6. 现在我们结合for使用下range:
for i in range(6)
print(i)
RUN:
0
1
2
3
4
5
我还可以把range打印出来的数字放在一个列表里。我们可以先定义一个空列表,然后将循环打印的数值追加到原列表中。
list = []
for i in range(3,7):
list.append(i)
print(list)
RUN:
[3,4,5,6]
三、for循环的嵌套
3.1、for循环嵌套if语句。
for i in range(0,4):
if i < 2:
print(f"元素{i}小于2")
elif i > 2:
print(f"元素{i}大于2")
else:
print(f"元素{i}")
RUN:
元素0小于2
元素1小于2
元素2
元素3大于2
3.2、for循环使用else语句
没想到吧,for循环竟然还可以使用else。else的作用可以当做整个代码块的最后一次循环,上面不管循环了多少次,只要上面不循环了,就去执行else。这里也很简单,看一下代码就理解了:
for i in range(0,4):
if i < 2:
print(f"元素{i}小于2")
elif i > 2:
print(f"元素{i}大于2")
else:
print(f"元素{i}")
else:
print("循环结束")
RUN:
元素0小于2
元素1小于2
元素2
元素3大于2
循环结束
这里一定要看好嵌套的语法缩进,虽然有两个else,不过第一个只属于小循环,第二个则是循环后。
3.3、for嵌套for
for循环可以嵌套if语句,当然也可以嵌套for语句。这里就使用for套for写一个99乘法表:
for i in range(1,10):
for j in range(1,10):
print("%d * %d = %3d "%(i,j,i*j),end=" ")
if j == 9 :
print("\n")
RUN:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
i = 1的时候,j =1,打印 1 * 1 = 1 (末尾空格)加上一个空格之后,j的循环会继续打印在同一行。等j循环到9的时候,触发if条件,j = 9,整体换行。然后继续从i = 2开始,j循环1到9,换行。i = 3…
四、while循环
4.1、while的语法格式
while 条件:
循环体
while的格式就更简单了,你只需要给个条件,然后执行下面的代码就可以了。这里写个可以永久循环的代码。
a = 1
b = 2
while a != b:
print("a居然不等于b")
RUN:
a居然不等于b
a居然不等于b
a居然不等于b
a居然不等于b
a居然不等于b
....
首先定义了两个变量,a等于1,b等于2。然后写入一个循环条件a不等于b,那1本来也不等于2,所以它永远是真的,哪怕世界毁灭地球爆炸它也是真的。那它就会一直执行,直到电脑嗝屁了。
4.2、while应用于计算
while用来操作数字非常不错,比如求1 到 100 之间的和:
i = 1
a = 0
while i <=100:
a += i
i +=1
print(f"1到100的总和为:{a}")
RUN:
1到100的总和为:5050
i = 1:设置一个起始值
a = 0:这里我第一次想的时候没有写,但是他会报错找不到a变量,因为a += i 等于a = a + i。a也要一个起始值,a第一次等于i开始就对了。所以第一次写成了:
while i <=100:
a = i
a += i
i +=1
print(f"1到100的总和为:{a}")
嗯,很明显有问题。每次循环都等于i,到最后就变成100 + 100了。所以一定要给a赋一个起始值0。
while i <=100:这里就是确保i的数值不超过100,因为起始值是1所以不会是负数啦。
a += i :a = a + i,相当于把每次i循环的值保留下来,新的i和旧的a相加成为新的a。
i += 1:新i = 旧i + 1这里则是一个自增长,每次循环结束数值都加1。你可以试试不加这个,我相信你会哭的。
4.3、猜数字小游戏
这里可以做一个猜数字的小游戏,大家可以自己去试试几次猜对吧。
import random #导入random模块
a = random.randint(1,100) #从1到100之间随机生成一个随机数赋值给a
guess = 0 #写一个1-100以外的数字,使循环条件满足
while guess != a: #0不在1-100之间所以条件满足,可以循环
guess = int(input("请输入一个 1~100 之间的数字:")) #从新定义guess,使guess等于输入的数值
if guess > a: #给用户提示差距
print("好大!")
elif guess < a:
print("真小~")
else:
print(f"针补戳,猜对啦。答案是{a} ")
4.4、使用while嵌套打印99乘法表(真)
i = 1
while i <=9:
j = 1
while j<=i:
print("%d * %d = %3d "%(i,j,i*j),end=" ")
j +=1
print ('\n')
i += 1
RUN:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
这回是正经的99乘法表了。
i = 1:竖列起始值1
while i <=9:保证i的范围是1-9
j = 1:横行起始值1
while j<=i:横行只循环小于等于i的,保证横列循环的范围不超过竖列数值。
print("%d * %d = %3d “%(i,j,i*j),end=” "):格式化输出
j +=1:横行数值自增长,还是满足不大于竖列数值
print (’\n’) :横行循环完毕换行,保证三角形
i += 1:竖列数值自增长
五、控制循环
5.1、break终止循环
一只循环的话,是有一点苦恼的。我想循环但又不想完全循环,要是在循环过程中能踩刹车就好了,今天它来了,有请我们帅气的break登场。break的作用就是跳出循环体,不需要等到循环条件为Flase的时候才结束。那具体什么场合会用到呢,比如在列表里我们查到自己想要的值得时候就可以停止了,不需要继续往后循环了。下面我写一个场景给大家展示一下break的作用:
print("麋鹿老师:索引位置在2和2之前的同学有哪些?")
list = ["智慧兔","迷彩羊","憨憨熊","大鸽","痴月熊"]
for i in list:
print(f"{i}: 到!")
if i == "憨憨熊":
print("麋鹿老师:索引2和2之前的同学就这些")
RUN:
麋鹿老师:索引位置在2和2之前的同学有哪些?
智慧兔: 到!
迷彩羊: 到!
憨憨熊: 到!
麋鹿老师:索引2和2之前的同学就这些
大鸽: 到!
痴月熊: 到!
首先我们先不加break看了下效果,我们的需求是到索引2的时候就可以停了,但是现在已经过了憨憨熊那里,还是有同学在点到。下面再看一下加了braek:
print("麋鹿老师:索引位置在2和2之前的同学有哪些?")
list = ["智慧兔","迷彩羊","憨憨熊","大鸽","痴月熊"]
for i in list:
print(f"{i}: 到!")
if i == "憨憨熊":
print("麋鹿老师:索引2和2之前的同学就这些")
break
RUN:
麋鹿老师:索引位置在2和2之前的同学有哪些?
智慧兔: 到!
迷彩羊: 到!
憨憨熊: 到!
麋鹿老师:索引2和2之前的同学就这些
这回可以看到,一直到憨憨熊之后,就没有继续往下循环了。这样大概就能看清楚break的作用了吧。
5.2、continue
print("麋鹿老师:今天来的同学达个到")
list = ["智慧兔", "迷彩羊", "憨憨熊", "大鸽", "痴月熊"]
for i in list:
if i == "大鸽":
continue
print(f"{i}: 到!")
print("麋鹿老师:今天大鸽同学没来啊")
RUN:
麋鹿老师:今天来的同学达个到
智慧兔: 到!
迷彩羊: 到!
憨憨熊: 到!
痴月熊: 到!
麋鹿老师:今天大鸽同学没来啊
同学们要自己照着敲一遍,可看仔细了这回的if和上面的if可不在一个位置。这下大家应该可以看出来continue的作用了,break是跳出整个循环,continue则是停止当前的循环,本次循环后面的东西就不输出了,之后继续执行后面的循环。
总结
我一而再三的思索,我决定还是写成一章好了。还有上面放那么多往期文章的链接,看起来很杂。于是我单独弄出一个地方专门用来看往期文章的。还有算上这章刚好10章,我就把这些东西归类到s1了。诶嘿嘿针不戳,以后大家想看往期文章直接去传送门。这次我就放在下面,以后我都会放在顶部。找文章看着也比较清晰。拜拜·