Python学习中使用循环(for, while)

news2024/10/2 22:24:55

在Python编程语言中,循环是一个非常重要的概念,可以帮助我们在代码中重复执行某些操作。Python支持两种主要的循环结构:for 循环和 while 循环。

1. for 循环

for 循环用于遍历一个序列(如列表、元组、字符串)或其他可迭代对象(如字典、集合)。它的基本语法如下:

for variable in iterable:
    # 执行代码块

其中,variable 是一个变量,它将在每次迭代中被赋予 iterable 中的下一个值,iterable 是一个可迭代对象。以下是一些示例:

示例 1:遍历列表

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
    print(fruit)

输出:

apple
banana
cherry

示例 2:遍历字符串

for char in 'hello':
    print(char)

输出:

h
e
l
l
o

示例 3:使用 range() 函数

range() 函数用于生成一个数值序列。它通常与 for 循环一起使用。基本语法如下:

for i in range(start, stop, step):
    # 执行代码块
  • start:序列的起始值,默认为0。
  • stop:序列的结束值(不包含在序列中)。
  • step:步长,默认为1。

示例:

for i in range(5):
    print(i)

输出:

0
1
2
3
4

示例 4:遍历字典

student = {'name': 'John', 'age': 25, 'courses': ['Math', 'CompSci']}
for key, value in student.items():
    print(f'{key}: {value}')

输出:

name: John
age: 25
courses: ['Math', 'CompSci']

示例 5:嵌套 for 循环

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for item in row:
        print(item, end=' ')
    print()

输出:

1 2 3 
4 5 6 
7 8 9 

2. while 循环

while 循环在给定的条件为真时,重复执行目标语句。它的基本语法如下:

while condition:
    # 执行代码块

其中,condition 是一个表达式,当其为真时,执行代码块。下面是一些示例:

示例 1:简单 while 循环

i = 0
while i < 5:
    print(i)
    i += 1

输出:

0
1
2
3
4

示例 2:用户输入

user_input = ''
while user_input.lower() != 'exit':
    user_input = input('Enter something (type "exit" to quit): ')
    print(f'You entered: {user_input}')

示例 3:无限循环和 break

while True:
    user_input = input('Enter something (type "exit" to quit): ')
    if user_input.lower() == 'exit':
        break
    print(f'You entered: {user_input}')

示例 4:continue 语句

i = 0
while i < 10:
    i += 1
    if i % 2 == 0:
        continue
    print(i)

输出:

1
3
5
7
9

3. for 循环和 while 循环的区别

  • 使用场景for 循环通常用于遍历固定长度的序列,而 while 循环适用于未知长度的循环或需要在满足特定条件时终止的循环。
  • 可读性for 循环通常更简洁,更易读,尤其是在处理序列时。while 循环在处理复杂条件时更灵活。
  • 性能:在许多情况下,for 循环的性能可能稍好,因为它们在许多情况下可以更有效地进行优化。

4. 循环中的常见问题

无限循环

无限循环是指循环条件永远为真的循环。通常是由于条件未正确更新导致的。示例:

i = 0
while i < 5:
    print(i)
    # 缺少 i += 1,导致 i 永远为 0

breakcontinue

  • break:立即终止循环。
  • continue:跳过当前迭代,继续下一次迭代。

示例:

for i in range(10):
    if i == 5:
        break
    print(i)

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)

嵌套循环中的 break

在嵌套循环中使用 break 只会终止内层循环。示例:

for i in range(3):
    for j in range(3):
        if j == 1:
            break
        print(f'i={i}, j={j}')

输出:

i=0, j=0
i=1, j=0
i=2, j=0

循环与条件语句结合

for i in range(1, 11):
    if i % 2 == 0:
        print(f'{i} 是偶数')
    else:
        print(f'{i} 是奇数')

输出:

1 是奇数
2 是偶数
3 是奇数
4 是偶数
5 是奇数
6 是偶数
7 是奇数
8 是偶数
9 是奇数
10 是偶数

