小能豆

是什么原因导致我的函数最后返回 None ?

javascript

None我的非常简单的 Python 函数在结束时返回,但我不太清楚为什么。我查看了一些其他帖子,但仍然无法弄清楚。

这是我的代码:

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

print(printmult(30))

阅读 21

收藏
2024-07-08

共1个答案

小能豆

这里的问题是你的函数printmult没有明确返回任何值。在 Python 中,如果函数没有 return 语句,它会隐式返回None

在您的代码中,printmult(30)不返回任何值,因此当您打印的结果时print(printmult(30)),它会打印None

要解决此问题,您应该决定函数要返回什么。如果您只想打印乘法表而不返回任何内容,则不需要 around print()printmult(30)如果您希望函数以字符串形式返回结果,则应修改函数以返回该字符串。

解决方法如下:

选项 1:只打印而不返回任何内容

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

# Call the function
printmult(30)

选项 2:以字符串形式返回结果

如果希望函数返回包含乘法表的字符串,可以像这样修改:

def printmult(n):
    result = []
    i = 1
    while i <= 10:
        result.append(str(n * i))
        i += 1
    return ' '.join(result)

# Call the function and print the result
print(printmult(30))

解释

  1. 仅打印:在第一个选项中,您只需调用printmult(30)而不将其包装在内print()。函数本身处理打印,因此无需打印其返回值。
  2. 返回结果:在第二个选项中,函数构造一个结果列表,将它们合并为一个字符串,然后返回该字符串。然后打印返回的字符串。

这样,您可以避免隐式None返回值并实现所需的输出。

2024-07-08