【Python学习笔记】Day05 - 循环
文章目录
循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。
一、While循环
1.1 While循环的基础语法
格式如下:
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
......
例子:
i = 0
while i < 100:
print("小妹,我喜欢你!")
i += 1
注意,while内部的内容也是4格缩进。while后的条件需要提供布尔类型的结果,True继续,False停止,请规划好循环终止条件,否则将无限循环。
例题(求1-100的和):
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(f"1-100的和为:{sum}")
结果:
1-100的和为:5050
例题(猜数字游戏):
- 无限次机会,直到猜中为止
- 每一次猜不中,会提示大了或小了
- 猜完数字后,提示猜了几次
- 随机数可以使用:
import random
num = random.randint(1, 100)
import random
num = random.randint(1,100)
#通过一个布尔类型标记,判断是否继续循环
flag = True
#通过一个数字记录猜测次数
count = 0
while flag:
guess_num = int(input("请输入你猜测的数字:"))
count += 1
if guess_num == num:
print("猜中了!")
flag = False
elif guess_num > num:
print("大了!")
print("没有猜对,继续吧!")
flag = True
else:
print("小了!")
print("没有猜对,继续吧!")
flag = True
print("恭喜你猜对了,游戏结束!")
1.2 While循环的嵌套
格式:
while 条件1:
条件1满足时,做的事情1
条件1满足时,做的事情2
条件1满足时,做的事情3
......
while 条件2:
条件2满足时,做的事情1
条件2满足时,做的事情2
条件2满足时,做的事情3
......
while循环的嵌套也是基于空格缩进,同样也是4个格。
While循环案例:九九乘法表
通过while循环,输出九九乘法表内容。
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i}={j*i}\t",end='')
j += 1
print() #换行
i += 1
补充知识1:
print("内容",end='')
可以让print的输出不换行。
补充知识2:
制表符 \t 可以让字符对齐,相当于键盘上的TAB键。
结果:

二、For循环
2.1 For循环的基础语法
for循环可以完成与while循环相似的功能,但是while的条件可以自定义,自行控制循环条件;但是for循环是一种“轮询”机制,是对一批内容进行逐个处理。
for循环的格式:
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
例1 - 遍历字符串:
#定义字符串
name = "baimafeima"
#for循环处理字符串
for x in name:
print(x)
如此,x依次被赋值name字符串中的每个字符,然后逐行输出。
结果:
b
a
i
m
a
f
e
i
m
a
理论上,for循环无法构建无限循环(被处理的数据集不可能无限大)。
for后方的变量是一个临时变量,可以不用提前定义。
例2 - 数一数字符串中有几个a:
str = input("请输入一句英文")
count = 0
for x in str:
if x == 'a':
count += 1
print(f"有{count}个a")
2.2 Range语句
for循环中的待处理数据集,严格来说,称之为:序列类型,它是指,其内容可以一个个一次取出的一种类型,包括:字符串、列表、元组、字典等。
- 语法1
range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)。
如:range(5)取得的数据是:[0, 1, 2, 3, 4]。
- 语法2
range(num1, num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)。如:range(5, 10)取得的数据是:[5, 6, 7, 8, 9]。
- 语法3
range(num1, num2, step)
获得一个从num1开始,到num2结束的数字系列(不含num2本身),数字之间的步长以step为准(step默认值为1),如:range(5, 10, 2)取得的数据是:[5, 7, 9]。
2.3 For循环配合range语句
你可以用for和range结合的方式来实现一个限制次数的for循环:
for x in range(10):
print(x)
输出:
0
1
2
3
4
5
6
7
8
9
2.4 For循环的临时变量作用域
问题引入:
for i in range(5):
print(i)
print(i)
外层的print,可以访问到i吗?
for循环在编程规范时,要求临时变量的作用域只限定在for循环内部,如果在for循环外访问临时变量,实际上是可以访问到的,但是不建议这么做。
输出:
0
1
2
3
4
4
因为这样是不规范的写法,如果需要访问临时变量,可以预先在循环外定义它。
i = 0
for i in range(5):
print(i)
print(i)
2.5 For循环的嵌套应用
for 临时变量 in 待处理数据集(序列):
循环条件满足该做的事情1
循环条件满足该做的事情2
循环条件满足该做的事情N
...
for 临时变量 in 待处理的数据集(序列):
循环条件满足该做的事情1
循环条件满足该做的事情2
循环条件满足该做的事情N
...
举个例子:
i = 1
for i in range(1, 101):
print(f"今天是向小美表白的第{i}天,坚持。")
for j in range(1, 11):
print(f"送给小美的第{j}朵玫瑰花")
print(f"小美,我喜欢你(第{i}天的表白结束)")
print(f"第{i}天,表白成功")
再举个例子(输出九九乘法表):
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{i}*{j}={i*j}\t",end="")
print()
输出:
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
三、Continue和Break
3.1 Continue
continue关键字用于:中断本次循环,直接进入下一次循环
可以用于for循环和while循环,效果一致。
for i in range(1, 101):
语句1
continue
语句2
在循环内,遇到continue就结束当此循环,进行下一次,因此,语句2不会被执行。
如果是循环嵌套:
for i in range(1, 100):
语句1
for j in range(1, 100):
语句2
continue
语句3
语句4
continue只能影响当前所在for循环,因此,语句3会被跳过,但是语句1、2、4都不会受到影响。
3.2 Break
break关键字用于:直接结束循环,可以用于for循环和while循环,效果一致。
for i in range(1, 100):
语句1
break
语句2
语句3
在循环内,一旦遇到break,循环将直接结束,所以第一次读到语句1后,碰到了break,会直接跳出循环,执行语句3。
如果是循环嵌套:
for i in range(1, 100):
语句1
for j in range(1, 100):
语句2
break
语句3
语句4
break的作用域和continue相似,只会结束 j 所在的循环。从而输出语句1、语句2(然后跳出)、语句4,然后循环,语句1、语句2(然后跳出)、语句4。
总结
以上就是python循环的基本内容。
本文介绍了Python中的两种主要循环结构——While和For循环,包括它们的基础语法、嵌套使用以及控制流程的Continue和Break关键字。通过实例展示了如何使用这些循环结构进行条件判断和迭代操作,如计算和游戏逻辑,同时讲解了九九乘法表的实现。此外,文章强调了循环变量的作用域和循环控制的重要性。
4248

被折叠的 条评论
为什么被折叠?



