Python基础作业_第07章_函数

"""
1、上机题
    定义一个函数,实现两个数四则运算,要注意有3个参数,分别是运算符和两个用于运算的数字。
"""


def four_ari(num1, operator, num2):

    """实现两个数四则运算

    :param num1: 第一个数
    :param operator: 运算符
    :param num2: 第一个数
    :return: 返回运算结果
    """
    if operator == '+':

        result = num1 + num2

    elif operator == '-':

        result = num1 - num2

    elif operator == '*':

        result = num1 * num2

    elif operator == '/':

        if num2 != 0:

            result = num1 / num2

        else:

            result = "做除法,要求除数不能为零!"

    return result


print("-" * 20)
print("功能:实现两个数四则运算")
print("-" * 20)

while True:

    first_num = input("请输入一个数:")

    if first_num.isdigit():

        first_num = int(first_num)

        operator = input("请输入运算符(+、-、*、/):")

        if operator in ['+', '-', '*', '/']:

            second_num = input("请输入另一个数:")

            if second_num.isdigit():

                second_num = int(second_num)

                print(four_ari(first_num, operator, second_num))
                print()

            else:

                print("输入有误,请只输入数字。")
                print()  # 换行

        else:

            print("输入有误,请只输入运算符。")
            print()  # 换行

    else:

        print("输入有误,请只输入数字。")
        print()  # 换行
"""
2、上机题
    实现学生管理系统,使用自定义函数,完成对学员的增、删、改、查和退出学生管理系统
"""
# 01_main主函数
import assignment_02_students_tools

while True:

    # 打印欢迎界面
    assignment_02_students_tools.print_welcome()

    # 用户选择功能
    user_action = input("请输入您要使用的功能对应的序号:")

    # 1. 增加学员
    if user_action == "1":

        assignment_02_students_tools.add_student()

    # 2. 显示全部学员
    elif user_action == "2":

        assignment_02_students_tools.display_student()

    # TODO 3. 查询学员
    elif user_action == "3":

        assignment_02_students_tools.search_student()

    # 4. 退出系统
    elif user_action == "4":

        print("退出系统")
        print("欢迎再次使用")

        break

    else:

        print("很抱歉,您输入有误,请重新输入。")

# 02_tools工具
# 存储学员信息
student_list = []


def print_welcome():

    """打印欢迎界面"""

    print("-" * 26)
    print("欢迎使用『学生管理系统』V1.0")
    print("1:增加学员")
    print("2:显示全部学员")
    print("3:查询学员")
    print("4:退出系统")
    print("-" * 26)


def add_student():

    """增加学员"""

    print("增加学员")

    # 1. 学员输入个人信息
    name_str = input("姓名:")
    num_str = input("学号:")
    phone_str = input("手机号:")
    qq_str = input("QQ:")
    email_str = input("邮箱:")

    # 2. 将学员输入的个人信息添加到列表字典中
    temp_dict = {"姓名": name_str,
                 "学号": num_str,
                 "手机号": phone_str,
                 "QQ": qq_str,
                 "邮箱": email_str}
    student_list.append(temp_dict)

    print("学员 %s 已经成功添加到系统中。" % name_str)


def display_student():

    """显示全部学员"""

    if len(student_list) > 0:
        print("显示全部学员")

        # 显示表头
        print("姓名\t\t学号\t\t\t\t手机号\t\t\t\tQQ\t\t\t\t邮箱")
        # 遍历列表,显示字典的值
        for person_info in student_list:

            print("%s\t\t%s\t\t%s\t\t%s\t\t%s" % (person_info["姓名"],
                                                  person_info["学号"],
                                                  person_info["手机号"],
                                                  person_info["QQ"],
                                                  person_info["邮箱"]))
    else:

        print("系统中还没有学员")


