当前位置: 首页 > news >正文

第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())

相关文章:

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

单击题目,直接跳转到页面刷题,一周后公布答案。加入QQ群701657573,随时答疑交流。 218:类对象属性219:坐标对象相加220:计算周长221:学生分数总和222:车辆类中创建引擎类对象223&am…...

【学习心得】神经网络知识中的符号解释②

我在上篇文章中初步介绍了一些神经网络中的符号,只有统一符号及其对应的含义才能使我自己在后续的深度学习中有着一脉相承的体系。如果对我之前的文章感兴趣可以点击链接看看哦: 【学习心得】神经网络知识中的符号解释①http://t.csdnimg.cn/f6PeJ 一、…...

Igh related:Small Bug And Notes Record.

Write at the top My computer got some silly problem with the typing software that my Chinese IM does’t work again. So I’ll try to record the things happened in English. If any error,DM me plz. BUGs BUG1 Undefined symbol Identifier “CLOCK_MONOTONIC”…...

【QT入门】Qt自定义控件与样式设计之qss介绍(Qt style sheet)

往期回顾: 【QT入门】 无边框窗口设计之实现圆角窗口-CSDN博客【QT入门】 无边框窗口设计综合运用之自定义标题栏带圆角阴影的窗口-CSDN博客 【QT入门】 无边框窗口设计之综合运用,实现WPS的tab页面-CSDN博客 【QT入门】Qt自定义控件与样式设计之qss介绍…...

[ LeetCode ] 题刷刷(Python)-第49题:字母异位词分组

题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词是由重新排列源单词的所有字母得到的一个新单词。 即将含有相同字符但排列顺序不同的字符串放入同一个组中。 示例 示例 1: 输入: strs ["eat", &qu…...

冒泡排序算法实现步骤

算法实现的过程: 1. 定义问题: - 算法是用来解决某一特定计算问题的方法步骤。例如,对于排序问题,我们需要一个算法对一组无序的整数进行排序。 2. 设计算法: - 冒泡排序是一种基础的排序算法。它的设计思路是…...

js实现webp转png/jpg

网上保存的图片是webp类型的&#xff0c;但是我把它嵌入flac格式的音频里后导致网页中无法播放 wps要会员&#xff0c;真麻烦。 完整代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8">…...

DVWA -File Upload-通关教程-完结

DVWA -File Upload-通关教程-完结 文章目录 DVWA -File Upload-通关教程-完结页面功能LowMediumHighImpossible 页面功能 此页面的功能为选择某个图片文件点击Upload按钮上传&#xff0c;上传成功后得知文件上传路径为DVWA\hackable\uploads。 Low 源码审计 这段 PHP 代码…...

中介者模式:简化对象间通信的协调者

在面向对象的软件开发中&#xff0c;中介者模式是一种重要的行为型设计模式&#xff0c;用于降低多个对象间通信的复杂性。通过提供一个中心化的对象来处理不同组件之间的交互&#xff0c;中介者模式使得组件间不必显式引用彼此&#xff0c;从而使其松散耦合、更易于维护。本文…...

【Python系列】pydantic版本问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

深度学习-多尺度训练的介绍与应用

一、引言 在当今快速发展的人工智能领域&#xff0c;多尺度训练已经成为了一种至关重要的技术&#xff0c;特别是在处理具有复杂结构和不同尺度特征的数据时。这种技术在许多应用中发挥着关键作用&#xff0c;例如图像识别、自然语言处理和视频分析等。 多尺度训练的定义 多尺…...

详解单文件组件

当你创建 Vue 单文件组件时&#xff0c;通常会包含三个部分&#xff1a;<template>、<script> 和 <style>。这三个部分分别用于定义组件的模板、逻辑和样式。让我更详细地解释一下它们的作用和用法&#xff1a; <template> <template> 标签用于…...

MLeaksFinder报错

1.报错&#xff1a;FBClassStrongLayout.mm 文件&#xff1a;layoutCache[currentClass] ivars; 解决&#xff1a;替换为layoutCache[(id)currentClass] ivars; 2.编译正常但运行时出现crash indirect_symbol_bindings[i] cur->rebinding FBRetainCycleDetector iOS15 …...

【心路历程】初次参加蓝桥杯实况

送给大家一句话&#xff1a; 寂静的光辉平铺的一刻&#xff0c;地上的每一个坎坷都被映照得灿烂。 – 史铁生 《我与地坛》 初次参加蓝桥杯有感 一点小小的震撼难评的做题过程A题 艺术与篮球问题描述解题 B 题 五子棋问题描述解题 C题 训练士兵问题描述解题 D题 团建解题 E题 …...

微信小程序全屏开屏广告

效果图 代码 <template><view><!-- 自定义头部 --><u-navbar title" " :bgColor"bgColor"><view class"u-nav-slot" slot"left"><view class"leftCon"><view class"countDown…...

记录day1

1.早上 ①协同过滤算法 基于物品基于用户分别是如何实现的 相似度的计算方式 基于用户和基于物品的区别 实时性和新物品这里&#xff1a; 实时性指的是用户有新行为&#xff0c;这样基于物品就好&#xff0c;因为用户新行为了&#xff0c;用户矩阵不会变化&#xff0c;用户…...

stm32GPio的开发基础

上拉输入&#xff1a;高电平&#xff08;弱高电平&#xff0c;一般默认&#xff09; 下拉输入&#xff1a;低电平 没有上拉下拉就是处于一个不确定的状态 推挽wan输出&#xff1a;驱动能力比较强&#xff0c;推挽是因为往外推 set就是1&#xff0c;reset就是0 XMX就是封装的…...

DataSource

目录 1、 DataSource 1.1、 * 建立数据库连接的参数对象 1.1.1、 * 数据库url 1.1.2、 * 数据库用户名 1.1.3、 * 数据库密码 1.1.4、 * 数据库驱动名称 <...

Linux防止暴力破解密码脚本

1.认识记录linux记录安全的日志 [roottestpm ~]# cd /var/log/ [roottestpm log]# ls | grep secure secure 2.该日志的内容查看 [roottestpm log]# tail -f secure #表示ssh身份验证失败 Aug 29 23:35:03 testpm sshd[111245]: pam_unix(sshd:auth): authentication fa…...

Unity 遮罩

编辑器版本 2017.2.3f1 学习Unity的三张遮罩方式 1. Mask 遮罩方式 首先&#xff0c;在界面上创建2个Image&#xff0c;一个命名Img_Mask,大小设置 400* 400&#xff0c; 一个命名Img_Show,大小设置500*500。 然后&#xff0c;给 Img_Mask添加Mask,选择Img_Mask,点击Add Com…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...