5. 实践案例

案例 1:计算列表中所有元素的和

numbers = [1, 2, 3, 4, 5]
total = 0
for num in numbers:
    total += num
print(f'列表元素的和为: {total}')

案例 2:找出列表中的最大值

numbers = [3, 41, 12, 9, 74, 15]
max_num = numbers[0]
for num in numbers:
    if num > max_num:
        max_num = num
print(f'列表中的最大值是: {max_num}')

案例 3:使用 while 循环实现猜数字游戏

import random

secret_number = random.randint(1, 100)
guess = None
attempts = 0

while guess != secret_number:
    guess = int(input('猜一个 1 到 100 之间的数字: '))
    attempts += 1
    if guess < secret_number:
        print('猜低了')
    elif guess > secret_number:
        print('猜高了')
    else:
        print(f'恭喜你,猜对了!你一共猜了 {attempts} 次。')

案例 4:生成乘法表

for i in range(1, 10):
    for j in range(1, 10):
        print(f'{i} x {j} = {i * j}', end='\t')
    print()

输出:

1 x 1 = 1	1 x 2 = 2	1 x 3 = 3	1 x 4 = 4	1 x 5 = 5	1 x 6 = 6	1 x 7 = 7	1 x 8 = 8	1 x 9 = 9	
2 x 1 = 2	2 x 2 = 4	2 x 3 = 6	2 x 4 = 8	2 x 5 = 10	2 x 6 = 12	2 x 7 = 14	2 x 8 = 16	2 x 9 = 18	
3 x 1 = 3	3 x 2 = 6	3 x 3 = 9	3 x 4 = 12	3 x 5 = 15	3 x 6 = 18	3 x 7 = 21	3 x 8 = 24	3 x 9 = 27	
4 x 1 = 4	4 x 2 = 8	4 x 3 = 12	4 x 4 = 16	4 x 5 = 20	4 x 6 = 24	4 x 7 = 28	4 x 8 = 32	4 x 9 = 36	
5 x 1 = 5	5 x 2 = 10	5 x 3 = 15	5 x 4 = 20	5 x 5 = 25	5 x 6 = 30	5 x 7 = 35	5 x 8 = 40	5 x 9 = 45	
6 x 1 = 6	6 x 2 = 12	6 x 3 = 18	6 x 4 = 24	6 x 5 = 30	6 x 6 = 36	6 x 7 = 42	6 x 8 = 48	6 x 9 = 54	
7 x 1 = 7	7 x 2 = 14	7 x 3 = 21	7 x 4 = 28	7 x 5 = 35	7 x 6 = 42	7 x 7 = 49	7 x 8 = 56	7 x 9 = 63	
8 x 1 = 8	8 x 2 = 16	8 x 3 = 24	8 x 4 = 32	8 x 5 = 40	8 x 6 = 48	8 x 7 = 56	8 x 8 = 64	8 x 9 = 72	
9 x 1 = 9	9 x 2 = 18	9 x 3 = 27	9 x 4 = 36	9 x 5 = 45	9 x 6 = 54	9 x 7 = 63	9 x 8 = 72	9 x 9 = 81	

案例 5:统计字符串中每个字符的出现频率

text = 'hello world'
char_count = {}

for char in text:
    if char in char_count:
        char_count[char] += 1
    else:
        char_count[char] = 1

for char, count in char_count.items():
    print(f'{char}: {count}')

输出:

h: 1
e: 1
l: 3
o: 2
 : 1
w: 1
r: 1
d: 1

循环结构是Python编程中的基本概念,for 循环和 while 循环各有其适用场景和优势。for 循环适用于遍历已知长度的序列,而 while 循环则在处理需要满足特定条件时特别有用。理解并掌握这两种循环的用法,可以大大提高代码的可读性和效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1912473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化数据集成的BI工具,为你提供决策洞察力

