首页 > 解决方案 > 在 Python 中编写函数时我有一个“无”

问题描述

def print_thrice(a):
    print(a)
    print(a)
    print(a)
def prt(a,b):
    print_thrice(a)
    print(b) 
print_thrice(prt("Name:","Age:"))

我希望它打印出来Name: Name: Name: Age:(当然有换行符)9 次,但我得到的却是

Name:
Name:
Name:
Age:
None
None
None

我的想法是要有 9 个Name: Name: Name: Age:,所以我尝试print_thrice了已经打印三次Name:Age:in prt("Name:","Age:")。前 3 个显然出现了,我猜这意味着第一批print_thrice有效,但我不知道为什么之后我会得到三个 Nones。

最终我放弃了,只做了 3 行 prt("Name:","Age:")而不是print_thrice(prt("Name:","Age:")),它似乎工作正常。谁能解释我做错了什么?

标签: pythonpython-3.x

解决方案


函数是 Python 中的可调用对象,它有一个返回值。如果您明确没有要求函数返回某些内容,则默认情况下返回 None 。我想这可能是你想要做的;如果没有,请发表评论。

def print_thrice(argumentOne, argumentTwo):

    return '\n'.join(f'I am {argumentOne}  and I am {argumentTwo} years old' for _ in range(3))

print(print_thrice("George","25")) # caling the function print_thrice



I am George  and I am 25 years old
I am George  and I am 25 years old
I am George  and I am 25 years old

推荐阅读