第8周 Python面向对象编程刷题

单击题目,直接跳转到页面刷题,一周后公布答案。加入QQ群701657573,随时答疑交流。

  1. 218:类对象属性
  2. 219:坐标对象相加
  3. 220:计算周长
  4. 221:学生分数总和
  5. 222:车辆类中创建引擎类对象
  6. 223:调用父类方法
  7. 224:super()函数的使用
  8. 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 = gearself.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 = xself.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 breturn 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 = xself.y = yself.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属性为400self.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())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python项目2 数据可视化

生成数据 数据可视化 指的是通过可视化表示来探索数据,它与数据挖掘 数据挖掘 紧密相关,而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表 示的小型数字列表,也可以是数以吉字节的数据。 漂亮地呈现数据关…

【论文笔记】Planning-oriented Autonomous Driving

原文链接:https://arxiv.org/abs/2212.10156 1. 引言 目前的自动驾驶工业界通常为不同任务部署不同的模型,但优化的孤立性会导致模块之间的信息损失、误差积累和特征不对齐。 一种更好的设计是将各种任务整合为多任务学习,即为共享的特征提…

设计模式之责任链模式讲解

概念:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。最匹配的场景应该就是逐层审批的模式。 责任链模式只有两个角色&#xff…

C++——基础复习——会议室预约系统

一、简介 看了两个不同的C培训课程,最后的实习程序都是这个项目。不看老师的讲解视频,自己试着写了一下,在写的过程中发现当项目需求不固定时,会越写越乱,总是想要添加更高的需求,导致写了删,删…

wife_wife-攻防世界

题目 注册发现可以注册管理员,但是好像有条件 抓包试试 没思路了 看看其他师傅的wp,用到 js 原型链污染攻击 Nodejs原型链污染攻击基础知识 | Savants Blog (lxscloud.top) 网站后端是Node.js搭建的 原型链污染 简单来讲,通过 newUser.__proto__ …

RHCE实验2-DNS服务正反向解析

实验开始 一、DNS正向解析 注: server端:192.168.32.147 node端:192.168.32.141 网址:www.openlab.com 1、server端和node端都关闭安全软件(以server端为例) [rootserver ~]# setenforce 0 [rootser…

记一次死锁排查

一、代码场景 将FTP服务器设计为多线程形式。 FTP服务器在处理客户端响应时,对数据连接描述符dataFd和控制连接描述符ctrlFd分别进行集中处理。 因为方便用select()多路复用,开两个线程分发连接到来的事件。 1. 整体框架 void addToControlServer (…

java一个接口中比较复杂,这时候调用三次数据库,执行需要3秒,怎么优化

java一个接口中比较复杂,这时候调用2次数据库,执行需要3秒,怎么优化 使用异步执行: 将三次数据库操作放在独立的线程中异步执行,避免串行执行造成的等待时间。 可以使用 Java 的 CompletableFuture 或 Executor 框架来实现异步调用。 比如调用…

【IT资质】CS信息系统建设和服务能力评估详情介绍!你的企业办理了吗 ?

CS信息系统建设和服务能力评估是什么? 《信息系统建设和服务》是指通过结构化的综合布线系统,运用计算机网络技术和软件技术,将各个分离的设备、功能和信息等集成到相互关联的、统一和协调的系统之中,以及为信息系统正常运行提供…

Java基于微信小程序的校园跑腿小程序,附源码

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Python中queue和Qt中QQueue

Python中的queue queue模块 实现了多生产者、多消费者队列,适用于安全地在多线程间交换消息的线程编程。其实现了一个基本的先进先出(FIFO)容器。 queue模块定义了以下类和异常: class queue.Queue(maxsize0)FIFO 队列的构造函…

vue3+element plus图片预览点击按钮直接显示图片的预览形式

1 需求 直接上需求&#xff1a; 我想要直接点击下面这个“预览”按钮&#xff0c;然后呈现出预览图片的形式 ok&#xff0c;需求知道了&#xff0c;下面让我们来看看如何实现吧 ~ 2 实现 template部分 <el-buttontype"primary"size"small"click&qu…

一文读懂“涉密资质”与“保密资质”:不同之处,不容忽视!

什么是涉密资质&#xff1f; 涉密资质分为&#xff1a;涉密信息系统集成资质&#xff08;简称&#xff1a;涉密集成资质&#xff09;、国家秘密载体印制资质。涉密集成资质&#xff0c;该资质是从事涉及国家秘密的计算机信息系统集成业务需要取得的资质有8个行业单项和一个总体…

前端实现流文件下载的完整指南

在现代Web开发中&#xff0c;经常会遇到需要从服务器下载文件的情况。有时候这些文件是事先存储好的&#xff0c;可以通过简单的URL链接直接下载&#xff1b;但有时候&#xff0c;我们需要从数据流中动态生成文件并将其提供给用户。本篇博客将介绍如何在前端实现流文件下载的完…

链表中常见的使用方法逻辑整理

文章目录 1. 链表特点2. 链表创建3. 链表遍历通用方法3.1 在链表的开头添加元素3.2 在链表的结尾添加元素3.3 删除链表的第一个元素3.4 删除链表的最后一个元素3.5 遍历链表3.6 查找链表中的元素3.7 反转链表 4. 常见面试题4.1 相交链表4.2 反转链表4.3 环形链表4.4 环形链表 I…

easyui combobox下拉框组件输入检索全模糊查询

前引&#xff1a; easyui下拉组件&#xff08;combobox&#xff09;&#xff0c;输入检索下拉内容&#xff0c;是默认的右模糊匹配&#xff0c;而且不支持选择。因业务要求需要做成全模糊查询&#xff0c;目前网上搜索有两种方案&#xff1a; 1.修改easyui源码&#xff0c;这个…

测试 moco-runner工具 mock数据

1.下载moco-runner-1.5.0-standalone.jar文件 2.编辑demo.json &#xff08;和jar包在同一级目录&#xff09; 建议不要指定 "headers为application/json&#xff0c; 如果制定了&#xff0c;那么restTemplate调用header为null,调用就会报错400 是一个数组&#xff0c;…

LeetCode700:二叉搜索树中的搜索

题目描述 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 代码 递归法 class Solution { public:TreeNode* searchBST(TreeN…

Visual Studio code无法正常执行Executing task: pnpm run docs:dev

最近尝试调试一个开源的项目&#xff0c;发现cmd可以正常启动&#xff0c;但是在vs中会报错&#xff0c;报错内容如下 Executing task: pnpm run docs:dev pnpm : 无法加载文件 E:\XXXX\pnpm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 http…

组合导航的结果分段跳变问题

1 现象 用上海代数律动公司的AlgoT1-3组合导航设备采集数据进行组合导航算法调试&#xff0c;AlgoT1-3机器输出的结果很好很平滑&#xff0c;AlgoT1-3是带GNSS/INS的组合导航设备&#xff0c;另外还有一款更贵一点的带视觉的组合导航AlgoT1&#xff0c;效果会更好一些&#xf…