迭代 Python 循环中的 "break" 如何工作
How "break" in iterative Python loop works
这里是新手,请多多包涵...我已经尝试在 Python.org 和 Google 上对此进行研究,但我仍然不清楚这里发生了什么。
基本问题是:
break在下面的迭代循环中做了什么?
为什么两个 if 语句都有效,即使一个使用“>=
”而另一个使用“<=
”?
为什么提要中解析的项目数不同?第一个解析了 5 个项目,第二个解析了 6 个项目。
脚本 # 1:
Import feedparser
d = feedparser.parse('http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml')
for index, item in enumerate(d.entries):
if index >= 5:
break
print item.title
脚本 #1 输出:
Sights and Sounds: Flames vs. Ducks - Game 2
Sights and Sounds: Wild vs. Blackhawks - Game 2
Mic'd Up: Kucherov nets his third goal
Mic'd Up: Kucherov nets his second goal
Sights and Sounds: Capitals vs. Rangers - Game 2
脚本#2:
Import feedparser
d = feedparser.parse('http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml')
for index, item in enumerate(d.entries):
if index <= 5:
print item.title
脚本 #2 输出:
Sights and Sounds: Flames vs. Ducks - Game 2
Sights and Sounds: Wild vs. Blackhawks - Game 2
Mic'd Up: Kucherov nets his second goal
Mic'd Up: Kucherov nets his second goal
Sights and Sounds: Capitals vs. Rangers - Game 2
The best Sights and Sounds from Round 1
这是一个迭代文档中可用条目的循环 http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml
:
for index, item in enumerate(d.entries):
此处的 enumerate()
调用将 ['alice', 'bob', 'frank']
之类的列表转换为元组列表,其中每个元组包含列表中相应项目的索引,例如 [(0, 'alice'), (1, 'bob'), (2, 'frank')]
.
在循环中,index
获取索引的值,item
从d.entries
中赋值相应的项。第一个循环 body 看起来像这样:
if index >= 5:
break
print item.title
这表示,"if the index is greather than or equal to 5, exit the loop"。所以这将打印索引为 0、1、2、3、4 或 5 的项目的标题,然后退出循环(即打印前六个条目)。
第二个循环 body 如下所示:
if index <= 5:
print item.title
这表示,"if the index is less than or equal to five, print the item's title"。这将也打印前六个条目,但是循环将继续遍历所有剩余的条目而不打印它们。
这里是新手,请多多包涵...我已经尝试在 Python.org 和 Google 上对此进行研究,但我仍然不清楚这里发生了什么。
基本问题是:
break在下面的迭代循环中做了什么?
为什么两个 if 语句都有效,即使一个使用“
>=
”而另一个使用“<=
”?为什么提要中解析的项目数不同?第一个解析了 5 个项目,第二个解析了 6 个项目。
脚本 # 1:
Import feedparser
d = feedparser.parse('http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml')
for index, item in enumerate(d.entries):
if index >= 5:
break
print item.title
脚本 #1 输出:
Sights and Sounds: Flames vs. Ducks - Game 2
Sights and Sounds: Wild vs. Blackhawks - Game 2
Mic'd Up: Kucherov nets his third goal
Mic'd Up: Kucherov nets his second goal
Sights and Sounds: Capitals vs. Rangers - Game 2
脚本#2:
Import feedparser
d = feedparser.parse('http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml')
for index, item in enumerate(d.entries):
if index <= 5:
print item.title
脚本 #2 输出:
Sights and Sounds: Flames vs. Ducks - Game 2
Sights and Sounds: Wild vs. Blackhawks - Game 2
Mic'd Up: Kucherov nets his second goal
Mic'd Up: Kucherov nets his second goal
Sights and Sounds: Capitals vs. Rangers - Game 2
The best Sights and Sounds from Round 1
这是一个迭代文档中可用条目的循环 http://smrss.neulion.com/u/nhl/mrss/sights-and-sounds/vod.xml
:
for index, item in enumerate(d.entries):
此处的 enumerate()
调用将 ['alice', 'bob', 'frank']
之类的列表转换为元组列表,其中每个元组包含列表中相应项目的索引,例如 [(0, 'alice'), (1, 'bob'), (2, 'frank')]
.
在循环中,index
获取索引的值,item
从d.entries
中赋值相应的项。第一个循环 body 看起来像这样:
if index >= 5:
break
print item.title
这表示,"if the index is greather than or equal to 5, exit the loop"。所以这将打印索引为 0、1、2、3、4 或 5 的项目的标题,然后退出循环(即打印前六个条目)。
第二个循环 body 如下所示:
if index <= 5:
print item.title
这表示,"if the index is less than or equal to five, print the item's title"。这将也打印前六个条目,但是循环将继续遍历所有剩余的条目而不打印它们。