【Python百日刷题计划】Day11~类和模块的基本练习

简介: 【Python百日刷题计划】Day11~类和模块的基本练习

  📚前言

 

✅本次主要是<类和模块的基本练习>难度不大,快来看看吧。

文章目录

📚前言

👥题目一:求圆环的面积和周长

👤题目要求

👤 我的分析

👤我的答案

👥题目二:类的高级用法

👤题目要求

👤我的分析

👤我的答案

👥题目三:画椭圆和矩形

👤题目要求

👤我的分析

👤我的答案

📚结语


👥题目一:求圆环的面积和周长

👤题目要求

创建一个圆类有半径(r)的属性包含计算圆面积(S)方法和计算圆周长(C)方法,和一个圆环类也拥有外径(R)和内径(r)两种属性和计算圆环面积(S)方法和计算圆环周长(C)方法,要求使用组合的方法实现求任意圆环的面积和周长

👤 我的分析

该题目主要考察类的知识点,并且要熟悉类中的组合方法(组合 : 一个对象的属性值是另外一个类的对象)

👉点此了解类的基本方法

👤我的答案

from math import pi
#定义一个圆类
class Circle:
    def __init__(self,r):
        self.r = r
    def S(self):
        return pi*(self.r**2)
    def C(self):
        return 2*pi*self.r
#创建一个圆环类
class Ring:
    def __init__(self,outside_R,inside_r):
        self.outside_R = Circle(outside_R)
        self.inside_r = Circle(inside_r)
    def S(self):
        return self.outside_R.S() - self.inside_r.S()
    def C(self):
        return self.outside_R.C() + self.inside_r.C()
#实例化一个圆环对象
ring = Ring(2,1)
print(ring.S())
print(ring.C())
image.gif

👥题目二:类的高级用法

👤题目要求

创建三个类:老师类,生日类,课程类

老师类:有(name,age,birthday,sex)四个属性

生日类:有(year,month,day)三个属性

课程类:有(teacher, course_name, period, price)

其中老师类的birthday属性是生日类的对象

课程类的teacher属性是老师类的对象

按照要求书写程序

示例输出:

#示例化一个对象
b = Birthday(2023,8,1)
lisa = Teacher('lisa',0,b,'女')
print(lisa.name)
print(lisa.birthday.year)
print(lisa.birthday.day)
print(lisa.course.name)
输出结果:
lisa
2023
1
Python
image.gif

👤我的分析

题目难度适中,只要按照题目一步步创建三个老师类,生日类,课程类就可以了

其中题目额外要求的(老师类的birthday属性是生日类的对象,课程类的teacher属性是老师类的对象)这其实也是使用到了类的组合方法,按照题目一复习就可以了。另外示例输出也是非常重要的,结合示例输出,编写程序是非常有必要的。

👤我的答案

#创建老师类
class Teacher:
    def __init__(self,name,age,birthday,sex):
        self.name = name
        self.age = age
        self.birthday = birthday
        self.sex = sex
        self.course = Course(self,'Python','6 month',20000)
#创建生日类
class Birthday:
    def __init__(self,year,month,day):
        self.year = year
        self.month = month
        self.day = day
#创建课程类
class Course:
    language = 'Chinese'
    def __init__(self, teacher, course_name, period, price):
        self.teacher = teacher
        self.name = course_name
        self.period = period
        self.price = price
#示例输出
b = Birthday(2023,8,1)
lisa = Teacher('lisa',0,b,'女')
print(lisa.name)
print(lisa.birthday.year)
print(lisa.birthday.day)
print(lisa.course.name)
#输出结果
lisa
2023
1
Python
image.gif

👥题目三:画椭圆和矩形

👤题目要求

利用ellipse 和 rectangle 画椭圆和矩形

👤我的分析

题目主要考察了ellipse 和 rectangle的基本使用方法,画图的代码是比较开放的,其实如果题目不指定模块的话,使用cv2模块画椭圆更简单

👤我的答案

from tkinter import *
canvas = Canvas(width = 400,height = 600,bg = 'white')
left = 20
right = 50
top = 50
num = 15
for i in range(num):
    canvas.create_oval(250 - right,250 - left,250 + right,250 + left)
    canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top)
    canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2))
    right += 5
    left += 5
    top += 10
canvas.pack()
mainloop()
image.gif

输出结果:

image.gif

使用cv2模块画椭圆:

import cv2
import numpy as np
img = np.zeros((512, 512, 3), np.uint8)  # 设置背景
cv2.ellipse(img, (260, 240), (170, 130), 0, 0, 360, (255, 255, 255), 3)  # 画椭圆
cv2.imshow("test", img)  # 显示
cv2.waitKey(0)  # 按下任意键退出
cv2.destroyAllWindows()
image.gif

输出结果:

image.gif


相关文章
|
8天前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
38 4
|
1月前
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
99 0
|
2月前
|
数据安全/隐私保护 Python
抖音私信脚本app,协议私信群发工具,抖音python私信模块
这个实现包含三个主要模块:抖音私信核心功能类、辅助工具类和主程序入口。核心功能包括登录
|
5月前
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
232 14
|
5月前
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
122 11
|
8月前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
349 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
6月前
|
存储 C语言 Python
[oeasy]python077_int类型怎么用_整数运算_integer_进制转化_int类
本文主要讲解了Python中`int`类型的应用与特性。首先回顾了`int`词根的溯源,探讨了整型变量的概念及命名规则(如匈牙利命名法)。接着分析了整型变量在内存中的存储位置和地址,并通过`type()`和`id()`函数验证其类型和地址。还介绍了整型变量的运算功能,以及如何通过`int()`函数将字符串转化为整数,支持不同进制间的转换(如二进制转十进制)。此外,文章提及了关键字`del`的使用场景,对比了Python与C语言中`int`的区别,并总结了整型与字符串类型的差异,为后续深入学习奠定基础。
111 1
|
6月前
|
人工智能 自然语言处理 Shell
[oeasy]python070_如何导入模块_导入模块的作用_hello_dunder_双下划线
本文介绍了如何在Python中导入模块及其作用,重点讲解了`__hello__`模块的导入与使用。通过`import`命令可以将外部模块引入当前环境,增强代码功能。例如,导入`__hello__`模块后可输出“Hello world!”。此外,还演示了如何使用`help()`和`dir()`函数查询模块信息,并展示了导入多个模块的方法。最后,通过一个实例,介绍了如何利用`jieba`、`WordCloud`和`matplotlib`模块生成词云图。总结来说,模块是封装好的功能部件,能够简化编程任务并提高效率。未来将探讨如何创建自定义模块。
83 8
|
6月前
|
缓存 Shell 开发工具
[oeasy]python071_我可以自己做一个模块吗_自定义模块_引入模块_import_diy
本文介绍了 Python 中模块的导入与自定义模块的创建。首先,我们回忆了模块的概念,即封装好功能的部件,并通过导入 `__hello__` 模块实现了输出 &quot;hello world!&quot; 的功能。接着,尝试创建并编辑自己的模块 `my_file.py`,引入 `time` 模块以获取当前时间,并在其中添加自定义输出。
101 5
|
7月前
|
Python API 监控
将Python CLI工具发布为pip模块的完整指南
注册PyPI账户 访问PyPI官网注册账户 推荐使用双因素认证增强安全性 生成API令牌 访问PyPI账户管理 生成具有"Upload packages"权限的令牌,妥善保存 确保模块名唯一性 在PyPI搜索页面验证模块名未被使用 建议使用小写字母和连字符的组合(如my-cli-tool)
144 9

推荐镜像

更多