百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Python快速入门教程7:循环语句(python循环语句的用法)

bigegpt 2025-03-25 11:14 10 浏览

一、循环语句简介

循环语句用于重复执行一段代码块,直到满足特定条件为止。Python支持两种主要的循环结构:for循环和while循环。

二、for循环

基本语法

for循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象。

for item in iterable:
    # 执行代码块

遍历列表

fruits = ['apple', 'banana', 'orange']

for fruit in fruits:
    print(fruit)

使用range()函数

range()函数生成一个整数序列,常用于控制循环次数。

for i in range(5):  # 从0到4
    print(i)

for i in range(1, 6):  # 从1到5
    print(i)

for i in range(1, 10, 2):  # 从1到9,步长为2
    print(i)  # 输出 1, 3, 5, 7, 9

遍历字典

person = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}

for key in person:
    print(key, person[key])

# 或者使用 items() 方法遍历键值对
for key, value in person.items():
    print(f'{key}: {value}')

enumerate()函数

enumerate()函数可以在遍历时同时获取元素及其索引。

fruits = ['apple', 'banana', 'orange']

for index, fruit in enumerate(fruits):
    print(f'Index {index}: {fruit}')

应用场景:数据处理

遍历和处理大量数据。

# 示例:计算平均分
grades = [85, 92, 78, 90, 88]
total = sum(grades)
average_grade = total / len(grades)
print(f"平均成绩: {average_grade}")

应用场景:用户输入处理

持续接收用户输入直到满足特定条件。

user_inputs = []
while True:
    user_input = input("请输入一个数字 (输入 'done' 结束): ")
    if user_input.lower() == 'done':
        break
    try:
        number = float(user_input)
        user_inputs.append(number)
    except ValueError:
        print("无效输入,请输入一个有效的数字")

print(f"您输入的数字: {user_inputs}")

三、while循环

基本语法

while循环在条件为真时重复执行代码块。

while condition:
    # 执行代码块

简单示例

count = 0

while count < 5:
    print(count)
    count += 1

使用break和continue

  • break:立即退出循环。
  • continue:跳过当前循环体中的剩余语句,继续下一次循环。
# 使用 break
i = 0
while True:
    print(i)
    i += 1
    if i >= 5:
        break

# 使用 continue
for i in range(10):
    if i % 2 == 0:
        continue
    print(i)  # 只打印奇数

else子句

while循环可以带有else子句,当循环正常结束(即没有通过break退出)时执行else块中的代码。

n = 5
while n > 0:
    print(n)
    n -= 1
else:
    print("计数完成")

应用场景:游戏开发

实现游戏逻辑中的重复操作。

import random

secret_number = random.randint(1, 100)
guesses = []

while len(guesses) < 5:
    guess = int(input("猜一个1到100之间的数字: "))
    guesses.append(guess)

    if guess < secret_number: print elif guess> secret_number:
        print("太大了!")
    else:
        print(f"恭喜你,猜对了! 数字是 {secret_number}")
        break
else:
    print(f"很遗憾,你没有猜对。正确答案是 {secret_number}")

四、嵌套循环

可以在一个循环内部再嵌套另一个循环。

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

应用场景:矩阵操作

遍历二维列表(矩阵)。

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

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

五、无限循环

使用while True创建无限循环,通常需要在循环体内使用break来退出循环。

while True:
    user_input = input("输入 'exit' 退出: ")
    if user_input == 'exit':
        break
    print(f"你输入了: {user_input}")

应用场景:服务器监听

持续监听客户端请求。

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
server_socket.listen(5)

print("服务器正在监听端口 12345...")

while True:
    client_socket, client_address = server_socket.accept()
    print(f"连接来自 {client_address}")

    while True:
        data = client_socket.recv(1024).decode('utf-8')
        if not data:
            break
        print(f"收到消息: {data}")
        client_socket.send(data.encode('utf-8'))

    client_socket.close()

六、总结

循环语句是编程中非常重要的工具,广泛应用于各种编程场景中,例如:

  • 数据处理:遍历和处理大量数据。
  • 用户交互:持续接收用户输入直到满足特定条件。
  • 游戏开发:实现游戏逻辑中的重复操作。
  • 矩阵操作:遍历二维列表(矩阵)。
  • 服务器监听:持续监听客户端请求。

