循环结构概述
循环结构是编写程序时不可或缺的一部分,它们允许我们高效地处理重复性任务和迭代数据结构,可以在满足条件的情况下,
反复执行某一段代码,在编程语言中出现的这种结构,我们称之为循环结构,被反复执行的这段代码称为循环体。
Python提供了两种主要的循环结构:while
循环和for
循环,每种循环都有其独特的用途和适用场景。
-
while
循环特点:-
基于条件:在条件为真的情况下重复执行代码块。只要条件保持为真,循环就会一直运行,直到条件变为假时终止。
-
未知次数:当用户不知道确切的迭代次数,而是基于某个条件是否满足来决定是否继续执行时,
while
循环更为合适。
-
-
for
循环特点:-
遍历序列:
for
循环主要用于遍历序列(如列表、元组、字符串)或其他可迭代对象(如字典、集合等)。 -
已知次数:当用户事先知道需要迭代多少次时,可以使用
for
循环,如使用range()
函数生成一个数字序列来控制循环次数。
-
while循环
while循环概述
while
循环是 Python 中用于重复执行一段代码直到指定条件不再为真的循环控制语句,它非常适合在我们在不知道循环次数,
而是根据某个条件来决定是否继续执行时使用。
while 循环在每次执行循环体之前,都要先对循环条件求值,如果循环条件为真,则运行循环体部分,如果循环条件为假,
则不执行循环体部分的代码,如果循环条件一开始就为假,则循环体部分将永远不会获得执行的机会。
count = 1
while count <= 5:print(count)count += 1
死循环
死循环,也称为无限循环,是指一个程序中的循环结构在没有任何外部干预的情况下永远不会结束。这意味着循环条件始终为真,
就会导致循环体内的代码不断重复执行,从而可能使程序无法继续正常运行或响应其他操作。
造成死循环的原因:
-
循环条件永远为真:如果循环条件设置不当,使得它总是评估为
True
,那么循环将不会停止。while True:print("循环永远执行!")
更新逻辑错误:当循环体内没有正确地更新影响循环条件的变量时,可能导致条件一直保持为真。
count = 0 while count < 5:print(count)# 忘记增加计数器,导致count永远小于5 造成死循环
依赖于外部事件:有时循环条件依赖于某些外部事件或输入,但如果这些事件或输入从未发生,则循环也可能变成死循环。
userInput = '' while userInput != 'q':print("按q键退出")# 如果用户不输入'q',则循环不会终止userInput = input()print("程序已退出")
while遍历元组和列表
由于元组和列表的元素都是有索引的,因此程序可通过while 循环访问列表或元组的索引来遍历元素。
遍历元组
aTuple = (10, 20, 30) i = 0 while i < len(aTuple):print(aTuple[i])i += 1
遍历列表
aList = [10, 20, 30] i = 0 while i < len(aList):print(aList[i])i += 1
for循环
for循环概述
for
循环是 Python 中用于遍历序列(如列表、元组、字符串)或其他可迭代对象的循环语句。
它非常适合于已知循环次数或需要对一个集合中的每个元素进行操作的情况。
for i in range(0, 5):print(i)
for遍历列表和元组
遍历元组
aTuple = (10, 20, 30)
for ele in aTuple:print(ele)
遍历列表
aList = [10, 20, 30]
for ele in aList:print(ele)
isinstance
该函数用于判断某个变量是否为指定类型的实例,该函数返回的是bool
类型
print(isinstance(3, int))
print(isinstance(3, float))
print(isinstance('a', str))
for遍历字典
使用 for 循环遍历字典其实也是通过遍历普通列表来实现的,字典包含了如下3个方法便于我们使用:
-
keys(): 返回字典中所有 key 的列表
-
values():返回字典中所有 value 的列表
-
items(): 返回字典中所有 key-value 对的列表
dict1 = {'语文': 90, '数学': 98} for key in dict1.keys():print(key, ":", dict1[key])dict1 = {'语文': 90, '数学': 98} for value in dict1.values():print(value)dict1 = {'语文': 90, '数学': 98} for key, value in dict1.items():print(key, ":", value)
循环嵌套
循环嵌套概述
循环嵌套是指在一个循环体内包含另一个循环的结构,这种编程允许对数据进行多层迭代,通常用于处理二维数组、矩阵运算、
遍历树状结构等复杂的数据处理任务,在Python中,我们可以使用for
循环或while
循环来创建嵌套循环。
for i in range(0, 3):j = 0while j < 3:print("#", end=',')j += 1print()
跳转语句
跳转语句概述
跳转语句是编程语言中用于改变程序的正常执行流程,强制程序立即转移到另一个位置继续执行的语句,在Python中,常用的跳转语句
包括break
、continue
和return
,这些语句可以在循环结构或函数定义中使用,以实现不同的控制流逻辑。
break
在循环中遇到break
,则会终止循环,不会继续下次循环,如果是循环嵌套break
语句会跳出最内层的循环。
for i in range(1, 4):if i == 3:breakprint(i)
如果是多层循环的话,遇到break
会跳出内层循环,继续下次循环。
for i in range(1, 4):for j in range(1, 4):if j == 1:breakprint("外层循环i的语句")
如果想遇到内层循环的break
,想直接跳出外层循环,可以使用bool变量来搞定。
for i in range(1, 4):for j in range(1, 4):if j == 1:flag = Falsebreakprint("外层循环i的语句")if not flag:break
循环使用else
Python的循环都可以定义 else
代码块,只有循环规定的次数完全执行完毕,才会执行else
,否则else
不会执行,我们可以使用
break
阻止else
语句的执行。
count = 1
while count <= 3:print('循环内部代码')count += 1break
else:print('else语句执行了')
continue
continue 的功能和 break 有点类似,区别是 continue 只是忽略当次循环的下方语句,并不会中止循环,而会继续下一次循环。
而 break 是完全中止循环本身。
for i in range(3):print(i)if i == 1:continueprint("continue后输出的语句")