Python 2.7中For循环的解释

时间:2014-07-26 18:47:22

标签: python loops for-loop

我正在运行Python 2.7.3。在Xubuntu上。我的问题是要求解释“for”循环。我正在阅读很多不同的解释,但我仍然不理解为什么for循环的工作方式(特别是在下面的例子中)。 我使用一个简单的代码作为例子。代码对行进行计数。

我已经打开了一个带有电子邮件列表和其他信息的文件(这里是http://www.py4inf.com/code/mbox-short.txt),我对以“From:”开头的部分感兴趣。

for line in fhand:
 if line.startswith ("From:"):
   print line

我想我明白我可以将此循环翻译为对象“fhand”的每个“part / x / line”执行以下操作:如果行以“From”开头,则打印行

我的困惑在于,我基本上可以输入一个“x”而不是我想要的线或任何东西,它仍然可以正常工作。 for循环如何理解我希望它只计算行数?这里的“可数”部分是什么?我怎么能想象它?基本上我想更深入地了解为什么以下代码可以工作,因为我相信它可以帮助我在将来构建其他类似的代码。

感谢你为解决这个问题付出的努力。

2 个答案:

答案 0 :(得分:0)

fhanditerable object个字符串。

因此,

line是该对象中的单个字符串成员。

你可以随心所欲地命名它,它仍然被认为是一个字符串。

答案 1 :(得分:0)

fhand是一个数组/列表/集合/文件处理程序/无论可迭代的项目 - 它无关紧要,但它是它们的集合。

如果它是文件处理程序,读取时的文件通常逐行读取,因此for循环的工作原理基于每行。

for循环基本上是“列表中的每个东西”。我认为“线”变量正在抛弃你。这可以命名为任何东西......例如:

for x in fhand:
    if x.startswith("From"):
        print x

“Line”只是一个变量,它对代码如何工作没有任何影响,它只是一个友好的命名标识符。