欢迎来到CILMY23的博客
本篇主题为: 穿越Python的迭代之旅:while,for 循环的奇妙世界
个人主页:CILMY23-CSDN博客
系列专栏:Python | C++ | C语言 | 数据结构与算法
感谢观看,支持的可以给个一键三连,点赞关注+收藏。
写在前头:
while 和 for 循环是Python中非常重要的迭代工具,掌握它们的用法和注意事项对于编写高效、可靠的代码至关重要。但是什么是迭代?迭代是一种在编程中经常用到的概念,它指的是重复执行一组操作或处理一系列元素的过程。在迭代过程中,程序会依次处理序列中的每个元素,或者根据某个条件重复执行某段代码,直到满足退出条件为止。而循环是迭代的实现方式。
目录
一、循环的起源 --- while for
1.1 while语句
1.1.1 while语句的应用
1.2 for语句
1.2.1 for语句的应用
二、循环的中断 - break和continue
2.1 break语句
2.2 continue语句
2.3 pass语句
三、循环中的循环
一、循环的起源 --- while for
循环结构依据某一条件反复执行某段程序(语句块),该语句块被执行的次数称为循环次数,而循环的始端还得依靠while语句和for语句。
1.1 while语句
while语句用于循环执行一段程序,即在满足某种条件下的情况,重复执行某段程序,以处理某种需求。
while语句的语法如下:
while 表达式:
语句块
(else:
else语句块)
while会根据表达式的逻辑值(真,假)来判断是否执行对应的语句块,如果真,则执行语句块,如果假,则执行else语句块,不过一般很少用else。更经常使用单while。
1.1.1 while语句的应用
例如:计算1~100的和
n = 100
sum = 0
i = 1
while i<=n:
sum = sum +i
i += 1
print(f"1到{n}之和为:{sum}")
结果:
比起在C语言中写这些,是否轻松了不少呢?
例如:使用while-else语句求1-10的阶乘和
mul = 1
i = 1
sum = 0
while i<= 10:
mul = mul * i
sum = sum +mul
i = i+1
else:
print("循环结束!")
print(f"sum = {sum}")
结果:
除此之外,while语句还可以搭配input()函数进行多输入
例如:通过键盘动态录入学生的英语成绩,输入-1退出,并计算录入学生英语成绩的人数、总分和平均分。
total_score = 0
average_score = 0.0
count = 0
English_score = int(input("请输入学生的英语成绩:"))
while English_score != -1:
total_score += English_score
count += 1
English_score = int(input("请输入学生的英语成绩:"))
average_score = total_score / count
print(f"录入英语成绩{count}份,学生总成绩{total_score},平均成绩{average_score}")
结果:
1.2 for语句
在python中,for语句更适合循环访问系列或迭代对象(如字符串、列表、元组、字典等)中的元素,其语法为:
for 变量 in 迭代对象:
语句块
(else:
else语句块)
当然for 语句也可以指定次数,这种情况就得用到我们的range()函数了,range()的讲解---链接
for 变量 in range(次数):
语句块
range()函数用于生成一个指定范围内的整数序列,它可以用来控制for循环的次数
1.2.1 for语句的应用
例:使用for 循环遍历列表
my_list = ['C', 'I', 'L', 'M', 'Y', 2, 3]
for i in my_list:
print(i, end=" ")
例: 使用for-else语句遍历元组中的元素,并在结束后给出提示信息
my_tuple = ('C', 'I', 'L', 'M', 'Y', 2, 3)
for i in my_tuple:
print(i, end=" ")
else:
print("遍历结束")
例:通过判断1-100中除以3的余数是否为0的数,如果是则打印该数
for i in range(1,100):
if i % 3 == 0:
print(f"{i}",end=" ")
结果:
二、循环的中断 - break和continue
在Python中,break 语句用于退出循环,continue 语句用于跳过该次循环,pass 是空语句(不做任何处理)。接下来我们详细看看这三种语句的应用吧。
2.1 break语句
例如:输出斐波那契数列前10项
斐波那契数列(Fibonacci sequence)是一个经典的数学问题,其定义如下:
- 第一个和第二个数是 1 和 1。
- 从第三个数开始,每个数都是前两个数之和。
换句话说,数列的每一项都等于其前两项之和。斐波那契数列的前几个数字是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
n1 = 1
n2 = 1
n3 = 2
count = 3
print("斐波那契前十项:", n1, n2, n3, end=" ")
while True:
if count >= 10:
break
else:
n1 = n2
n2 = n3
n3 = n1 + n2
count += 1
print(n3, end=" ")
解释:
2.2 continue语句
例如:求1~100 范围内所有偶数的和 (不包含100)
# 2.2 continue
i = 1
sum = 0
for i in range(1, 100):
if i % 2 == 1:
continue
sum += i
print(f"1-100的所有偶数和: {sum}")
解释:
2.3 pass语句
pass是 Python 中的一个空语句,它不执行任何操作,只是作为占位符使用。在需要语法上需要语句但不需要实际执行任何操作的情况下,可以使用pass语句。
例如:在循环中使用pass
i = 1
sum = 0
for i in range(1,100):
if i % 2 == 0:
sum += i
else:
pass
print(f"1-100的所有偶数和: {sum}")
例如:在函数中使用
def my_function():
pass
例如:在类中使用
class MyClass:
pass
当我们需要在函数或类的定义中暂时不添加任何操作时,可以使用 pass 语句来保持语法的完整性。
三、循环中的循环
循环中的循环,也称为嵌套循环,是指在一个循环内部包含另一个循环。
例如:输出元素为"*"、五行五列的左下角直角三角形
for i in range(5):
for j in range(i + 1):
print("*", end=" ")
print()
结果如下:
例如:输出对角线元素为1的4行4列矩阵
for i in range(4): # 控制行数
for j in range(4): # 控制列数
if i == j:
print("1", end=" ")
else:
print("0", end=" ")
print() # 换行
结果如下:
感谢各位同伴的支持,本期python就讲解到这啦,如果你觉得写的不错的话,可以给个一键三连,点赞关注+收藏,若有不足,欢迎各位在评论区讨论。