0

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

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

print rot13("hello")

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

4

2 回答 2

1

这是因为当你returning时each_word,你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.

要打印整个单词,您可以完全return entry不使用 for 循环。或者,如果您想打印每个字母然后返回单词,请将 return 语句放在 for 循环之外:

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

当被调用时:

>>> rot13('hello')
h
e
l
l
o
'hello'
于 2013-04-01T01:20:38.983 回答
1

该声明

 return each_word

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

def rot13(entry):
    for each_word in entry:
        print each_word,

打印整个单词。或者要返回整个单词,只需使用return entry

于 2013-04-01T01:21:52.697 回答