Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python函数返回None_Python_Function - Fatal编程技术网

Python函数返回None

Python函数返回None,python,function,Python,Function,我的非常简单的python函数在结尾处返回'None',我不太清楚原因。我看了一些其他的帖子,仍然不明白。 感谢您的帮助 这是我的密码: def printmult(n): i = 1 while i <= 10: print (n * i, end = ' ') i += 1 print(printmult(30)) def printmult(n): i=1 当i在函数printmult中没有返回任何内容时,因此当您打印printmu

我的非常简单的python函数在结尾处返回'None',我不太清楚原因。我看了一些其他的帖子,仍然不明白。 感谢您的帮助

这是我的密码:

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

print(printmult(30))
def printmult(n):
i=1

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

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

printmult(30)
不是


因为在Python中,每个函数都返回一个值,
None
是在不显式指定其他内容的情况下返回的值

您希望打印(printmult(30))
做什么?您已经要求它计算
printmult(30)
,然后计算
print
结果。一定会有结果的,对吧?或者你是不是希望有什么例外


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

其他答案很好地指出了错误所在,即您需要理解打印和返回不是一回事。如果希望函数返回一个值,然后可以打印或存储在变量中,则需要如下内容:

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

print(returnmult(30))
def returnmult(n):
i=1
结果_字符串=“”

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

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

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

希望这有帮助:)

def printmult(n):
i=1

让我猜猜,你是一个Ruby程序员,习惯于返回方法中的最后一条语句(不使用
return
关键字);)正如BrenBarn所说,您没有返回任何值,因此函数返回
None
,要解决代码的问题,您需要将最后一行替换为
printmult(30)
。可能是
def returnmult(n):
    i = 1
    result_string = ''
    while i <= 10:
        result_string += str(n * i) + ' '
        i += 1
    return result_string

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

printmult(30)