Python for循环
搞懂Python程序中的for循环
for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。
这与其他编程语言中的 for 关键字不太相似,而是更像其他面向对象编程语言中的迭代器方法。
通过使用 for 循环,我们可以为列表、元组、集合中的每个项目等执行一组语句。
Python 循环语句的控制结构图如下所示:
for 循环
Python 中 for 语句的一般形式:
for < variable:> in <sequence>:
<statements>
else:
<statements>
for循环打印列表:
animals = ["dog","cat","cow","lion"]
for item in animals:
print(item)
else:
print("循环执行结束,列表为空")
执行结果:
break 语句
for 实例中使用了 break 语句,break 语句用于跳出当前循环体:
animals = ["dog","cat","cow","lion"]
for item in animals:
print(item)
if (item == "cow"):
break;
执行结果:
continue 语句
for循环中使用 continue 语句,就可以停止当前的迭代,并继续下一个,通过以下实例可以看出如果 item 为 cow,则继续下一个迭代:
animals = ["dog","cat","cow","lion"]
for item in animals:
if (item == "cow"):
continue;
print(item)
执行结果:
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
pass 语句
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,如下实例
while True:
pass # 等待键盘中断 (Ctrl+C)
以下实例执行pass语句块:
animals = ["dog","cat","cow","lion"]
for item in animals:
if (item == "cow"):
pass;
print("进入pass代码块")
print(item)
执行结果:
range()函数
range 对象实现了一般序列的所有操作,class range(start, stop[, step])。
start:start 形参的值 (如果该形参未提供则为 0)
stop:stop 形参的值
step:step 形参的值 (如果该形参未提供则为 1)
animals = ["dog","cat","cow","lion"]
for i in range(len(animals)):
print(i)
执行结果:
for 循环嵌套
for循环嵌套,顾名思义就是for循环里还有for循环,当 2个以上的for循环结构时,解释器执行的流程为:
当外层循环条件为 True 时,则执行外层循环结构中的循环体,当内层循环的循环条件为 True 时会执行此循环中的循环体,直到内层循环条件为 False,跳出内循环;
如果此时外层循环的条件仍为 True,则返回第 2 步,继续执行外层循环体,直到外层循环的循环条件为 False;
当内层循环的循环条件为 False,且外层循环的循环条件也为 False,则整个嵌套循环才算执行完毕。
具体执行实例如下:
for i in range(2):
for j in range(3):
print("i为%d时,i+j的值为=%d"%(i,(i+j)))
执行结果:
i为0时,i+j的值为=0
i为0时,i+j的值为=1
i为0时,i+j的值为=2
i为1时,i+j的值为=1
i为1时,i+j的值为=2
i为1时,i+j的值为=3
冒泡排序
arr = [1,2,3,5,4,7,6,8]
# 第一层for表示循环的遍数
for i in range(len(arr) - 1):
# 第二层for表示具体比较哪两个元素
for j in range(len(arr) - 1 - i):
if arr[j] >arr[j + 1]:
# 如果前面的大于后面的,则交换这两个元素的位置
arr[j], arr[j + 1] = arr[j + 1], arr[j]
print(arr)
执行结果:
插入排序
arr = [1,2,3,5,4,7,6,8]
# 第一层for表示循环插入的遍数
for i in range(1, len(arr)):
# 设置当前需要插入的元素
current = arr[i]
# 与当前元素比较的比较元素
pre_index = i - 1
while pre_index >= 0 and arr[pre_index] > current:
# 当比较元素大于当前元素则把比较元素后移
arr[pre_index + 1] = arr[pre_index]
# 往前选择下一个比较元素
pre_index -= 1
# 当比较元素小于当前元素,则将当前元素插入在 其后面
arr[pre_index + 1] = current
print(arr)
执行结果:
插入排序
arr = [1,2,3,5,4,7,6,8]
# 第一层for表示循环插入的遍数
for i in range(1, len(arr)):
# 设置当前需要插入的元素
current = arr[i]
# 与当前元素比较的比较元素
pre_index = i - 1
while pre_index >= 0 and arr[pre_index] > current:
# 当比较元素大于当前元素则把比较元素后移
arr[pre_index + 1] = arr[pre_index]
# 往前选择下一个比较元素
pre_index -= 1
# 当比较元素小于当前元素,则将当前元素插入在 其后面
arr[pre_index + 1] = current
print(arr)
执行结果:
选择排序
arr = [1,2,3,5,4,7,6,8]
# 第一层for表示循环选择的遍数
for i in range(len(arr) - 1):
# 将起始元素设为最小元素
min_index = i
# 第二层for表示最小元素和后面的元素逐个比较
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_index]:
# 如果当前元素比最小元素小,则把当前元素角标记为最小元素角标
min_index = j
# 查找一遍后将最小元素与起始元素互换
arr[min_index], arr[i] = arr[i], arr[min_index]
print(arr)
执行结果:
什么是Python中的for循环?
Python中的for循环用于迭代序列(list,tuple,string)或其他可迭代对象,在序列上进行迭代称为遍历。
每次迭代中获取序列内项目值的变量。
循环继续,直到我们到达序列中的最后一项。使用缩进将for循环的主体与其余代码分开。