首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python‘word in word’循环

Python‘word in word’循环
EN

Stack Overflow用户
提问于 2014-09-12 11:53:50
回答 2查看 549关注 0票数 3

基本for循环,我需要帮助理解这个循环词是如何:

代码语言:javascript
复制
word = "hello"
for word in word:
  print word

在for循环一开始,word=hello变量就不会被word=h覆盖吗?如果是这样的话,它如何仍然遍历字串中的所有字母?

谢谢您的澄清。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-12 11:57:59

让我们看看字节码:

代码语言:javascript
复制
>>> def so25807731():
...   word = "hello"
...   for word in word:
...     print word
... 
>>> import dis
>>> dis.dis(so25807731)
  2           0 LOAD_CONST               1 ('hello')
              3 STORE_FAST               0 (word)

  3           6 SETUP_LOOP              19 (to 28)
              9 LOAD_FAST                0 (word)
             12 GET_ITER            
        >>   13 FOR_ITER                11 (to 27)
             16 STORE_FAST               0 (word)

  4          19 LOAD_FAST                0 (word)
             22 PRINT_ITEM          
             23 PRINT_NEWLINE       
             24 JUMP_ABSOLUTE           13
        >>   27 POP_BLOCK           
        >>   28 LOAD_CONST               0 (None)
             31 RETURN_VALUE        

请注意,首先,Python获取字符串(GET_ITER)的迭代器,并循环该字符串,而不是实际的字符串(FOR_ITER)。

因此,它不需要原始字符串来“记住”字符是什么;它只是使用新创建的迭代器。“旧word”值实际上已不再使用,因此您可以在没有问题的情况下覆盖它。类似的逻辑解释了为什么这段代码也可以工作:

代码语言:javascript
复制
word = "llamas"
for character in word:
  word = None
  print character
票数 12
EN

Stack Overflow用户

发布于 2014-09-12 11:57:04

我从来没有编码过蟒蛇,但我认为它会像这样工作

代码语言:javascript
复制
word = "hello"
i=0
while i <len(word):
     print word[i]
     i += 1
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25807731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档