有参有返回值函数火星问题哪里错了


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

if __name__ == '__main__':
    # 直接使用函数名来调用函数
    # ====================Begin===================================
    full_name = input()
    gender = input()
    say_hi_gender(full_name, gender)
    


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

参考GPT和自己的思路:

在函数调用处,需要使用print语句来将函数的返回值打印出来。你可以将代码修改为如下所示:

if __name__ == '__main__':
    full_name = input('请输入您的姓名:')
    gender = input('请输入您的性别(男/女):')
    print(say_hi_gender(full_name, gender))

这样就可以正确调用函数并输出欢迎语了。

参考GPT和自己的思路:

在函数调用处,没有对函数的返回值进行任何的处理,因此程序并不会打印出欢迎语。应该把函数调用语句改为:

welcome = say_hi_gender(full_name, gender)
print(welcome)

这样就能够正确输出欢迎语了。另外,比较字符串应该使用双等号(==)而不是单等号(=)进行判断。修改后的代码如下:

def say_hi_gender(full_name, gender):
    """定义一个名为say_hi的有参数函数,其功能是打印一句问候语
根据性别gender值确定称谓,男性称为“先生”,女性称为“女士”,不确定性别时称为“先生/女士”
返回值为替换了姓名与称谓的欢迎字符串
例如:尊敬的李白先生,欢迎来到火星!"""
    if gender == '男':
        sj = '先生'
    elif gender == '女':
        sj = '女士'
    else:
        sj = '先生/女士'
    return f'尊敬的{full_name}{sj},欢迎来到火星!'

if __name__ == '__main__':
    full_name = input()
    gender = input()
    welcome = say_hi_gender(full_name, gender)
    print(welcome)
say_hi_gender(full_name, gender)

这里只是返回,没有输出
print( say_hi_gender(full_name, gender))