【Python习题集6】类与对象

news2024/9/24 1:27:05

类与对象

  • 一、实验内容
  • 二、实验总结

一、实验内容

1.设计一个Circle类来表示圆,这个类包含圆的半径以及求面积和周长的函数。在使用这个类创建半径为1~10的圆,并计算出相应的面积和周长。
半径为1的圆,面积: 3.14 周长: 6.28
半径为2的圆,面积: 12.57 周长: 12.57
半径为3的圆,面积: 28.27 周长: 18.85
半径为4的圆,面积: 50.27 周长: 25.13
半径为5的圆,面积: 78.54 周长: 31.42
半径为6的圆,面积: 113.10 周长: 37.70
半径为7的圆,面积: 153.94 周长: 43.98
半径为8的圆,面积: 201.06 周长: 50.27
半径为9的圆,面积: 254.47 周长: 56.55
半径为10的圆,面积: 314.16 周长:62.83
(1)源代码

import math
class Circle:
    def __init__(self, r):
        self.radius = r
    def getArea(self):
        return math.pi * self.radius ** 2
    def getPerimeter(self):
        return 2 * math.pi * self.radius
for i in range(1, 11):
    t1 = Circle(i)
print("半径为", t1.radius, "的圆,面积:", "%5.2f" % t1.getArea(), "周长:", "%5.2f" % t1.getPerimeter())

(2)运行结果截图
在这里插入图片描述

2.阅读下列程序,写出运行结果,并说明理由。
在这里插入图片描述

(1)源代码

if __name__=="__main__":
    def fun(x,L=[9]):
        x=3
        L.append(8)
        print("inside fun,x,L:",x,L)

x=5
L=[4,1]
fun(x)
print("x,L:",x,L)
fun(x,L)
print("x,L:",x,L)

(2)运行结果截图
在这里插入图片描述

3.设计一个Account类表示账户,自行设计该类中的属性和方法,并利用这个类创建一个账号为998866,余额为2000,年利率为4.5%的账户,然后从该账户中存入150,取出1500。打印出账号,余额,年利率,月利率,月息。
(1)源代码

class Account(object):
    def __init__(self, countid, money, year_Rate):
        self.__countid = countid
        self.__money = money
        self.__year_Rate = year_Rate

    def month_Rate(self):
        return self.getyear_Rate() / 1200.0

    def month_Interest(self):
        return self.getmoney() * self.month_Rate()

    def withdraw(self, x):
        self.__money = self.getmoney() - x

    def deposit(self, x):
        self.__money = self.getmoney() + x

    def getcountid(self):
        return self.__countid

    def getmoney(self):
        return self.__money

    def getyear_Rate(self):
        return self.__year_Rate

    def setyear_Rate(self, year_Rate):
        self.__year_Rate = year_Rate

year_Rate = 4.5
countid = "998866"
money = 2000
count1 = Account(countid, money, year_Rate)
count1.deposit(150)
count1.withdraw(1500)
print("账号:", count1.getcountid())
print("余额:", count1.getmoney())
print("年利率:", str(count1.getyear_Rate()) + "%")
print("月利率:", str(count1.month_Rate() * 100) + "%")
print("月息:", count1.month_Interest())

(2)运行结果截图
在这里插入图片描述

4.设计一个Timer类,该类包括:表示小时,分,秒的三个数据域,三个数据域各自的get方法,设置新时间和显示时间的方法。 用当前时间创建一个Timer类并显示出来。
(1)源代码

import datetime
class Timer:
    def __init__(self, hour, minute, second):
        self.hour = hour
        self.minute = minute
        self.second = second

    def gethour(self):
        return self.hour

    def getminute(self):
        return self.minute

    def getsecond(self):
        return self.second

    def settime(self, new_hour, new_minute, new_second):
        self.hour = new_hour
        self.minute = new_minute
        self.second = new_second

    def showtime(self):
        print(self.hour, ":", self.minute, ":", self.second)

d = datetime.datetime.now()
timer1 = Timer(d.hour, d.minute, d.second)
timer1.showtime()

(2)运行结果截图
在这里插入图片描述

