定义一个用户类,类名称是User
class User():
# 初始化实例对象属性
def __init__(self, name, age, gender, tel):
self.name = name
self.age = age
self.gender = gender
self.tel = tel
def study(self):
print("我是" + self.name + ",我爱学习")
# __str__内置魔术方法,用于输出User的相关信息
def __str__(self):
return "[name=" + self.name + ",age=" + str(self.age) + ",gender=" + self.gender + ",tel=" + self.tel + "]"
if __name__ == "__main__":
# 传递属性的值,实例化对象
u = User("张三", 17, "男", "13124564456")
# 重写了__str__(sef),打印__str__(sef)返回的字符串
print(u)
u.study()
运行结果:
定义学员信息类,包含姓名、成绩属性,定义成绩打印方法(90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格)
class Student():
def __init__(self, name, score):
self.name = name
self.score = score
def print_grade(self):
if self.score >= 90:
print(f'学员姓名:{self.name},学员成绩:{self.score},优秀')
elif self.score >= 80:
print(f'学员姓名:{self.name},学员成绩:{self.score},良好')
elif self.score >= 70:
print(f'学员姓名:{self.name},学员成绩:{self.score},中等')
elif self.score >= 60:
print(f'学员姓名:{self.name},学员成绩:{self.score},及格')
else:
print(f'学员姓名:{self.name},学员成绩:{self.score},不及格')
if __name__ == "__main__":
name = input('请输入姓名:')
score = int(input('请输入成绩:'))
tom = Student(name, score)
tom.print_grade()
运行结果:
小明体重75.0公斤,小明每次跑步会减掉0.50公斤,小明每次吃东西体重增加1公斤
class Person():
def __init__(self, name, weight):
self.name = name
self.weight = weight
def __str__(self):
return f"姓名:{self.name},目前体重:{self.weight}kg"
def run(self):
self.weight -= 0.5
def eat(self):
self.weight += 1
if __name__ == '__main__':
xiaoming = Person('小明', 60.0)
print(xiaoming)
xiaoming.eat()
print(xiaoming)
xiaoming.run()
print(xiaoming)
运行结果:
编写Prime类实现输出大于m且紧随m的k个素数
class Prime:
def __init__(self, start_value, number):
self.start_value = start_value
self.number = number
def prime_number(self):
count = 0
i = self.start_value + 1
while count < self.number:
for j in range(2, i):
if i % j == 0:
break
else:
count = count + 1
print(i, end=" ")
i = i + 1
if __name__ == '__main__':
m = int(input("起始值m:"))
k = int(input("素数个数k:"))
prime = Prime(m, k)
prime.prime_number()
运行结果:
定义一个圆类(Circle),求圆的面积和周长
import math
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
def perimeter(self):
return 2 * math.pi * self.radius
if __name__ == '__main__':
circle = Circle(1)
print("圆的面积为:%.4f"%circle.area())
print("圆的周长为:%.4f"%circle.perimeter())
运行结果:
定义一个三角形类(Triangle),属性是三边的长度,求三角形的面积和周长
import math
class Triangle:
def __init__(self, side1, side2, side3):
self.side1 = side1
self.side2 = side2
self.side3 = side3
def perimeter(self):
return self.side1 + self.side2 + self.side3
# 三边分别为 a、b、c,半周长为s
# 海伦公式:area = sqrt(s * (s - a) * (s - b) * (s - c))
def area(self):
s = self.perimeter() / 2
area = math.sqrt(s * (s - self.side1) * (s - self.side2) * (s - self.side3))
return area
if __name__ == '__main__':
triangle = Triangle(2, 3, 4)
print("三角形的周长为:%.4f"%triangle.perimeter())
print("三角形的面积为:%.4f"%triangle.area())
运行结果:
创建一个学员类,并设计三个字段用于表示学生的成绩(语文、数学、英语):然后定义一个列表表示一个班的学生(10人),依次输入每个学生的信息和成绩,输入的同时将学员的每科成绩划分等级(100-90:A 89-80:B 79-70:C 69-60:D 60以下:E)最后输出所有学员的信息
class Student:
def __init__(self, name, score_chinese, score_math, score_english):
self.name = name
self.score_chinese = score_chinese
self.score_math = score_math
self.score_english = score_english
def get_grade(self, score):
if score >= 90:
return "A"
elif score >= 80:
return "B"
elif score >= 70:
return "C"
elif score >= 60:
return "D"
else:
return "E"
if __name__ == '__main__':
students = []
for i in range(10):
name = input(f"输入第{i+1}位学生的姓名:")
score_chinese = int(input(f"输入第{i+1}位学生的语文成绩:"))
score_math = int(input(f"输入第{i+1}位学生的数学成绩:"))
score_english = int(input(f"输入第{i+1}位学生的英语成绩:"))
student = Student(name, score_chinese, score_math, score_english)
students.append(student)
print("姓名\t语文成绩\t数学成绩\t英语成绩")
for student in students:
print(f"{student.name}\t{student.get_grade(student.score_chinese)}\t{ student.get_grade(student.score_math)}\t{student.get_grade(student.score_english)}")
运行结果:
编一个关于求某门功课总分和平均分的程序,每个学生的信息包括姓名和某门功课的成绩,假设5个学生,类和对象的处理要合理
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
class Course:
def __init__(self, students):
self.students = students
def _total_score(self):
total_score = 0
for student in self.students:
total_score += student.score
return total_score
def _average_score(self):
score = self._total_score()
average_score = score / len(self.students)
return average_score
if __name__ == '__main__':
students = []
for i in range(5):
name = input(f"输入第{i+1}位学生的姓名:")
score = float(input(f"请输入{i+1}的成绩:"))
student = Student(name, score)
students.append(student)
course = Course(students)
total_score = course._total_score()
average_score = course._average_score()
print("该门功课的总分为:%.4f"%total_score)
print("该门功课的平均分为:%.4f"%average_score)
运行结果:
设计一个游戏角色类,字段:角色名、血量、魔法、状态,方法:释放技能、被伤害,要求:设计合理
class Character:
def __init__(self, name, bp, mp,status):
self.name = name
self.bp = bp
self.mp = mp
self.status = status
def release_skill(self):
if self.mp >= 10:
self.mp -= 10
print(f"{self.name}释放了一次技能")
else:
print(f"{self.name}魔法值不足,无法释放技能")
def be_injured(self, damage):
self.bp -= damage
if self.bp <= 0:
self.bp = 0
self.status = "死亡"
print(f"{self.name}已死亡")
else:
print(f"{self.name}受到了{damage}点伤害,当前血量为{self.bp}")
if __name__ == '__main__':
c = Character(' kuyayay', 50, 30, '正常')
c.release_skill()
c.release_skill()
c.be_injured(20)
c.release_skill()
c.be_injured(10)
c.release_skill()
c.be_injured(30)
运行结果: