Python函数返回无

时间:2014-01-31 03:25:48

标签: python function

我非常简单的python函数在它的末尾返回'None',我不确定为什么。我看了一些其他的帖子,仍然无法搞清楚。 任何帮助表示赞赏。

这是我的代码:

def printmult(n):
    i = 1
    while i <= 10:
        print (n * i, end = ' ')
        i += 1

print(printmult(30))

5 个答案:

答案 0 :(得分:2)

您没有在函数printmult中返回任何内容,因此当您打印printmult(30)结果时,它将是None(这是默认值当函数没有明确地返回任何内容时返回。)

由于你的方法里面有一个print语句并且它不应该返回某些内容(通常当方法名称类似于printSomething()时,它不会返回任何内容),你应该将其称为:

printmult(30)

print(printmult(30))

答案 1 :(得分:2)

因为在Python中,每个函数都返回一个值,如果你没有明确指定别的东西,None就会返回。

期待 print(printmult(30))到底做了什么?您已要求它评估printmult(30),然后print评估结果。 东西必须由它产生,对吧?或者你是否可能期待某种例外被提出?

请确保您了解打印和返回不是一回事

答案 2 :(得分:2)

其他答案在指出错误的位置方面做得很好,即您需要了解打印和返回不一样。如果你希望你的函数返回一个你可以打印或存储在变量中的值,你需要这样的东西:

def returnmult(n):
    i = 1
    result_string = ''
    while i <= 10:
        result_string += str(n * i) + ' '
        i += 1
    return result_string

print(returnmult(30))

答案 3 :(得分:1)

def printmult(n):
    i = 1
    while i <= 10:
        print (n * i, end = ' ')
        i += 1

printmult(30)

问题是您正在打印不返回任何内容的函数的返回值,该函数将打印None

答案 4 :(得分:0)

我也来自Ruby,一开始看起来很奇怪。

如果print内容中包含print语句,则返回的最后一项是None

如果您只是返回值,然后在该函数上调用print,则不会输出None

希望这会有所帮助:)

相关问题