描述
完成程序模板中的函数定义和调用部分(务必注意代码缩进),使程序实现如下效果:
在第一行输入一个指令
- 若输入指令为1,则调用函数print_hi_human(),输出“人类,你好!”
- 若输入指令为2,则调用函数say_hi_human(),并输出其返回值“人类,你好!”
- 若输入指令为3,则再输入一个人名,并调用函数say_hi_person(),并输出其返回值为“,你好!”(其中为输入的人名)
- 若输入指令为4,则分两行依次输入人名和性别(男或女),并调用函数say_hi_gender(),并输出其返回值。函数的返回值为“尊敬的*先生/女士,欢迎来到火星!”。根据性别确定称谓,男性称为“先生”,女性称为“女士”,不确定性别时称为“先生/女士”,返回值为替换了姓名与称谓的欢迎字符串 。
- 若输入指令为5,则在一行内输入人名和性别(男或女,性别可省略),以空格间隔,并调用函数say_hi_default(),并输出其返回值。函数的返回值为“尊敬的*先生/女士,欢迎来到火星!”。根据性别值确定称谓,男性称为“先生”,女性称为“女士”,不确定性别时称为“先生/女士”。当函数调用时未给出性别时,默认按男性处理。返回值为替换了姓名与称谓的欢迎字符串
- 若输入指令为6,则在一行内输入多个人名,以空格间隔,并调用函数say_hi_multi_parameter(),分多行对每个人名输出“*,你好!”
- 若输入指令不是上面任一值,则直接输出“再见!”
示例 1
输入:
1
输出:人类,你好!
示例2
输入:
2
输出:人类,你好!
示例3
输入:
3
李白
输出:李白,你好!
示例4
输入:
4
李白
男
输出: 尊敬的李白先生,欢迎来到火星!
示例5
输入:
4
李清照
女
输出: 尊敬的李清照女士,欢迎来到火星!
示例6
输入:
4
李白
杜甫
输出: 尊敬的李白先生/女士,欢迎来到火星!
示例7
输入:
5
李白 男
输出: 尊敬的李白先生,欢迎来到火星!
示例8
输入:
5
李清照 女
输出: 尊敬的李清照女士,欢迎来到火星!
示例9
输入:
5
李白 杜甫
输出: 尊敬的李白先生/女士,欢迎来到火星!
示例10
输入:
5
李白
输出: 尊敬的李白先生,欢迎来到火星!
示例11
输入:
6 李白 杜甫 柳宗元 李商隐 李清照
输出:
李白,你好!
杜甫,你好!
柳宗元,你好!
李商隐,你好!
李清照,你好!
示例12
输入:
100
输出:
再见
# ------------ ------- -------- ----------- -----------# @File : 5.4.1 来自计算机的问候实验模板.py# @Contact : vasp@qq.com# @Copyright : 2018-2025, Wuhan University of Technology# @Modify Time: 2021/4/27 8:41# @Author : 赵广辉# @Version : 1.0# @License : 仅限用于Python程序设计基础实践教程(赵广辉,高等教育出版社)配套实验# ------------ ------- -------- ----------- -----------# 代码文档注释中有函数测试数据,直接运行文件时,默认会运行doctest。# 运行时可点if __name__ == '__main__':旁边的绿三角,运行“5.4.1 来自计算机的问候”# 或删除文档注释中>>> 开头的行和其下面的输出行def choose_function(no):"""接收一个字符串为参数,根据参数值判断问题类型,调用合适的函数进行操作。"""if no == '1': # 调用函数print_hi_human(),输出“人类,你好!”print_hi_human()elif no == '2': #调用函数say_hi_human(),并输出其返回值print(say_hi_human())elif no == '3': #输入一个人名,并调用函数say_hi_person(),并输出其返回值person_name = input() # 输入人名print(say_hi_person(person_name))elif no == '4': #输入人名和性别(男或女),并调用函数say_hi_gender(),并输出其返回值person_name = input() # 输入人名person_gender = input() # 输入性别print(say_hi_gender(person_name, person_gender))elif no == '5': #在一行内输入人名和性别(男或女,性别可省略),以空格间隔,并调用函数say_hi_default(),并输出其返回值person_info = input().split() # 输入人名与性别,性别可省略。如输入:李白 男 或 李白print(say_hi_default(*person_info))elif no == '6': #在一行内输入多个人名,以空格间隔,并调用函数say_hi_multi_parameter(),分多行对每个人名输出“***,你好!”person_names=input().split()say_hi_multi_parameter(*person_names)else:print('再见')def print_hi_human(): # 函数名用小写字母"""文档注释,双引号,说明函数的参数、功能和返回值等。定义一个名为print_hi_human的无参数函数,其功能是打印一句问候语,这个函数没有return语句,即没有返回值,或者说其返回值为None。# >>> print_hi_human()# 人类,你好!"""print("人类,你好!")def say_hi_human(): # 函数名用小写字母"""无参数函数,其功能是返回字符串“人类,你好!”。return语句将函数处理结果返回给调用处,此函数的返回值为一个字符串。# >>> say_hi_human()# "人类,你好!""""return "人类,你好!"def say_hi_person(full_name): # 函数名用小写字母,函数名填空"""定义一个名为say_hi_person的有参数函数,其功能是返回一句问候语,'full_name,你好!'(full_name为传入的参数)。@参数 full_name:人名,字符串类型。# >>> say_hi_person('李明')# '李明,你好!'"""return f'{full_name},你好!'def say_hi_gender(full_name, gender):"""定义一个名为say_hi_gender的有参数函数,其功能是返回一句问候语。@参数 full_name:人名,字符串类型@参数 gender:性别,字符串类型根据参数gender值确定性别称谓,男性称为“先生”,女性称为“女士”,gender值不是'男'或'女'时称为“先生/女士”返回值为替换了姓名与称谓的欢迎字符串。# >>> say_hi_gender('李明', '男')# '尊敬的李明先生,欢迎来到火星!'# >>> say_hi_gender('王佳', '张亮')# '尊敬的王佳先生/女士,欢迎来到火星!'"""if gender == '男':title = '先生'elif gender == '女':title = '女士'else:title = '先生/女士'return f'尊敬的{full_name}{title},欢迎来到火星!'def say_hi_default(full_name, gender='男'):"""定义一个名为say_hi_default的有参数函数,其功能是返回一句问候语。根据性别gender值确定称谓,男性称为“先生”,女性称为“女士”,gender值不是'男'或'女'时称为“先生/女士”当函数调用时未给出gender时,默认按男性处理返回值为替换了姓名与称谓的欢迎字符串例如:尊敬的李白先生,欢迎来到火星!@参数 full_name:人名,字符串类型@参数 gender:默认值参数,字符串类型,表示性别,默认值为'男'# >>> say_hi_default(person_name)# '尊敬的李明先生,欢迎来到火星!'# >>> say_hi_default(person_name, '女')# '尊敬的李明女士,欢迎来到火星!'"""if gender == '男':title = '先生'elif gender == '女':title = '女士'else:title = '先生/女士'return f'尊敬的{full_name}{title},欢迎来到火星!'# *加变量名,可接收不限数量的参数def say_hi_multi_parameter(*names):"""接收一个不定参数,可接收不限制数量的参数,遍历这个不定参数,分别输出问候语。# >>> say_hi_multi_parameter('杜甫', '李白')# 杜甫,你好!# 李白,你好!"""for name in names: # 遍历输出print(f"{name},你好!")if __name__ == '__main__':op_no = input()choose_function(op_no)
