For loop 关于Python中循环的非常基本的Q

For loop 关于Python中循环的非常基本的Q,for-loop,python-2.7,For Loop,Python 2.7,我正在学习Python,所以这是一个非常基本的问题,一直困扰着我关于for循环的问题。下面是一个非常简单的循环 def rot13(entry): for each_word in entry: return each_word print rot13("hello") 当我运行这个时,我的输出是“h”。我知道for循环总是遍历字符串的每个字符,所以我不明白为什么它只打印第一个字符而不是整个字符串。如何让它在通过for循环后将“hello”打印为一个字符串?提前感谢您

我正在学习Python,所以这是一个非常基本的问题,一直困扰着我关于for循环的问题。下面是一个非常简单的循环

def rot13(entry):
    for each_word in entry:
        return each_word

print rot13("hello")

当我运行这个时,我的输出是“h”。我知道for循环总是遍历字符串的每个字符,所以我不明白为什么它只打印第一个字符而不是整个字符串。如何让它在通过for循环后将“hello”打印为一个字符串?提前感谢您对新手的帮助

这是因为当你
返回
每个单词
时,你只返回字母
h
,然后函数停止

你可以这样想:

def rot13(entry):
    for each_word in entry: # Starts with h
        print each_word
        # Prints h
        return each_word
        # Returns the letter h. Breaks.
要打印整个单词,您可以只返回条目,而不使用for循环。或者,如果要打印每个字母,然后返回单词,请将return语句置于for循环之外:

def rot13(entry):
    for each_word in entry:
        print each_word
    return entry
当被呼叫时:

>>> rot13('hello')
h
e
l
l
o
'hello'
声明

 return each_word
使控件返回call语句。这样只打印第一个元素
h
。使用

def rot13(entry):
    for each_word in entry:
        print each_word,
打印整个单词。或者要返回整个单词,只需使用
returnentry