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

如何在Python中合并来自不同函数的两个字符串

问题分析与修正方案

你的代码主要有几个问题导致无法正确合并名字:

  1. 函数参数冗余且调用错误
    你定义的get_first_name和get_last_name函数里,参数(first_name/last_name)完全没被用到——函数内部直接重新赋值了输入内容,而且调用时传入input(这是内置函数对象)完全没必要,属于无效传参。

  2. 错误地直接相加函数对象
    full_name = get_first_name + get_last_name这行代码是把两个函数本身的对象相加,而不是调用函数后得到的名字字符串。你需要先调用函数(加括号())获取返回的名字,再用+拼接。

  3. 输入验证逻辑有漏洞

    • get_first_name里第一次输入后没有检查长度,直接进入循环覆盖输入,导致有效输入也会被重新要求输入;
    • get_last_name里输入无效时只打印提示,但没有重新获取输入,会直接返回空字符串。

修正后的代码
def get_first_name():
    # 循环直到获取有效名字
    while True:
        first_name = input('What is your first name? ').strip()
        if len(first_name) > 0:
            return first_name
        print('That is not valid, please try again.')

def get_last_name():
    # 循环直到获取有效姓氏
    while True:
        last_name = input('What is your last name? ').strip()
        if len(last_name) > 0:
            return last_name
        print('There is no last name, please try again.')

# 调用函数获取名字和姓氏
first_name = get_first_name()
last_name = get_last_name()

# 拼接并打印全名
full_name = first_name + ' ' + last_name
print(full_name)

关键说明
  • 去掉了函数的冗余参数,让函数逻辑更清晰;
  • 用while True循环实现持续输入验证,直到用户输入有效内容才返回;
  • 调用函数时通过get_first_name()和get_last_name()获取返回的字符串,再用+拼接成全名;
  • 用.strip()去除输入前后的空白字符,避免用户输入空格被误判为有效内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:20:15