单击题目,直接跳转到页面刷题,一周后公布答案。加入QQ群701657573,随时答疑交流。
- 218:类对象属性
- 219:坐标对象相加
- 220:计算周长
- 221:学生分数总和
- 222:车辆类中创建引擎类对象
- 223:调用父类方法
- 224:super()函数的使用
- 225:正方形的面积和周长
1. 218:类对象属性
编写一个程序来创建一个类并使用该类的方法来打印属性。
创建一个类:
- 创建自行车Bicycle类。
- 在类中,创建两个方法__init__()和print_attributes()。
- 类有两个属性:gear’和speed,它们应该在__init__()中初始化。
- 在print_attributes()方法中,将gear属性和speed属性分别打印在两行。
在类外:
- 创建Bicycle类对象bicycle1。对象的gear和speed属性分别是4和80。
- 使用bicycle1对象调用print_attributes()方法。
更多提示,请看代码示例。
示例输出
4
80
参考源码:
# 创建Bicycle类
class Bicycle:
def __init__(self, gear, speed):
# 初始化属性
self.gear = gear
self.speed = speed
# 创建print_atributes() 方法
def print_atributes(self):
print(self.gear)
print(self.speed)
# 创建对象, 4 和 80 作为初始化参数
bicycle1 = Bicycle(4, 80)
# 调用 print_atributes() 方法
bicycle1.print_atributes()
2. 219:坐标对象相加
编写一个程序,计算两个二维坐标类对象相加之和。
创建类:
- 创建坐标类Coordinate,属性为x和y。
- 使用__init__()方法来初始化属性。
- 该类有add_coordinates()方法,参数为Coordinate类对象,计算两个对象的x和y分别相加之和,并作为新的属性返回一个新的Coordinate对象。
在类外:
- 创建两个Coordinate类对象c1和c2。
- c1的x和y属性分别为5和6。
- c2的x和y属性分别为7和9。
- 使用c1对象调用add_coordinates(),以c2为参数,并将结果赋值到c3变量中。
- 打印c3的x属性。
- 打印c3的y属性。
更多提示,请看代码示例。
示例输出
12
15
参考源码:
# 创建 Coordinate 类
class Coordinate:
# 初始化属性x 和 y,使用__init__() 函数
def __init__(self, x, y):
self.x = x
self.y = y
# 实现 add_coordinates() 方法
def add_coordinates(self, a):
# b = Coordinate(0, 0) # 创建新的Coordinate对象b
# b.x = self.x + a.x
# b.y = self.y + a.y
# return b
return Coordinate(self.x+a.x, self.y+a.y)
# 创建对象 c1 和 c2
c1 = Coordinate(5, 6)
c2 = Coordinate(7, 9)
# 对象c1调用add_coordinates()方法,参数为c2
c3 = c1.add_coordinates(c2)
# 输出对象c3 的属性
print(c3.x)
print(c3.y)
3. 220:计算周长
编写一个程序来计算三角形的周长,使用面向对象方式来编程。
创建类:
- 创建三角形Triangle类,有三个属性x,y,z。
- 使用__init__()方法来初始化属性。
- 创建get_perimeter()的方法来计算周长并返回。
在类外:
- 输入三个整数,分别赋值给变量a、b和c。(三角形三边长度)。
- 用a、b、c创建Triangle类对象。
- 用该对象调用get_perimeter()方法,返回周长。
- 打印周长。
输入格式
三个整数
示例输入
1
2
3
示例输出
6
参考源码:
# 创建三角形类Triangle
class Triangle:
# 实现__init__()方法 ,初始化属性
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
# 定义 get_perimeter() 方法
def get_perimeter(self):
return self.x + self.y + self.z
# 输入三个整数
a = int(input())
b = int(input())
c = int(input())
# 创建Triangle类对象,并用a、b、c作为参数初始化三边
my_tri = Triangle(a, b, c)
# 调用 get_perimeter() 计算周长
perimeter = my_tri.get_perimeter()
# 打印 周长 perimeter
print(perimeter)
4. 221:学生分数总和
编写一个程序来创建Student类,该类有一个方法返回存储在列表中的分数之和。
创建类:
- 创建Student类,且有一个分数scores属性(类型为列表)。
- 创建__init__()方法初始化scores属性。
- 创建get_scores_sum()方法,将分数相加返回。可使用内置的 sum()函数。
类外部:
- 创建列表scores值为[55, 75, 80, 62, 77]。
- 创建Student类对象s1,并传入scores来初始化属性。
- 调用get_scores_sum()方法,结果存入total变量。
- 打印total变量。
示例输出
349
参考源码:
# 创建 Student 类
class Student:
# 使用 __init__() 方法来初始化 scores 属性
def __init__(self, scores):
self.scores = scores
# 创建get_scores_sum()方法,将分数相加返回
def get_scores_sum(self):
return sum(self.scores)
# 创建列表 scores
scores = [55, 75, 80, 62, 77]
# 传递分数scores作为参数创建Student类对象
s1 = Student(scores)
# 对象s1调用方法get_scores_sum()
total = s1.get_scores_sum()
# 打印 total
print(total)
5. 222:车辆类中创建引擎类对象
编写写一个程序,在一个类中创建另一个类的对象。
创建类:
- 创建两个类:发动机类Engine,属性为动力power;车辆类Vehicle,属性为: 轮子wheels和发动机engine。
- Engine类__init__()方法,带两个参数。self和power来创建并初始化Engine类的power属性。
- Vehicle类__init__()方法,带两个参数self和wheels来初始化Vehicle类的wheels属性。
- 在Vehicle的__init__()方法中,engine属性应该为一个Engine类的对象,其power属性等于400。
- 在Vehicle类中创建get_power()方法,打印 属性engine的power属性。
在类外:
- 创建车辆Vehicle类对象,轮子wheels属性等于4。
- 调用该对象的get_power()方法。
更多提示,请看代码示例。
示例输出
400
参考源码:
# 创建Engine类
class Engine:
# __init__() 方法初始化 power 属性
def __init__(self, power):
self.power = power
# 创建 Vehicle 类
class Vehicle:
# __init__() 方法初始化 wheels 属性
def __init__(self, wheels):
self.wheels = wheels
# 引擎属性enginer应该是引擎类的一个对象,power属性为400
self.engine = Engine(400)
# 创建 get_power() 方法
def get_power(self):
# 打印引擎属性的功率属性(engine是引擎类的一个对象)。
print(self.engine.power)
# 创建车辆Vehicle类对象
my_car = Vehicle(4)
# 调用get_power()方法
my_car.get_power()
6. 223:调用父类方法
编写一个程序,使用派生类(子类)对象调用基类(父类)的方法:
创建类:
- 创建动物Animal基类。该类中,创建eat()方法,打印 “我在吃东西”。
- 创建一个继承于Animal类的Dog类。该类中,创建bark()方法,打印 “我在叫”。
在类外:
- 创建Dog类对象。
- 用该对象调用eat()方法。
示例输出
我在吃东西
参考源码:
# 创建Animal类
class Animal:
def eat(self):
print("我在吃东西")
# 创建 Dog 类,继承于 Animal类
class Dog(Animal):
def bark(self):
print("我在叫")
# 创建Dog类对象
my_dog = Dog()
# 调用对象的 eat() 方法
my_dog.eat()
7. 224:super()函数的使用
编写一个程序,使用super()函数在派生类的方法中调用基类的方法。
创建类:
- 创建动物Animal基类。该类中,创建eat()方法,打印 “我在吃东西”。
- 创建一个继承于Animal类的Dog类。该类中,创建bark()方法,打印 “我在叫”。
- 在Dog类中定义eat()方法,使用supper()调用父类Animal类的eat()方法。
在类外:
创建Dog类对象,用该对象调用eat()方法。
示例输出
我在吃东西
参考源码:
# 创建Animal类
class Animal():
def eat(self):
print("我在吃东西")
# 创建 Dog 类,继承于 Animal类
class Dog(Animal):
def bark(self):
print("我在叫")
def eat(self):
# 通过super() 函数来调用父类的eat方法
super().eat()
# 创建Dog类对象
my_dog = Dog()
# 调用对象的 eat() 方法
my_dog.eat()
8. 225:正方形的面积和周长
编写一个程序,用类来计算一个正方形的面积和周长。(正方形是一个边长相等的矩形)
创建一个类。
- 创建正方形Square类,且有一个长度length属性。
- 使用__init__()来初始化 length 属性。
- 创建compute_area()方法来计算正方形的面积并返回。
- 创建compute_perimter()方法来计算正方形的周长并返回。
在类外:
- 输入一个整数并赋值给length变量。
- 通过传递length作为参数,创建一个Square类对象。
- 调用compute_area()方法并打印面积。
- 调用compute_perimeter()方法并打印周长。
正方形的面积等于length * length,正方形的周长等于4 * length。
输入格式
一个整数
示例输入
2
示例输出
4
8
参考源码:
# 创建正方形类Square
class Square:
# 实现 __init__() 函数,初始化属性
def __init__(self, length):
self.length = length
# 实现面积方法 get_area() ,并返回面积
def get_area(self):
return self.length ** 2
# 实现周长方法 get_perimeter() ,并返回周长
def get_perimeter(self):
return 4 * self.length
# 输入一个整数
length = int(input())
# 创建Square类对象
my_square = Square(length)
# 调用 get_area() 方法并打印面积
print(my_square.get_area())
# 调用 get_perimeter() 方法并打印周长
print(my_square.get_perimeter())