python控制语句-2.2

news/2024/7/24 10:58:18 标签: python

目录

for循环

range step 语法

enumerate 函数

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)

http://www.niftyadmin.cn/n/5425156.html

相关文章

借助知识图谱和Llama-Index实现基于大模型的RAG

背景 幻觉是在处理大型语言模型&#xff08;LLMs&#xff09;时常见的问题。LLMs生成流畅连贯的文本&#xff0c;但经常产生不准确或不一致的信息。防止LLMs中出现幻觉的一种方法是使用外部知识源&#xff0c;如提供事实信息的数据库或知识图谱。 矢量数据库和知识图谱使用不…

SQL 多表连接查询

• First attempt: List the property numbers viewed by client number ‘CR56’: • But we’d like to see the client name & property details • So we’ll need to access Client and PropertyForRent for names etc... • We now have two table names in the FRO…

前端框架发展史

前端开发自互联网诞生之初就开始了它的演变历程&#xff0c;从最早的静态页面到今天的高度动态和交互式的应用程序&#xff0c;前端框架在这个进程中起到了核心的作用。这些框架不仅极大地推进了网页技术的边界&#xff0c;还改善了开发者的工作流程和最终用户的体验。让我们深…

【C++】—— 代理模式

目录 &#xff08;一&#xff09;什么是代理模式 &#xff08;二&#xff09;为什么使用代理模式 &#xff08;三&#xff09;代理模式实现步奏 &#xff08;四&#xff09;代码示例 &#xff08;五&#xff09;代理模式优缺点 &#xff08;一&#xff09;什么是代理模式 …

按键顺序读写yaml文件

按键顺序读写yaml文件 依赖两个接口&#xff1a; ​ collections.OrderedDict ​ pip install yamlordereddictloader 1. 按照yaml文件的顺序读取到orderdict中 import yamlordereddictloader from collections import OrderedDictwith open(test.yaml, r, encodingutf-8)…

【AcWing】蓝桥杯集训每日一题Day3|差分|4262.空调(C++)

空调 4262. 空调 - AcWing题库难度&#xff1a;简单时/空限制&#xff1a;1s / 64MB总通过数&#xff1a;4559总尝试数&#xff1a;7483来源&#xff1a;USACO 2021 December Contest Bronze算法标签 差分贪心 题目内容 Farmer John 的 N 头奶牛对他们牛棚的室温非常挑剔。 有…

windows下mysql8.3解压安装后临时密码报1045错误解决

过程&#xff1a; 1.登录MySQL官网www.mysql.com&#xff0c;进入产品下载页面。 2.选择MySQL Community&#xff08;GPL&#xff09;Downloads链接跳转下载页。 3.选择MySQL Community Server。 4.选择安装方式。通常有解压包安装和步骤安装两种方式&#xff0c;这里选择了解…

SQL: 触发器/存储过程/游标的操作

目录 触发器存储过程创建存储过程修改存储过程删除存储过程执行存储过程 游标待续、更新中 触发器 待更新存储过程 定义 是一组TSQL语句的预编译集合&#xff0c;能实现特定的功能 是一种独立的数据库对象&#xff0c;在服务器上创建和运行 类似于编程语言中的过程或函数分类…