Python-类题目
本文最后更新于35 天前,其中的信息可能已经过时,如有错误请发送邮件到liumiao0429@foxmail.com

计算:(使用类变量,判断也在类内实现)

学生:男、女生人数

教师:>=45、<45岁人数

数据由键盘输入(不指定人数,输到退出,结束程序)

完整代码

class Person:
    def __init__(self, name, age, sex, type):
        self.name = name
        self.age = age
        self.sex = sex
        self.type = type

    # 输入信息
    def input_info(self):
        try:
            info = input(f"请输入姓名、年龄、性别(用空格分隔):")
            name, age, sex = info.split()
            self.name = name
            self.age = int(age)
            self.sex = sex
        except ValueError as e:
            print(f"输入格式错误,请确保输入格式为:姓名 年龄 性别。错误详情:{e}")
            return None
        return True


class Student(Person):
    def __init__(self, boy_num, girl_num):
        super().__init__("", 0, "", "学生")
        self.boy_num = boy_num
        self.girl_num = girl_num

    def input_info(self):
        if super().input_info() is None:
            return
        self.PDSex(self.sex)

    def PDSex(self, sex):
        if sex == "男":
            self.boy_num += 1
        elif sex == "女":
            self.girl_num += 1
        else:
            print("性别输入错误")

    def print_info(self):
        # print("学生信息:")
        # print(f"男生人数:{self.boy_num}")
        # print(f"女生人数:{self.girl_num}")
        return self.boy_num, self.girl_num


class Teacher(Person):
    def __init__(self, yang_T, oder_T):
        super().__init__("", 0, "", "老师")
        self.yang_T = yang_T  # 45岁及以上
        self.oder_T = oder_T  # 45岁以下

    def input_info(self):
        if super().input_info() is None:
            return
        self.PDAge(self.age)

    def PDAge(self, age):
        if age >= 45:
            self.yang_T += 1
        elif age < 45:
            self.oder_T += 1

    def print_info(self):
        # print("老师信息:")
        # print(f"中年老师人数(45岁及以上):{self.yang_T}")
        # print(f"年轻老师人数(45岁以下):{self.oder_T}")
        return self.yang_T, self.oder_T


# 测试
if __name__ == "__main__":
    print("欢迎使用信息管理系统")
    Boy_sum = 0
    Girl_sum = 0
    yang_T_sum = 0
    oder_T_sum = 0

    while True:
        print("你是老师还是学生? -1退出")
        input_type = input("请输入:1 老师 2 学生:")

        if input_type == "1":
            teacher = Teacher(0, 0)
            teacher.input_info()
            result = teacher.print_info()
            if result:
                yang_T, oder_T = result
                yang_T_sum += yang_T
                oder_T_sum += oder_T

        elif input_type == "2":
            student = Student(0, 0)
            student.input_info()
            result = student.print_info()
            if result:
                boy_num, girl_num = result
                Boy_sum += boy_num
                Girl_sum += girl_num

        elif input_type == "-1":
            print("程序退出")
            break

    print(f"全部信息:")
    print(f"中年老师人数(45岁及以上):{yang_T_sum} 年轻老师人数(45岁以下):{oder_T_sum}")
    print(f"男生总人数:{Boy_sum} 女生总人数:{Girl_sum}")

测试用例

老师
小莫 20 男
小赵 55 男
小李 22 女
学生
小派 20 男
小琳 22 女
小马 19 女
小像 19 女

中年老师人数(45岁及以上):1 年轻老师人数(45岁以下):2
男生总人数:1 女生总人数:3

呈上拙作,望不吝赐教 --LM
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
隐藏
变装