使用for循环定义函数时返回“none”

2024-05-15 01:15:04 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我尝试创建一个函数,使用for loops and splicing打印出这样一个单词:

w
wo
wor
word
word
wor
wo
w

我正在学习如何定义函数,所以我想使用一个函数,它允许输入正向和反向。如果我使用“return”函数,我的代码会提前终止。如果我不使用返回函数,我得到一个“无”。我怎么才能摆脱这些?在

谢谢

^{pr2}$

Tags: and函数代码forreturn定义单词word
2条回答

只需执行direction('forward')而不是print direction('forward')direction已经处理了{}本身。尝试执行print direction('forward')只需执行direction('forward')(打印出wwo,等等),然后打印出direction('forward')的返回值,None,因为它没有返回任何内容,也没有理由返回任何内容。在

您的direction函数不return任何内容,因此它默认为None。这就是为什么当您打印函数时,它返回None。您可以使用yield

def direction(x):
    """Type direction of word to be spelled as str, forward or reverse."""
    if x == 'reverse':
        for x in range(wordlength, 0, -1):
            yield word[:x]
    elif x == 'forward': # Also, I changed the "if" here to "elif" (else if)
        for x in range(0, wordlength + 1):
            yield word[:x]

然后将其运行为:

^{pr2}$

direction函数现在返回一个^{},您可以遍历并打印这些值。在


或者,您可以简单地不使用print

>>> direction('forward')

w
wo
wor
word

相关问题 更多 >

    热门问题