湖北师范大学-Python程序设计-4.1 来自计算机的问候(project)

第1关:无参无返回值函数

编程要求
根据提示,在右侧编辑器补充代码,完善一个无参无返回值函数的程序。

测试说明
平台会对你编写的代码进行测试:

输入:无
输出:
人类,你好!

def print_hi_human():  # 函数名用小写字母
    """文档注释,双引号,说明函数的参数、功能和返回值等。
    定义一个名为print_hi_human的无参数函数,其功能是打印一句问候语,
    这个函数没有return语句,即没有返回值,或者说其返回值为None。
    # >>> print_hi_human()
    # 人类,你好!
    """
    # ==================Begin=====================================
    # 此处去掉注释符号“#”并补充你的代码
    print("人类,你好!")
    # ===================End====================================

if __name__ == '__main__':
    # 直接使用函数名来调用函数
    # ==================Begin=====================================
    # 此处去掉注释符号“#”并补充你的代码
    print_hi_human()
    # ===================End====================================

第2关:无参有返回值函数

任务描述
本关任务:编写一个无参有返回值函数的小程序。

相关知识
为了完成本关任务,你需要掌握:

无参有返回值函数
无参有返回值函数
定义一个无参数、有返回值的函数 say_hi_human(),调用函数时输出函数的返回值,让计算机向世界发出问候,返回字符串“人类,你好!”。
有返回值函数用 return 语句将函数的处理结果返回给调用处,调用函数时用 print() 函数直接输出函数的处理结果,或使用赋值语句为返回值命名以用于后续处理。

编程要求
根据提示,在右侧编辑器补充代码,完善一个无参有返回值函数的小程序。

测试说明
平台会对你编写的代码进行测试:

输出:
人类,你好!

def say_hi_human():  # 函数名用小写字母
    """定义一个名为print_hi_human的无参数函数,其功能是返回字符串-人类,你好!"""
    #========================Begin===============================
    #补充你的代码
    print("人类,你好!")
    #==========================End=============================

if __name__ == '__main__':
    # 函数名作为print()函数的参数,输出say_hi_human()的返回值
    #========================Begin===============================
    #补充你的代码
    say_hi_human()
    #==========================End=============================

第3关:有参有返回值函数

任务描述
本关任务:编写一个有参有返回值函数的小程序。

相关知识
为了完成本关任务,你需要掌握:

有参有返回值函数
有参有返回值函数
定义一个函数 say_hi_person(),有一个参数 full_name,接受人名的字符串为参数,函数的返回值为 “XXX,你好!”,例如函数的参数为“李白”,返回值为“李白,你好!”

编程要求
根据提示,在右侧编辑器补充代码,完善一个有参有返回值函数的小程序。

测试说明
平台会对你编写的代码进行测试:

输入:
李白;
输出:
李白,你好!

def say_hi_person(full_name):  # 函数名用小写字母,函数名填空
    """定义一个名为say_hi_person的有参数函数,接受人名的字符串为参数,函数的返回值为“***,你好!”,
    例如函数的参数为“李白”,返回值为“李白,你好!”。"""
    #====================Begin===================================
    # 补充你的代码
    print(f'{full_name},你好!')
    #=====================End==================================

if __name__ == '__main__':
    #  函数名作为print()函数的参数,输出say_hi_human()的返回值。输入的人名作为函数的参数
    person_name = input()              # 输入人名
    #====================Begin===================================
    # 补充你的代码
    say_hi_person(person_name)

    #=====================End==================================

第4关:多参函数

任务描述
本关任务:编写一个多参函数进行计算机问候的小程序。

相关知识
为了完成本关任务,你需要掌握:

多参函数
多参函数
定义一个函数 say_hi_gender(),有 2 个参数 full_name 和 gender,接受人名和性别(“男”或“女”)的字符串为参数,函数的返回值为“尊敬的XXX先生/女士,欢迎来到火星!”。根据性别 gender 值确定称谓,男性称为“先生”,女性称为“女士”,不确定性别时称为“先生/女士”,返回值为替换了姓名与称谓的欢迎字符串 。

编程要求
根据提示,在右侧编辑器补充代码,完善一个多参函数进行计算机问候的小程序。

测试说明
平台会对你编写的代码进行测试:

测试输入:
李白

输出:
尊敬的李白先生,欢迎来到火星!

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

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

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

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

第5关:任意数量参数

任务描述
本关任务:编写一个能任意数量参数进行计算机问候的小程序。

相关知识
为了完成本关任务,你需要掌握:

任意数量参数
任意数量参数
定义一个函数 say_hi_multi_parameter,使之可接收任意数量的姓名为参数,调用函数时,可以传递多个参数。

有时候你预先不知道函数需要多少实参,此时可以给函数传递一个用 “*” 开头的序列类型的参数,例如:“*id” ,形参名 id 前面的星号会让 Python 创建一个空元组,将收集到的所有实参值都封装到这个元组里。

编程要求
根据提示,在右侧编辑器补充代码,完善一个能任意数量参数进行计算机问候的小程序。

测试说明
平台会对你编写的代码进行测试:

输入格式:
本题无输入

输出格式:
对每个传入的参数分行输出“XXX,你好!”

输出:
孟浩然,你好!
杜甫,你好!
李白,你好!
柳宗元,你好!
李商隐,你好!


def extract_variables(statement, is_output):
    variables = set()
    parts = statement.split(":=")
    if is_output:
        variables.add(parts[0].strip())
    else:
        pattern = re.compile(r'\b[a-zA-Z_][a-zA-Z0-9_]*\b')
        matches = pattern.findall(parts[1])
        for match in matches:
            variables.add(match)
    return variables
 
def has_common_elements(set1, set2):
    return not set1.isdisjoint(set2)
 
def check_statements(statement1, statement2):
    inputs1 = extract_variables(statement1, False)
    outputs1 = extract_variables(statement1, True)
    inputs2 = extract_variables(statement2, False)
    outputs2 = extract_variables(statement2, True)
 
    is_interfering = has_common_elements(outputs1, inputs2) or has_common_elements(outputs2, inputs1)
    is_independent = not has_common_elements(outputs1, outputs2)
 
    return not is_interfering and is_independent
 
def main():
    statement1 = input().strip()
    statement2 = input().strip()
 
    result = check_statements(statement1, statement2)
     
    if result:
        print("true")
    else:
        print("false")
 
if __name__ == "__main__":
    main()
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值