自学Python:使用def定义函数打印姓名无输出问题求助
解决Python函数打印姓名的问题
我来帮你逐个分析这些代码的问题,然后给出正确的实现方式~
你的四个写法的问题分析
第一种写法
def student(firstname, lastname): fullname = 'Sameer Shrestha' return fullname print(student)
问题出在最后一行:你打印的是student这个函数对象本身,而不是调用函数得到返回值。正确的调用方式应该是给函数传参数,写成print(student("Sameer", "Shrestha"))。另外,你在函数里硬编码了名字,其实可以用传入的参数拼接,比如fullname = f"{firstname} {lastname}",这样函数更通用。
第二种写法
def student(firstname, lastname): fullname = 'Sameer Shrestha' print(fullname)
这个函数定义完成后,你没有调用它,所以程序不会执行函数内部的打印逻辑,自然没有输出。需要在函数定义后加上一行调用代码:student("Sameer", "Shrestha")。
第三种写法
def student(firstname, lastname): fullname = 'Sameer Shrestha' print(student)
和第二种一样,你没调用函数;而且就算调用了,函数内部打印的还是函数对象,不是你要的姓名。
第四种写法
def name(firstname,lastname): return name fullname = name(Sameer,Shrestha) print(name)
这里有三个问题:
- 传递参数时,
Sameer和Shrestha是字符串,必须加引号,否则会被当成未定义的变量报错; - 函数返回的是
name函数本身,不是拼接后的姓名; - 最后打印的是
name函数对象,而不是fullname变量。
正确的实现示例
如果想要实现一个能拼接并打印姓名的函数,有两种常见方式:
方式1:函数返回姓名,外部打印
def get_full_name(firstname, lastname): # 用传入的参数拼接全名 fullname = f"{firstname} {lastname}" return fullname # 调用函数并打印结果 print(get_full_name("Sameer", "Shrestha"))
方式2:函数内部直接打印
def print_full_name(firstname, lastname): fullname = f"{firstname} {lastname}" print(fullname) # 调用函数即可触发打印 print_full_name("Sameer", "Shrestha")
这样就能正常输出Sameer Shrestha啦~
内容的提问来源于stack exchange,提问作者soul shrestha
相关产品推荐
相关产品推荐

