目录
[range step 语法](#range step 语法)
[enumerate 函数](#enumerate 函数)
[for 循环练习-1](#for 循环练习-1)
for循环
range step 语法
range
还支持循环的步长 step,做到类似 for(i=0; i<n; i+=step)
的效果
比如要输出 0 到 n-1 范围内的所有偶数,我们可以写 range(0, n, 2)
n = 10
for i in range(0, n, 2):
print(i)
输出:
0
2
4
6
8
range(start, stop, step)
函数生成一个数字序列,从 start
开始,以步长 step
递增,直到小于 stop
。在这个例子中,从0开始,以步长2递增,打印出指定范围内的所有偶数。
enumerate 函数
在 Python,我们也可以使用 enumerate
来迭代序列中的元素的索引和元素值。
list = ["shell", "is", "good"]
for index, element in enumerate(list):
print(index, element)
输出:
0 shell
1 is
2 good
enumerate()
函数用于遍历一个可迭代对象(如列表、元组、字符串等)并返回元素的索引和值。在每次循环中,index
变量会存储当前元素的索引,element
变量会存储当前元素的值。通过 print()
函数将索引和对应的值打印出来。在这个例子中,列表中的每个元素及其索引将被逐个打印出来。
for 循环练习-1
值为下标的倍数的元素个数
描述
输入一个列表 arr,返回元素值是元素下标的倍数的元素个数。
列表的下标从 0 开始。
arr = eval(input())
count = 0
for i, value in enumerate(arr):
if i == 0:
if value == 0:
count += 1
elif i != 0 and value % i == 0:
count += 1
print(count)
'''
当我们运行这段代码时,首先会要求你输入一个列表。你可以输入 Python 有效的列表表示方法,例如输入 `[1, 2, 3, 4, 5]`。
接下来,代码中的 `eval(input())` 将会将你输入的内容作为 Python 代码进行求值,并将其赋值给变量 `arr`。
然后,代码中创建了一个计数变量 `count`,初始值为 0。
接下来,使用 `enumerate()` 函数来遍历列表 `arr`,同时获取元素的索引和值。使用 `i` 来表示索引,使用 `value` 来表示值。
接着进行判断。首先判断索引是否为 0。如果是 0,则检查当前值是否也为 0。如果是,说明索引 0 的位置上的值是其下标的倍数,将计数变量 `count` 加 1。
如果索引不是 0,则进入下一个判断条件。这个条件检查当前值是否是其索引的倍数。如果是,说明当前元素满足题目要求,将计数变量 `count` 加 1。
最后,输出计数变量 `count` 的值,即满足条件的元素个数。
'''
多重循环
在 for
循环中使用 else
语句:我们也可以将 else
语句与 for
循环结合使用,就像在 while
循环中一样。但是由于 for
循环中没有终止执行的条件,所以 else
块将在 for
块执行完毕后立即执行。下面的例子解释了如何做到这一点。
list = ["shell", "is", "good"]
for index in range(len(list)):
print(list[index])
else:
print("shell")
输出:
shell
is
good
shell
在给定的代码中,list
是一个包含三个字符串元素的列表。for
循环通过 range(len(list))
迭代列表的索引,并使用索引访问列表中的元素。然后,每个元素都被打印出来。在循环结束后,else
语句块被执行,并打印出字符串 "shell"。
for循环练习-2
组成三角形的元组个数
描述
输入一个正整数 n,输出元素值不超过 n 的三元组中,能组成三角形的三条边边长的元组个数。
n = eval(input())
count = 0
for i in range(1,n+1): # 遍历所有元素值不超过n的三元组
for j in range(1,n+1):
for k in range(1,n+1):
triplet = sorted((i,j,k)) # 对每个三元组进行排序
if triplet[0]+triplet[1] > triplet[2]: # 判断最小的两个数之和是否大于第三个数
count +=1 # 计数器加1
print(count)