二、实验总结

  1. self
    python的self相当于c++的指针
    self相当于每个房子的门派号,同一个类生成很多对象,对象很相似。当一个对象的方法被调用时,对象为第一个参数传递给方法。
  2. 创建函数可以少些代码,每次引用这个函数。如果硕创建了一个类,又想创建新的类,是否可以通过继承的方式。
    但是如何继承,可能还要学习,比如说现在已经有了一个类了,这个类的属性都有,定义了一个新的类似的类,新的类继承老的类,新的类中的东西也有需要修改的地方,怎么修改新的类需要值得注意。
  3. 当我们不想对象的属性或者内部变量被外部直接引用时,我们可以用使用双下划线的方式。
    __a:此时的__a不能直接被外界引用。
  4. 类在__init__的调用方式还是没有很好的掌握,还要学习,一定可以掌握。
  5. 对象的多态特性的理解。
    比如说list有count的方法,str也有count的方法,不同的对象使用不同的count输出不同的结果,实现不同的功能应该是多态吧。

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

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

相关文章

【虹科案例】虹科任意波形发生器板卡在声场模拟实验中的应用

声场模拟实验介绍 声场模拟实验是一种通过模拟不同环境下的声场特征来模拟真实世界中声音传输情况的实验方法。通过模拟不同环境下的声场特征,如空间分布、强度、频率等,来模拟真实世界中的声音传输情况,从而对声学相关问题进行研究。 在声…

Java集合框架知识总结

前言 Java集合框架主要由两个接口及其下面的实现类构成,这两个接口分别是Map接口和Collection接口,下面先通过其对应的UML类图看下这两个接口的具体实现,如下 1、Map接口 Map接口的主要实现有我们熟悉的HashMap、HashTable以及TreeMap、Con…

信息技术发展

OSI网络标准协议 物理层:联网的媒介 RS232 FDDI 数据链路层: 网络层接收到的数据分割成可被物理层传输的帧 IEEE802.3/.2 ATM 网络层:网络地址翻译成对应的物理地址,路由 IP ICMP IGMP IPX ARP 传输层:端到端的错误恢复和流量控制…

轻松提升投标技术分?smardaten高性价比原型服务受热捧

日前,某个交通领域的软件公司A遇到了难题,十多个在跟的项目需要在一个月内完成投标准备工作。 应用软件“强甲方需求”的大环境下,A公司又陷“投标高峰期”。 更具挑战性的是,其中,有5个项目要求应标企业提供真实系统的…

一文介绍Linux EAS

能量感知调度(Energy Aware Scheduling,简称EAS)是目前Android手机中Linux线程调度器的基础功能,它使调度器能预测其决策对CPU能耗的影响。依靠CPU的能量模型(Energy Model,简称EM),…

steam搬砖,适合个人操作的创业项目

这个项目主就是在Steam平台买进CSGO道具,再放到网易buff平台卖出。因为进价低出价高,所以每卖出一件道具,利润都相当可观。 关键这玩意背靠Steam这个超大平台,日活几千万,几乎覆盖了市面上的所有热门游戏,…

动态规划——逆序对

逆序对Time Limit: 1000 MSMemory Limit: 5000 KB Description 给定一个长度为N的int型数组a[0,1,2,...N-1], 请计算逆序对个数.当i<j且a[i]>a[j], 则称a[i]与a[j]是一对逆序对.Input 第一行输入M表示包含M组测试数据&#xff0c;每组先输入N (N<50000), 接着输入N…

ios app真机测试到上架App Store详细教程-必看

​转载&#xff1a;https://blog.csdn.net/p312011150/article/details/89374401 ios app真机测试到上架App Store详细教程-必看 Appuploader常见问题 转存失败 重新上传 取消 上架基本需求资料 1、苹果开发者账号&#xff08;如还没账号先申请-苹果开发者账号申请教程&…

​​​​魔兽服务端自定义创建传送门教程

魔兽服务端自定义创建传送门教程 大家好我是艾西,今天跟大家分享下魔兽自定义传送门怎么创建。玩过魔兽的朋友都知道,魔兽这游戏内容多地图也非常大,一个老魔兽玩家很熟悉跑副本的情况下从这个地图到下一个地图都得跑半个小时,更何况对于很多得新手小伙伴了,所有顾及到大…

CUDA编程之矩阵乘法