传统的商业智能&#xff08;BI&#xff09;报表系统采用的是“业务提报表需求&#xff0c;IT进行开发”的模式。决策管理者和业务人员提出用报表等来展示经营管理数据的需求&#xff1b;接着IT响应需求&#xff0c;进行需求沟通、数据处理加工、报表开发等主体工作&#xff1b;…

南方科技大学马永胜教授给年轻人使用AI工具上的建议

摘要 - 1. AI的未来&#xff0c;是机器人和机器人之间的合作&#xff1b; 2. 行业的发展方向是需求决定的&#xff0c;不要做同质化的发展&#xff0c;要做专/精/特/新&#xff1b; 3. 新质生产力 &#xff08; 科学技术革命性突破 生产要素创新型配置 产业深度转型升级&…

Text Control 控件教程:在 .NET 中打印 MS Word DOCX 文档

虽然有用于创建 DOCX 文件的库&#xff08;例如 Open XML SDK&#xff09;&#xff0c;但打印又是另一回事。打印 DOCX 文件的唯一方法是在 Microsoft Word 中打开它并手动打印。对于需要打印大量文档的 Web 应用程序或需要自动打印文档的服务器端应用程序来说&#xff0c;这不…

CSS相对定位和绝对定位的区别

CSS相对定位和绝对定位的区别 区别1&#xff1a;相对的对象不同 相对定位是相对于自己绝对定位是相对于离自己最近的有定位的祖先 区别2:是否会脱离文档流 相对定位不会脱离文档流&#xff0c;不会影响其他元素的位置绝对定位会脱离文档流&#xff0c;会影响其他元素的布局 代…

人与机器的协同是强弱系统的互补行为

人与机器的协同可以被视作强弱系统的互补行为&#xff0c;这也强调了人类和机器之间在处理问题、执行任务或创造价值时各自的优势与角色。 人类在认知、创造力、情感和伦理等方面具有独特优势。我们能够进行高级的抽象思维、创新和复杂决策&#xff0c;能够处理不确定性和动态环…

realloc调整栈帧

同样的&#xff0c;也仅仅是记录自己学习的记录、思考。 优秀的学习文章 使用realloc函数来调整栈帧让one_gadget生效 | ZIKH26 调试分析 one_gadget失效 这种都需要自己动手调试来看 以经典的libc-2.23的fastbin attack为例 one_gadget libc-2.23.so edit(2,8,p64(mall…

怎样在 PostgreSQL 中优化对大数值类型数据的计算?

文章目录 一、选择合适的数据类型二、索引优化三、查询语句优化四、数据库配置调整五、使用扩展功能六、示例七、总结 在 PostgreSQL 中处理大数值类型数据&#xff08;例如 BIGINT、NUMERIC 等&#xff09;的计算时&#xff0c;可能会遇到性能瓶颈。为了优化这些计算&#xff…

coze搭建工作流和Agent

coze搭建工作流和Agent Agent LLM 记忆感知规划使用工具 LLM是大语言模型&#xff0c;prompt提示词影响LLM的输出质量 描述需求——>背景——>解决思路&#xff0c;提示词文档。 当有明确的需求和实现需求的路径时&#xff0c;可以通过搭建工作流来完成标准化任务为…

从零开始学习嵌入式----Linux系统命令集合与shell脚本

Shell是一门编程语言&#xff0c;作为学习shell的开始&#xff0c;需要事先搞明白&#xff1a;编程的目的是什么&#xff1f;什么是编程语言&#xff1f;什么是编程&#xff1f; shell本身就是一门解释型、弱类型、动态语言&#xff0c;与python相对应&#xff0c;Python属于解…

办公室卫生间厕位引导牌款式多样,都有哪些功能

在现代办公环境中&#xff0c;卫生间不仅是员工日常使用的必需设施&#xff0c;也是体现企业文化和管理水平的一面镜子。然而&#xff0c;传统办公室卫生间往往存在着信息不透明、高峰期拥挤、清洁维护滞后等问题&#xff0c;影响了员工的使用体验。近年来&#xff0c;随着智慧…

