NameError: name 'full_name' is not defined


def say_hi_gender(full_name, gender="先生/女士"):  # name 和gender为形式参数
    """定义一个名为say_hi的有参数函数,其功能是打印一句问候语
    根据性别gender值确定称谓,男性称为“先生”,女性称为“女士”,不确定性别时称为“先生/女士”
    返回值为替换了姓名与称谓的欢迎字符串
    例如:尊敬的李白先生,欢迎来到火星!"""
    # ====================Begin===================================
    # 此处去掉注释符号“#”并补充你的代码
    full_name = input()
    gender=input()
    a = "先生"
    b = "女士"
    if gender=="男":
        print(a)
    else:
        print(b)
    say_hi_gender(full_name, gender)
    # =======================================================

if __name__ == '__main__':
    # 直接使用函数名来调用函数
    # ====================Begin===================================
    # 此处去掉注释符号“#”并补充你的代码
    print(f'尊敬的{full_name}{gender},欢迎来到火星!')
    # =======================================================

img

你调用函数写在了函数里面。。
主程序就只有直接打印尊敬的XXX。。那机器知道full_name是啥。

def say_hi_gender(full_name, gender="先生/女士"):  # name 和gender为形式参数
    """定义一个名为say_hi的有参数函数,其功能是打印一句问候语
    根据性别gender值确定称谓,男性称为“先生”,女性称为“女士”,不确定性别时称为“先生/女士”
    返回值为替换了姓名与称谓的欢迎字符串
    例如:尊敬的李白先生,欢迎来到火星!"""
    # ====================Begin===================================
    # 此处去掉注释符号“#”并补充你的代码
    a = "先生"
    b = "女士"
    if gender == "男":
        print(f'{full_name}{a}')
        return a
    else:
        print(f'{full_name}{b}')
        return b

    # =======================================================


if __name__ == '__main__':
    full_name = input('输入姓名  ')
    gender = input('输入性别  ')
    gender= say_hi_gender(full_name, gender)
    # 直接使用函数名来调用函数
    # ====================Begin===================================
    # 此处去掉注释符号“#”并补充你的代码

    print(f'尊敬的{full_name}{gender},欢迎来到火星!')
    # =======================================================