相关推荐

或者这些Joplin插件也可以帮助你的笔记应用再一次强大

写在前面距离上次分享《搭建私有全平台多端同步笔记,群晖NAS自建JoplinServer服务》已过去一段时间,大家是否开始使用起来了呢?如果你和我一样已经使用过Joplin有一段时间了,那或许你也会...

Three.JS教程4 threejs中的辅助类

一、辅助类简介Three.js提供了一些辅助类(Helpers)以帮助我们更容易地调试、可视化场景中的元素。ArrowHelepr:创建箭头辅助器;AxisHelper:创建坐标轴辅助器;BoxH...

第2章 还记得点、线、面吗(二)(第二章还能敲钟吗)

glbgltf模型(webvrmodel)-gltf模型下载定制,glb模型下载定制,三维项目电商网站在线三维展示,usdz格式,vr模型网,网页VR模型下载,三维模型下载,webgl网页模型下载我...

如何检查Linux系统硬件信息?从CPU到显卡,一网打尽!

你可能会问:“我为什么要关心硬件信息?”答案很简单:硬件是Linux系统的根基,了解它可以帮你解决很多实际问题。比如:性能调优:知道CPU核心数和内存大小,才能更好地调整程序运行参数。故障排查:系统卡...

SpriteJS:图形库造轮子的那些事儿

从2017年到2020年,我花了大约4年的时间,从零到一,实现了一个可切换WebGL和Canvas2D渲染的,跨平台支持浏览器、SSR、小程序,基于DOM结构和支持响应式的,高...

平时积累的FPGA知识点(6)(fpga经典应用100例)

平时在FPGA群聊等积累的FPGA知识点,第六期:1万兆网接口,发三十万包,会出现掉几包的情况,为什么?原因:没做时钟约束,万兆网接口的实现,本质上都是高速serdes,用IP的话,IP会自带约束。...

芯片逻辑调度框架设计 都需要那些那些软件工具

设计芯片逻辑调度框架通常需要使用以下软件工具:1.逻辑设计工具:例如Vivado、Quartus、SynopsysDesignCompiler等,用于设计和实现逻辑电路。2.仿真工具:例如Mo...

ZYNQ与DSP之间EMIF16通信(正点原子领航者zynq之fpga开发指南v3)

本文主要介绍说明XQ6657Z35-EVM高速数据处理评估板ZYNQ与DSP之间EMIF16通信的功能、使用步骤以及各个例程的运行效果。[基于TIKeyStone架构C6000系列TMS320C6...

好课推荐:从零开始大战FPGA(从零开始的冒险4399)

从零开始大战FPGA引子:本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“...

业界第一个真正意义上开源100 Gbps NIC Corundum介绍

来源:内容由「网络交换FPGA」编译自「FCCM2020」,谢谢。FCCM2020在5月4日开始线上举行,对外免费。我们有幸聆听了其中一个有关100G开源NIC的介绍,我们对该文章进行了翻译,并对其中...

高层次综合:解锁FPGA广阔应用的最后一块拼图

我们为什么需要高层次综合高层次综合(High-levelSynthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++...

Xilinx文档编号及其内容索引(部分)

Xilinx文档的数量非常多。即使全职从事FPGA相关工作,没有几年时间不可能对器件特性、应用、注意事项等等有较为全面的了解。本文记录了我自使用Xilinx系列FPGA以来或精读、或翻阅、或查询过的文...

Xilinx Vivado联合Modelsim软件仿真

引言:Xilinx公司Vivado开发软件自带仿真工具,可以实现一般性能的FPGA软件仿真测试,其测试执行效率以及性能都不如第三方专用仿真软件Modelsim强。本文我们介绍下如何进行Vivado20...

体育动画直播是怎么做出来的?从数据到虚拟赛场的科技魔法!

你是否见过这样的比赛直播?没有真实球员,却能看梅西带球突破?足球比赛变成动画版,但数据100%真实?电竞比赛用虚拟形象直播,选手操作实时同步?这就是体育动画直播——一种融合实时数据、游戏引擎和AI的...

Dialogue between CPC and political parties of neighboring countries held in Beijing

BEIJING,May26(Xinhua)--TheCommunistPartyofChina(CPC)inDialoguewithPoliticalPartiesof...