Python基础-循环语句
while 语句执行的具体流程为:首先判断条件表达式的值,其值为 True 时,则执行代码块(循环体)中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块(循环体)...如此循环,直到条件表达式的值为 False,才终止循环。continue 语句会终止执行本次循环中剩下的代码,直接从下一次循环继续执行,continue 语句的用法和 break 语句一
循环语句
循环语句就是在符合条件的情况下,重复执行一个代码段。
20.1 while 循环
(1)while 循环
while 循环和 if 条件分支语句类似,即在条件表达式为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块(循环体)。但是要注意:只要位于 while 循环体中的代码,其必须使用相同的缩进格式(通常缩进 4 个空格),否则 Python 解释器会报 SyntaxError 错误。while 循环的语法格式为:
while 条件表达式:
代码块(循环体)
while 语句执行的具体流程为:首先判断条件表达式的值,其值为 True 时,则执行代码块(循环体)中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块(循环体)...如此循环,直到条件表达式的值为 False,才终止循环。
while 循环
# 打印数字 0-10
a = 0
while 0 <= a <= 10:
print(a, end="\t")
a += 1
# 计算 1-100 的和
sum_i = 0
i = 0
while 0 <= i <= 100:
sum_i += i
i += 1
print(end="\n")
print(sum_i)
执行以上代码,输出结果为:
0 1 2 3 4 5 6 7 8 9 10
5050
(2)while...else... 循环
如果 while 后面的条件表达式判定为 False 时,则执行 else 的代码块,语法格式如下:
while 条件表达式:
代码块(循环体)
else:
代码块
比如上面 while 循环计算 0-100 的和,还可以这样写:
# 计算 1-100 的和
sum_i = 0
i = 0
while 0 <= i <= 100:
sum_i += i
i += 1
else:
print(end="\n")
print(sum_i)
执行以上代码,输出结果为:
5050
20.2 range 函数
range 函数是 Python 中的内置函数,用于生成一系列连续的整数,一般用于 for 循环体中,range 函数的一般语法格式为:range(start, stop, step)
参数名称 | 说明 | 备注 |
---|---|---|
start | 计数起始位置 | 整数参数,可省略;省略时默认从0开始计数;计数迭代的序列中包含 start |
stop | 计数终点位置 | 不可省略的整数参数;计数迭代的序列中不包含 stop |
step | 步长 | 可省略的整数参数,省略时默认时步长为1,不可以为 0 |
注意:① 它表示的是左闭右开区间(顾头不顾尾);② 它接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型;
for x in range(3): # 省略了start 和 step
print(x)
for x in range(1, 3):
print(x)
for x in range(-3, -1):
print(x)
for x in range(-1, -5, -2):
print(x)
for x in range(1, 8, 2):
print(x)
for x in range(1, 8, 2):
print(x, end="")
执行以上代码,输出结果为:
0
1
2
1
2
-3
-2
-1
-3
1
3
5
7
1357
20.3 for 循环
(1)for 循环
for 循环是 Python 中的一种循环语句,提供了 Python 中最强大的循环结构,它可以循环遍历多种序列项目,之所以要有 for 循环,是因为 for 循环的循环取值(遍历取值)比 while 循环更简洁,for 循环的一般语法格式为:
for 迭代变量 in 序列:
代码块(循环体)
其中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;序列可以是字符串、列表、元组、字典和集合;代码块指的是具有相同缩进格式的多行代码(和 while 循环一样),由于和循环结构联用,因此代码块又称为循环体。
for 循环
# 打印数字 0-10
a = range(0, 11)
for i in a:
print(i, end="\t")
# 计算 1-100 的和
b = range(0, 101)
sum_j = 0
for j in b:
sum_j += j
j += 1
print(end="\n")
print(sum_j)
# 遍历字符串
a = "whu"
for i in a:
print(i, end="\t")
# 遍历列表
print(end="\n")
a = ["w", "h", "u"]
for i in a:
print(i, end="\t")
# 遍历元组
print(end="\n")
a = ("w", "h", "u")
for i in a:
print(i, end="\t")
# 遍历字典
print(end="\n")
a = {1: "w", 2: "h", 3: "u"}
for i in a:
print(a[i], end="\t")
# 遍历集合
print(end="\n")
a = {"w", "h", "u"}
for i in a:
print(i, end="\t")
执行以上代码,输出结果为:
0 1 2 3 4 5 6 7 8 9 10
5050
w h u
w h u
w h u
w h u
u h w
(2)for...else... 循环
for...else... 语句用于在循环结束后执行一段代码,语法格式为:
for 迭代变量 in 序列:
代码块(循环体)
else:
代码块
当序列中的循环执行完毕(即遍历完 iterable 中的所有元素)后,会执行 else 子句中的代码块。比如上面 for 循环计算 0-100 的和,还可以这样写:
# 计算 1-100 的和
b = range(0, 101)
sum_j = 0
for j in b:
sum_j += j
j += 1
else:
print(sum_j)
执行以上代码,输出结果为:
5050
20.4 break 语句
在执行 while 循环或者 for 循环时,只要循环条件满足,程序将会一直执行循环体。但在某些场景,我们可能希望在循环结束前就强制结束循环,Python 提供了两种强制离开当前循环体的办法:① break 语句:可以完全终止当前循环;② continue 语句:可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。
break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。
a = range(0, 11)
for i in a:
if i == 5:
break
print(i, end="\t")
执行以上代码,输出结果为:
0 1 2 3 4
① 使用 break 跳出当前循环体之后,该循环后的 else 代码块也不会被执行。但是,如果将 else 代码块中的代码直接放在循环体的后面,则该部分代码将会被执行。
a = range(0, 101)
# 使用 break 跳出当前循环体之后,该循环后的 else 代码块也不会被执行
sum_i = 0
for i in a:
if i == 5:
break
sum_i += i
i += 1
else:
print(sum_i)
# 使用 break 跳出当前循环体之后,如果将 else 代码块中的代码直接放在循环体的后面,则该部分代码将会被执行
sum_j = 0
for j in a:
if j == 5:
break
sum_j += j
j += 1
print(sum_j)
执行以上代码,输出结果为:
10
② 对于嵌套的循环结构来说,break 语句只会终止所在循环体的执行,而不会作用于所有的循环体
a = "我来自武汉大学,你呢?"
for i in range(3):
for j in a:
if j == ',':
break
print(j, end="")
print("\n重复打印")
执行以上代码,输出结果为:
我来自武汉大学
重复打印
我来自武汉大学
重复打印
我来自武汉大学
重复打印
20.5 continue 语句
continue 语句会终止执行本次循环中剩下的代码,直接从下一次循环继续执行,continue 语句的用法和 break 语句一样,只要 while 或 for 循环中的相应位置加入即可。
add = "我来自武汉大学,你呢?"
for i in add:
if i == ',':
print(end="\n")
continue
print(i, end="")
执行以上代码,输出结果为:
我来自武汉大学
你呢?
20.6 pass 语句
Python 中的 pass 是空语句,pass 不做任何事情,表示一个占位符,一般用作占位语句,能够保证程序的代码结构正确,使用 pass 语句比使用注释更加优雅。
age = int( input("请输入你的年龄:") )
if age < 12 :
print("婴幼儿")
elif 12 <= age < 18:
print("青少年")
elif 18 <= age < 30:
print("成年人")
elif 30 <= age < 50:
pass
else:
print("老年人")
执行以上代码,输出结果为:
请输入你的年龄:49
20.7 while 循环和 for 循环的比较
(1)while 循环
① while 循环称之为“条件循环”,循环次数取决于条件何时变为假;
② while 循环适合循环次数是未知的操作。
(2)for 循环
① for 循环称之为"取值循环",循环次数取决 in 后包含的值的个数;
② for 循环适合循环次数是已知的操作。
作业:计算 1~100 之间偶数的累积和(包含1和100)。
# 方法一
i = 0
sum_i = 0
while i <= 100:
sum_i += i
i += 2
print(sum_i)
# 方法二
j = 0
sum_j = 0
while j <= 100:
if j % 2 == 0:
sum_j += j
j += 1
print(sum_j)
执行以上代码,输出结果为:
2550
2550
作业:使用 for 循环和 while 循环,打印九九乘法表,标准如下:
输出标准
for a in range(1, 10):
b = 1
while a >= b:
print("%d*%d=%d" % (a, b, a * b), end="\t")
b += 1
print(end="\n")
执行以上代码,输出结果为:
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
作业:① products = [["iphone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]],需打印出以下格式:
------ 商品列表 ------
0 iphone 6888
1 MacPro 14800
2 小米6 2499
3 Coffee 31
4 Book 60
5 Nike 699
② 根据上面的 products 列表写一个循环,不断询问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终退出时,打印购买的商品列表并计算出总金额。
# 第一问
products = [["iphone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]]
print("-" * 5, "商品名称", "-" * 5)
i = 0
for product in products:
print(i, end="\t")
i += 1
for index in product:
print(index, end="\t")
print(end="\n")
# 第二问
products = [["iphone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]]
bag = []
money = []
i = 1
while i < 7:
que1 = int(input("请输入想要购买的商品编号(参考以上列表):"))
bag.append(products[que1])
i = i + 1
que2 = input("是否继续选购(如果继续,请输入“C”;如果退出,请输入任意字符):")
if que2 == "C":
continue
else:
print("您购买的商品列表如下:")
for i in range(0, len(bag)):
print(i, bag[i][0], bag[i][1], end="\n")
money.append(bag[i][1])
sum_m = sum(money)
print("总计 %d 元,欢迎下次光临!" % sum_m)
break
执行以上代码,输出结果为:
----- 商品名称 -----
0 iphone 6888
1 MacPro 14800
2 小米6 2499
3 Coffee 31
4 Book 60
5 Nike 699
请输入想要购买的商品编号(参考以上列表):0
是否继续选购(如果继续,请输入“C”;如果退出,请输入任意字符):C
请输入想要购买的商品编号(参考以上列表):1
是否继续选购(如果继续,请输入“C”;如果退出,请输入任意字符):C
请输入想要购买的商品编号(参考以上列表):2
是否继续选购(如果继续,请输入“C”;如果退出,请输入任意字符):C
请输入想要购买的商品编号(参考以上列表):3
是否继续选购(如果继续,请输入“C”;如果退出,请输入任意字符):C
请输入想要购买的商品编号(参考以上列表):4
是否继续选购(如果继续,请输入“C”;如果退出,请输入任意字符):C
请输入想要购买的商品编号(参考以上列表):5
是否继续选购(如果继续,请输入“C”;如果退出,请输入任意字符):F
您购买的商品列表如下:
0 iphone 6888
1 MacPro 14800
2 小米6 2499
3 Coffee 31
4 Book 60
5 Nike 699
总计 24977 元,欢迎下次光临!

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)