文章目录 一、矩阵乘法回顾二、CUDA内存架构CUDA中的共享内存CUDA中的共享内存使用方法静态申请内存动态申请内存 三、分解矩阵乘法 / 平铺矩阵乘法四、实战代码DS_M 和 DS_N的索引方式解释 一、矩阵乘法回顾 CPU版本&#xff1a; GPU版本&#xff1a; 核函数如下&#xff1…

JeecgBoot低代码平台—默认模糊查询以及高级查询规则

JeecgBoot低代码开发平台&#xff0c;自己封装了一套查询过滤器&#xff0c;默认就支持模糊查询&#xff0c;只是需要前后加上*&#xff0c;虽然麻烦&#xff0c;但是这样是考虑到系统后期数据量大默认模糊查询会导致系统性能问题。当然如果你的系统数据量级别达不到这个情况&a…

高校大数据实验室解决方案

高校实验室建设总目标是搭建一站式教学服务平台&#xff0c;一站式教学服务平台概念是在深刻理解高校学科建设及存在的若干问题上提出。围绕着学科建设的各个方面&#xff0c;从专业开设、课程设置、师资培养、教学资源、实验环境、学生实训实习及就业创业等环节&#xff0c;提…

Android热修复原理与实战

作者&#xff1a;独孤狼 什么是热修复 在我们应用上线后出现bug需要及时修复时&#xff0c;不用再发新的安装包&#xff0c;只需要发布补丁包&#xff0c;在客户无感知下修复掉bug 怎么进行热修复 服务端&#xff1a;补丁包管理 用户端&#xff1a;执行热修复 开发端&#xff1…

Introduction to modern Cryptography 现代密码学原理与协议第一章笔记

加密的语法由三个算法组成:密钥产生&#xff0c;加密&#xff0c;解密 (1) 密钥产生算法Gen是一个概率算法&#xff0c;能够根据方案定义的某种分布方案分布选择并输出一个密钥k (2) 加密算法Enc,输入为密钥k和明文m&#xff0c;输出为密文c。把使用密钥k加密明文m记为Enck(m) …

【Vue 基础】尚品汇项目-06-vuex模块式开发

vuex是官方提供一个插件&#xff0c;状态管理库&#xff0c;集中式管理项目中组件共用的数据。 目录 一、安装 二、vuex的基本使用 三、vuex模块式开发 一、安装 安装命令&#xff1a; npm install vuex3.6.2 --save 如果安装错版本&#xff0c;要先卸载再重新安装&#…

认识Filter(过滤器)

Filter介绍 在计算机编程中&#xff0c;Filter&#xff08;过滤器&#xff09;是一种用于对数据流进行处理的软件组件。Filter 的作用是从输入流中获取数据&#xff0c;对其进行处理后再将其写入输出流中。Filter 组件通常用于数据校验、数据转换、数据压缩等方面&#xff0c;…

微服务知识2

CAP和BASE是分布式必备理论基础 CAP理论 一致性(C)&#xff1a;写操作之后进行读操作无论在哪个节点都需要返回写操作的值 可用性(A)&#xff1a;非故障的节点在合理的时间内返回合理的响应 分区容错性(P)&#xff1a;当出现网络分区后&#xff0c;系统能够继续工作&#x…

家用平价洗地机哪款好?国产性价比高的品牌

在当今社会&#xff0c;人们使用清洁电器已经非常普及&#xff0c;成为了人们日常清洁中必不可少的得力助手了。洗地机在我看来&#xff0c;它在清洁力度上做的十分优秀&#xff0c;无论是干湿垃圾还是顽固污渍&#xff0c;皆可以清洗到位&#xff1b;同时&#xff0c;洗地机配…

《花雕学AI》AI 人工智能伙伴关系的指南:遵循原则,实现实践,展望未来

引言&#xff1a;人工智能&#xff08;AI&#xff09;是指由人造的机器或系统所展现出的智能&#xff0c;它可以模拟或扩展人类的认知功能&#xff0c;如学习、推理、感知、交流等。 人工智能的发展和应用已经深刻地影响了社会、经济、文化和政治等各个领域&#xff0c;同时也带…

( 数组和矩阵) 697. 数组的度 ——【Leetcode每日一题】

❓697. 数组的度 难度&#xff1a;简单 给定一个非空且只包含非负数的整数数组 nums&#xff0c;数组的 度 的定义是指数组里任一元素出现频数的最大值。 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组&#xff0c;返回其长度。 示例 1&#xff1a; 输…