You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python设置可选参数后调用函数返回None的问题排查

问题排查与修复

你代码里存在两个核心错误,直接导致输出不符合预期:

  • return语句缩进错误:当前return full_name.title()仅包含在else代码块中,只有未传入中间名时才会正常返回结果;如果进入if middle_name分支,函数执行完赋值操作后没有显式返回值,Python会默认返回None。你需要将return语句调整到if/else分支同级位置,覆盖所有执行路径。
  • 第二次函数调用未传入中间名:你预期输出John Lee Hooker,但调用get_formatted_name('john', 'hooker', )时没有传入中间名参数lee,自然无法生成带中间名的结果。
  • 额外优化点:你写的f字符串开头多了一个冗余空格,会导致返回的姓名开头多出一个空白字符,建议删除。
修正后可运行代码
def get_formatted_name(first_name, last_name, middle_name=''):
   """Return a full name, neatly formatted."""
   if middle_name:
          full_name = f"{first_name} {middle_name} {last_name}"
   else:
          full_name = f"{first_name} {last_name}"
   return full_name.title()

musician = get_formatted_name('jimi', 'hendrix')
print(musician)

musician = get_formatted_name('john', 'hooker', 'lee')
print(musician)
运行输出
Jimi Hendrix
John Lee Hooker

内容的提问来源于stack exchange,提问作者getgutts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:36:03