python控制语句-2.2

目录

for循环

[range step 语法](#range step 语法)

[enumerate 函数](#enumerate 函数)

[for 循环练习-1](#for 循环练习-1)

多重循环

for循环练习-2


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)
相关推荐
2601_962099082 分钟前
python flask sqlalchemy连接数据库流程介绍
数据库·python·flask·教程·sqlalchemy
2601_962293244 分钟前
python接口自动化(二十八)--html测试 报告——下(详解)
python·接口自动化·编码问题·htmltestrunner·报告优化
烂蜻蜓8 分钟前
Flask入门教程(附录):模板渲染API——Jinja2集成全解析
后端·python·flask
2601_9623878212 分钟前
Python CUDA 编程 - 2 - Numba 简介
python·numpy·cuda·jit编译器·numba
智能体与具身智能9 小时前
TVA具身智能的概念、架构与应用(19)
人工智能·python·具身智能
2601_962294619 小时前
python中range函数怎么用
python·for循环·可迭代对象·range函数·整数列表
青 春 记 忆11 小时前
零基础入门python70:Docker Compose 编排完整后端
python·后端开发
新时代牛马11 小时前
字符设备驱动完整篇:从 cdev_add、file_operations 到chrdev_open 与排障
开发语言·python
白山编程大哥12 小时前
Java OutputStreamWriter 详解:从字符到字节的桥梁
java·开发语言·python
落羽的落羽12 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法