0基础学会在亚马逊云科技AWS上搭建生成式AI云原生Serverless问答QA机器人(含代码和步骤)

小李哥今天带大家继续学习在国际主流云计算平台亚马逊云科技AWS上开发生成式AI软件应用方案。上一篇文章我们为大家介绍了&#xff0c;如何在亚马逊云科技上利用Amazon SageMaker搭建、部署和测试开源模型Llama 7B。下面我将会带大家探索如何搭建高扩展性、高可用的完全托管云原…

个人标准流程管理系统

个人标准流程管理系统&#xff08;Personal Standard Operating Procedure System, PSOPS&#xff09;是一种帮助个人组织和优化日常任务、项目管理、学习计划和其他重复性活动的工具。它旨在提升个人效率&#xff0c;确保各项事务按照预设的标准流程执行。以下是设计这样一个系…

PPI(每英寸像素数)、DPI(每英寸点数)和Pixel(像素)的区别和联系?

一、定义 PPI、DPI和Pixel是图像处理、打印和显示领域中常用的三个概念&#xff0c;它们之间既有区别又有联系。以下是对这三个概念进行分别讲解&#xff1a; 1. PPI&#xff08;Pixels Per Inch&#xff09;&#xff0d;即每英寸像素数&#xff0c;是图像分辨率的一种表示方…

Apache部署与配置

概述 介绍 Apache HTTP Server(简称Apache)是Apache的一个开源的网页服务器&#xff0c;它源自NCSAhttpd服务器&#xff0c;并经过多次修改和发展&#xff0c;如今已经成为全球范围内广泛使用的Web服务器软件之一 特点 跨平台&#xff1a;可以运行在几乎所有广泛使用的计算机平…

接口基础知识1:认识接口

课程大纲 一、定义 接口&#xff1a;外部与系统之间、内部各子系统之间的交互点。 比如日常使用的电脑&#xff0c;有电源接口、usb接口、耳机接口、显示器接口等&#xff0c;分别可以实现&#xff1a;与外部的充电、文件数据传输、声音输入输出、图像输入输出等功能。 接口的本…

tableau气泡图与词云图绘制 - 8

气泡图及词云图绘制 1. 气泡图绘制1.1 选择相关属性字段1.2 选择气泡图1.3 设置颜色1.4 设置标签1.5 设置单位 2. 气泡图绘制 - 22.1 类别筛选2.2 页面年份获取2.3 行列获取2.4 历史轨迹显示 3. 词云图绘制3.1 筛选器3.2 选择相关属性3.3 选择气泡图3.4 设置类型颜色3.5 设置形…

科研训练课程2--论文格式修改+endnote使用

科研训练课程2–论文格式修改endnote使用 文章目录 前言修改论文格式图表endnote 使用&#xff08;补充&#xff09; 总结 前言 第二天 2024/7/9 所属目录&#xff1a;科研训练课程创建时间&#xff1a;2024/7/9作者&#xff1a;星云<XingYun>更新时间&#xff1a;xxxUR…

Python标准库常用模块的典型用法介绍与案例

目录 1. os模块 典型用法 案例 2. sys模块 典型用法 案例 3. datetime模块 典型用法 案例 4. re模块 典型用法 案例 5. json模块 典型用法 案例 6. random模块 典型用法 案例 7. collections模块 典型用法 案例 总结 Python作为一门功能强大的编…

Redis基础教程(十八):Redis管道技术

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

仕考网:公务员考试面试时间一般多长?

公务员考试主要分为笔试与面试两个阶段&#xff0c;其中面试是笔试通过的下一关&#xff0c;面试的具体安排通常由相关考试机构或招录单位负责发布并通知考生。 公务员面试的持续时间一般在30分钟至1小时之间&#xff0c;具体时长可能因地区和招录单位的不同而有所变化。常见的…