python - 在 Python 中编写函数时我有一个“无”
问题描述
- 你好,我对 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:"))
,它似乎工作正常。谁能解释我做错了什么?
解决方案
函数是 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
推荐阅读
- java - 主键重复输入?
- javers - 如何在启动应用程序时禁用 Javers 创建表
- c# - 代码运行但未在场景重新加载时运行
- sql - 如何使用 CTE 递归扩展父子层次结构
- c# - 以下两种方法返回正确的结果,但性能测试失败
- abap - 创建内部表作为另一个内部表的列的子集
- visual-studio-code - VSCode:如何在评论中禁用 doxygen 标签突出显示?
- angular - 如何在提交时保存 FormArray 字段的值?
- sql-server - django.db.utils.InterfaceError:('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) )
- java - 按下画布时如何调用方法