当前位置:   article > 正文

Python之面向对象经典题目_1.定义学校人员基本信息类(scholmenber),包括姓名(username)、部门(depar

1.定义学校人员基本信息类(scholmenber),包括姓名(username)、部门(depart)、性别

题目

1.定义一个学校人员类SchoolPerson,
其中,属性:姓名name、性别sex、年龄age;
方法:设置人员的各个属性的set_info方法;
获取各属性值的get_info方法。
定义好类以后,再定义2个人员进行测试。

2.在第1个题的基础上添加两个方法:
其中,init()方法,完成属性的初始化(要求从键盘输入各属性的值);
del()方法,完成输出“__del__方法调用”这一句话(作用是用来销毁对象)。

3.创建学生类Student,继承自SchoolPerson类,添加额外两个属性:班级class、学号sno。
添加方法:打印学生的所有信息print_info方法。
创建教师类Teacher,继承自SchoolPerson类,添加额外两个属性:部门department、工号cno。
添加方法:打印教师的所有信息print_info方法。
并定义学生类、教师类的对象,然后分别调用print_info方法,实现各自对象属性信息的输出。

4.创建类MyMath,计算圆的周长、面积和球的表面积、体积,结果保留两位小数。若输入的是非数字,则输出:请输入数字!提示:要引入math包。
结果如下,请输入半径:5
圆的周长:31.42
圆的面积:78.54
球的表面积:314.16

解析

1.第一题

解法:

class SchoolPerson:
    def set_info(self):
        self.name = input("输入姓名:")
        self.sex = input("输入性别:")
        self.age = input("输入年龄:")

    def get_info(self):
        return self.name,self.sex,self.age

# student
student = SchoolPerson()
student.set_info()
print(student.get_info())
# teacher
teacher = SchoolPerson()
teacher.set_info()
print(teacher.get_info())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

执行结果(以执行加运算为例):

"D:\Python Soft\Python39\python.exe" C:/Users/HP/PycharmProjects/pythonProject/python5/5-1.py
输入姓名:xxl
输入性别:男
输入年龄:20
('xxl', '男', '20')
输入姓名:李老师
输入性别:女
输入年龄:27
('李老师', '女', '27')

Process finished with exit code 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2.第二题

解法:

class SchoolPerson:
    # 初始化
    def __init__(self, name, sex, age):
        self.name = name
        self.sex = sex
        self.age = age

    # 输出语句,销毁对象
    def __del__(self):
        print("__del__方法调用")

    def __str__(self):
        return "初始信息为 姓名:%s,性别:%s,年龄:%s" % (self.name, self.sex, self.age)

    def set_info(self):
        name1 = input("输入修改后的姓名:")
        self.name = name1
        sex1 = input("输入修改后的性别:")
        self.sex = sex1
        age1 = input("输入修改后的年龄:")
        self.age = age1

    def get_info(self):
        return "修改信息为姓名:%s,性别:%s,年龄:%s" % (self.name, self.sex, self.age)


a = input("输入初始姓名:")
b = input("输入初始性别:")
c = input("输入初始年龄:")
student = SchoolPerson(a, b, c)
print(student)
student.set_info()
print(student.get_info())
l = input("输入初始姓名:")
m = input("输入初始性别:")
n = input("输入初始年龄:")
teacher = SchoolPerson(l, m, n)
print(teacher)
teacher.set_info()
print(teacher.get_info())

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

执行结果:

"D:\Python Soft\Python39\python.exe" C:/Users/HP/PycharmProjects/pythonProject/python5/5-2.py
输入初始姓名:xxl
输入初始性别:men
输入初始年龄:20
初始信息为 姓名:xxl,性别:men,年龄:20
输入修改后的姓名:xxx
输入修改后的性别:men
输入修改后的年龄:19
修改信息为姓名:xxx,性别:men,年龄:19
输入初始姓名:Mr.zhao
输入初始性别:men
输入初始年龄:40
初始信息为 姓名:Mr.zhao,性别:men,年龄:40
输入修改后的姓名:Mr.zhang
输入修改后的性别:men
输入修改后的年龄:29
修改信息为姓名:Mr.zhang,性别:men,年龄:29
__del__方法调用
__del__方法调用
 
Process finished with exit code 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

3.第三题

解法:

class SchoolPerson(object):
    def __init__(self, name, sex, age):
        self.name = name
        self.sex = sex
        self.age = age

    def set_(self):
        name = input("请输入姓名:")
        self.name = name
        sex = input("请输入性别:")
        self.sex = sex
        age = input("请输入年龄:")
        self.age = age


class Student(SchoolPerson):
    def set_info(self):
        class1 = input("请输入班级:")
        self.class1 = class1
        sno = input("请输入学号:")
        self.sno = sno

    def print_info(self):
        return "学生的信息为:姓名:%s  性别:%s  年龄:%s  班级:%s  学号:%s" % (self.name, self.sex, self.age, self.class1, self.sno)


class Teacher(SchoolPerson):
    def set_info(self):
        department = input("请输入部门:")
        self.department = department
        cno = input("请输入工号:")
        self.cno = cno

    def print_info(self):
        return "老师的信息为:姓名:%s  性别:%s  年龄:%s  部门:%s  工号:%s" % (self.name, self.sex, self.age, self.department, self.cno)

a = Student("小明", "男", "18")
a.set_()
a.set_info()
print(a.print_info())
b = Teacher("王老师", "男", "42")
b.set_()
b.set_info()
print(b.print_info())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

执行结果:

"D:\Python Soft\Python39\python.exe" C:/Users/HP/PycharmProjects/pythonProject/python5/5-4.py
请输入姓名:lxx
请输入性别:男
请输入年龄:18
请输入班级:java
请输入学号:1234567890
学生的信息为:姓名:lxx  性别:男  年龄:18  班级:java  学号:1234567890
请输入姓名:Amy
请输入性别:女
请输入年龄:20
请输入部门:宣传部
请输入工号:111111111
老师的信息为:姓名:Amy  性别:女  年龄:20  部门:宣传部  工号:111111111
 
Process finished with exit code 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

4.第四题

解法:

import math
class MyMath(object):
    def __init__(self, r):
        self.r = r

    # 周长
    def perimeter(self):
        c = 2 * math.pi * self.r
        return c

    # 面积
    def area(self):
        a = math.pi * r * r
        return a

    # 体积
    def volume(self):
        v = (4 / 3) * math.pi * r * r * r
        return v


try:
    r = int(input("请输入半径:"))
    p = MyMath(r)
    print("圆的周长={:.2f}".format(p.perimeter()))
    print("圆的面积={:.2f}".format(p.area()))
    print("球的表面积={:.2f}".format(p.surfaceArea()))

except:
    print("请输入数字!")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

执行结果:

"D:\Python Soft\Python39\python.exe" C:/Users/HP/PycharmProjects/pythonProject/python5/5-5.py
请输入半径:5
圆的周长=31.42
圆的面积=78.54
球的表面积=314.16
 
Process finished with exit code 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/456991
推荐阅读
相关标签
  

闽ICP备14008679号