理解 Python 中的 for 循环

2025-02-28 08:22:00
admin
原创
79
摘要:问题描述:我尝试创建一个for循环,但遇到了问题。我不明白这些循环是如何工作的,我认为问题出在我使用的for语法不正确。据我了解,for循环应该是这样的for w in words: print(w, len(w)) 但它究竟是如何工作的呢?尽量具体一点: 是什么意思? 我怎么知道在和之间以及 之后w...

问题描述:

我尝试创建一个for循环,但遇到了问题。我不明白这些循环是如何工作的,我认为问题出在我使用的for语法不正确。

据我了解,for循环应该是这样的

for w in words:
    print(w, len(w))

它究竟是如何工作的呢

尽量具体一点: 是什么意思? 我怎么知道在和之间以及 之后w要写什么? 代码运行时究竟发生了什么?for`in`in


for有关循环实现方式的更多技术细分,请参阅带有可迭代对象的 Python for 循环如何工作?。


解决方案 1:

循环每次循环都会获取可迭代对象for中的每个项目,并将该值分配给变量(例如或)。循环内的代码会重复执行,并将每个值重新分配给该变量,直到循环用完所有项目。w`number`

请注意,使用的名称不会影响每次循环分配的值。类似代码for letter in myvar:不会强制程序选择字母。名称只是每次循环letter获取下一个项目。“下一个项目”是什么,完全取决于是什么。myvar`myvar`

打个比方,想象一下你有一个装满商品的购物车,收银员正在逐一检查它们:

for eachitem in mybasket: 
    # add item to total
    # go to next item.

如果mybasket实际上是一袋苹果,那么eachitem它将in mybasket是一个单独的苹果;但如果mybasket实际上是一个购物车,那么整个袋子本身就可以有意义地成为一个“物品”。

解决方案 2:

循环for适用于可迭代对象:即表示其他对象的有序集合的对象(它不必实际存储它们;但大多数类型的可迭代对象(称为序列)都需要存储它们)。字符串是可迭代的:

>>> for c in "this is iterable":
...     print(c, end=" ")
...
t  h  i  s     i  s     i  t  e  r  a  b  l  e 

然而,数字不是:

>>> for x in 3:
...     print("this is not")
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

内置函数range可以轻松迭代一系列数字:

>>> for x in range(3):
...     print(x)
...
0
1
2

在 2.x 中,range只需使用这些整数值创建一个列表;在 3.x 中,它会创建一种特殊的对象,当for循环需要时,该对象会根据需要计算数字。

解决方案 3:

简单来说,Python 循环遍历可迭代对象,例如字符串、列表或元组。对于列表,它将循环遍历列表元素:

>>> numbers = [1, 2, 3, 4, 5]
>>> for n in numbers: print(n)
1
2
3
4
5

对于字符串,它将循环遍历各个字符(技术上讲,Unicode 代码点):

>>> my_happy_string = "cheese"
>>> for c in my_happy_string: print(c)
c
h
e
e
s
e

以下是另一个带有单词列表的示例:

>>> list_of_words = ["hello", "cat", "world", "mouse"]
>>> for word in list_of_words: print(word)
hello
cat
world
mouse

如果您想要一个for从 开始0并于 结束的循环10,则可以使用内置range函数:

>>> for i in range(0, 10): print(i)
0
1
2
3
4
5
6
7
8
9

解决方案 4:

您所拥有的更像是一个foreach循环。

也许是这样的:

input = raw_input("> ") #separate with spaces
sum = 0
numbers = [int(n) for n in input.split()]
for number in numbers:
    sum = sum + number
print sum
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2941  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1803  
  PLM(产品生命周期管理)系统在企业的产品研发、生产与管理过程中扮演着至关重要的角色。然而,在实际运行中,资源冲突是经常会遇到的难题。资源冲突可能导致项目进度延迟、成本增加以及产品质量下降等一系列问题,严重影响企业的效益与竞争力。因此,如何有效应对PLM系统中的资源冲突,成为众多企业关注的焦点。接下来,我们将详细探讨5...
plm项目管理系统   31  
  敏捷项目管理与产品生命周期管理(PLM)的融合,正成为企业在复杂多变的市场环境中提升研发效率、增强竞争力的关键举措。随着技术的飞速发展和市场需求的快速更迭,传统的研发流程面临着诸多挑战,而将敏捷项目管理理念融入PLM,有望在2025年实现研发流程的深度优化,为企业创造更大的价值。理解敏捷项目管理与PLM的核心概念敏捷项...
plm项目   31  
  模块化设计在现代产品开发中扮演着至关重要的角色,它能够提升产品开发效率、降低成本、增强产品的可维护性与可扩展性。而产品生命周期管理(PLM)系统作为整合产品全生命周期信息的关键平台,对模块化设计有着强大的支持能力。随着技术的不断发展,到 2025 年,PLM 系统在支持模块化设计方面将有一系列令人瞩目的技术实践。数字化...
plm软件   28  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用