def search_student():

    """查询学员"""

    print("查询学员")

    # 通过字典的姓名键值对来查询
    temp_name = input("请输入您要查询的姓名:")

    for temp_dict in student_list:

        if temp_dict["姓名"] == temp_name:

            print("「学员 %s 个人信息如下」" % temp_name)

            # TODO 找到学员就显示该学员
            # 显示表头
            print("姓名\t\t学号\t\t手机号\t\tQQ\t\t邮箱")
            print("%s\t\t%s\t\t%s\t\t%s\t\t%s" % (temp_dict["姓名"],
                                                  temp_dict["学号"],
                                                  temp_dict["手机号"],
                                                  temp_dict["QQ"],
                                                  temp_dict["邮箱"]))
            # 修改或删除学员信息
            deal_student(temp_dict)

            break

    else:
        print("系统名单中没有 %s 学员,请确认是否输入有误" % temp_name)


def deal_student(temp_dict):
    """修改和删除学员的信息

    :param temp_dict: 每个学员的信息字典
    """
    deal_num = input("变更学员信息:1-修改,2-删除,0-返回上级菜单。请输入要执行功能的序号:")

    if deal_num == "1":

        # TODO 修改学员信息
        # 1. 学员输入变更信息
        name_new = input_plus(temp_dict["姓名"], "请输入新姓名[回车不修改]:")
        num_new = input_plus(temp_dict["学号"], "请输入新学号[回车不修改]:")
        phone_new = input_plus(temp_dict["手机号"], "请输入新手机号[回车不修改]:")
        qq_new = input_plus(temp_dict["QQ"], "请输入新QQ[回车不修改]:")
        email_new = input_plus(temp_dict["邮箱"], "请输入新邮箱[回车不修改]:")
        # 2. 更新系统中旧的学员信息
        temp_dict["姓名"] = name_new
        temp_dict["学号"] = num_new
        temp_dict["手机号"] = phone_new
        temp_dict["QQ"] = qq_new
        temp_dict["邮箱"] = email_new

        print("学员 %s 的信息修改成功" % name_new)

    elif deal_num == "2":

        # TODO 删除学员信息
        student_list.remove(temp_dict)

        print("学员 %s 的信息删除成功" % temp_dict["姓名"])


def input_plus(dict_value, point_out):
    """学员输入了信息就修改,不输入就不修改

    :param dict_value: 键值对的原值
    :param point_out: 提示信息
    :return:
    """
    # 提示学员输入变更信息
    temp_info = input(point_out)

    # 学员输入了信息就修改
    if len(temp_info) > 0:

        return temp_info
    # 学员没有输入就返回键值对的原值
    else:

        return dict_value
"""
3、上机题
    定义一个函数,将列表作为参数传递给函数,并对列表元素进行修改。
"""


def modify_list(unmodified_list):
    """修改列表中的元素

    :param unmodified_list: 待修改的列表
    """
    print("-" * 28)
    print("需要修改的列表:")
    print(name_list)
    print("-" * 28)

    while True:

        action_num = input("请输入您需要执行的功能:1-修改元素,2-删除元素,0-退出:")

        if action_num == "1":

            print("修改列表元素")
            index = input("请输入需要修改元素的下标:")

            if index.isdigit():

                content = input("请输入相应的元素内容:")
                name_list[int(index)] = content

                print("修改后的列表:")
                print(unmodified_list)

                print("修改成功")
                print()  # 换行

            else:

                print("您输入有误,下标为整数。")
                print()  # 换行

        elif action_num == "2":

            print("删除列表元素")
            content = input("请输入元素内容:")

            # 判断输入的元素内容是否在列表中
            if content in name_list:

                name_list.remove(content)

                print("删除后的列表:")
                print(unmodified_list)

                print("删除成功")
                print()  # 换行

            else:

                print("您输入有误,请确认列表中是否有 【%s】" % content)
                print()  # 换行

        else:

            print("祝生活愉快,欢迎再次使用")

            break


name_list = ["张三", "李四", "王五", "陈六", "王八"]

modify_list(name_list)

猜你喜欢

转载自blog.csdn.net/Zh_20180915/article/details/90143464