2301_79748382 2023-10-27 12:04 采纳率: 66.7%
浏览 38
已结题

Python函数定义及调用

任务一:编写自定义函数,参数为 num,默认值为 8。

要求:若参数是正整数 num,则返回 3 到 num 之间所有的奇数平方之和;若参数是非正整数则报错,并提示错误原因(若为非整数,提示:“输入数据类型有误”;若为负数,提示:“输入数据范围有误”)。

任务二:学生信息添加和查找函数设计。

要求:存储学生信息的字典结构如下:{"name":"张三","gender":"男","age":20},设计一个学生列表来存储多个学生。设计至少2个函数,分别实现对学生信息的添加和查找功能。

任务拓展:学生添加的信息由用户输入;学生信息的修改和删除函数的设计。

img

  • 写回答

7条回答 默认 最新

  • 社区专家-Monster-XH 2023-10-27 12:28
    关注

    任务一:

    def sum_odd_squares(num=8):
        """
        若参数是正整数 num,则返回 3 到 num 之间所有的奇数平方之和;
        若参数是非正整数则报错,并提示错误原因。
        """
        if not isinstance(num, int):
            return "输入数据类型有误"
        
        if num <= 0:
            return "输入数据范围有误"
        
        # 从3到num,找出奇数,并计算它们的平方之和
        total = sum(i**2 for i in range(3, num + 1) if i % 2 != 0)
        return total
    
    # 测试
    print(sum_odd_squares())  # 使用默认参数 8
    print(sum_odd_squares(10))
    print(sum_odd_squares(-5))
    print(sum_odd_squares(5.5))
    

    任务二:

    # 初始化一个空列表来存储学生信息
    students = []
    
    def add_student(name, gender, age):
        """
        向学生列表中添加一个学生
        """
        student = {"name": name, "gender": gender, "age": age}
        students.append(student)
        return "学生信息添加成功!"
    
    def search_student(name):
        """
        查找学生信息
        """
        for student in students:
            if student["name"] == name:
                return student
        return "学生信息不存在!"
    
    # 测试
    add_student("张三", "男", 20)
    add_student("李四", "女", 21)
    print(search_student("张三"))
    print(search_student("王五"))
    

    任务拓展:

    def input_student():
        """
        输入学生信息并添加到列表
        """
        name = input("请输入学生姓名: ")
        gender = input("请输入学生性别(男/女): ")
        age = int(input("请输入学生年龄: "))
        return add_student(name, gender, age)
    
    def modify_student(name):
        """
        修改学生信息
        """
        for student in students:
            if student["name"] == name:
                new_name = input("请输入新的姓名(不修改请直接按Enter): ")
                new_gender = input("请输入新的性别(不修改请直接按Enter): ")
                new_age = input("请输入新的年龄(不修改请直接按Enter): ")
                
                if new_name:
                    student["name"] = new_name
                if new_gender:
                    student["gender"] = new_gender
                if new_age:
                    student["age"] = int(new_age)
                    
                return "学生信息已修改!"
        return "学生信息不存在!"
    
    def delete_student(name):
        """
        删除学生信息
        """
        global students  # 声明全局变量
        students = [student for student in students if student["name"] != name]
        return "学生信息已删除!"
    
    # 测试拓展功能
    input_student()
    print(students)
    modify_student("张三")
    print(students)
    delete_student("张三")
    print(students)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月27日