首页 > 编程语言 >实验7 面向对象编程与内置模块

实验7 面向对象编程与内置模块

时间:2023-06-13 12:11:51浏览次数:35  
标签:10 plt 面向对象编程 self amount 内置 rw 模块 import

实验任务1

复制代码
#task1
源码
 1 '''
 2 银行账号
 3 数据:持卡人姓名、账号、当前余额
 4 操作:取款、存款、打印账户信息、返回账户余额
 5 '''
 6 
 7 class Account:    #一个模拟银行账户的简单类
 8 
 9     def __init__(self, name, account_number,initial_amount = 10):   #构造新用户
10         self._name = name
11         self._card_no = account_number
12         self._balance = initial_amount
13 
14     def deposit(self, amount):       #存款
15         self._balance += amount
16 
17     def withdraw(self, amount):      #取款
18         if self._balance <= amount:
19             print('余额不足')
20             return
21 
22         self._balance -= amount
23 
24     def info(self):      #打印账户信息
25         print('持卡人姓名:', self._name)
26         print('持卡人账号:', self._card_no)
27         print('持卡人账户余额:', self._balance)
28 
29     def get_balance(self):  #返回账户余额
30         return self._balance
31 
32 def main():    #创建Account类对象,测试类
33     print('测试账户1:'.center(30, '*'))
34     a1 = Account('Bob', '5006692', 20000)
35     a1.deposit(5000)
36     a1.withdraw(4000)
37     a1.info()
38 
39     print()
40 
41     print('测试账户2:'.center(30, '*'))
42     a2 = Account('Joe', '5006692', 20000)
43     a2.withdraw(10000)
44     a2.info()
45 
46 if __name__ == '__main__':
47     main()
运行测试截图

  

  实验结论

    1、对象的本质是一种数据的组织方式、是具体的事物;而类则是对对象的抽象,可以看成是一类对象的模板,其中定义了一类对象所应该具有的共同属性与共同方法。

      属性用于定义一个类或其中的对象的静态特征;方法则是用于定义一个类或一类实例的行为特征和功能实现。

      实例化指的是将“设计方案”转化为对象的一个过程。

   2、类的封装性,体现在它把众多程序细节隐藏起来,仅向用户提供一小部分接口用于运行。

复制代码

 

 

实验任务2

复制代码
#task2
源码
1 from shape import Rect, Circle
2 
3 shape_lst = [Rect(5, 5, 10, 5), Circle(), Circle(1, 1, 10)]
4 
5 for i in shape_lst:
6     i.info()
7     print(f'面积:{i.area(): .2f}')
8     print(f'周长:{i.perimeter() :.2f}')
9     print()
运行测试截图

  

  实验结论

   1、继承,即一个类继承另一个类的所有属性和方法,同时还可以自己拥有另一个类不具备的方法和属性。
      多态建立在继承的基础——因为一个父类对象可以产生多个不同的子类对象,而且根据这些子类对象的不同可以各自具备不同的方法,不同的形态(即多态)得以产生。

   2、模块其实就是python程序,其中可包含若干个函数。由函数构成模块,再由模块拼成一整个代码。

复制代码

 

 

实验任务3

复制代码
#task3
源码
 1 import math
 2 def func(x):
 3     f = ((math.e)**((-0.5)*(((x - m)/s)**2)))/(s*math.sqrt(2*(math.pi)))
 4     return f'{f:.8f}'
 5 
 6 m = 0
 7 s = 2
 8 x_lst = [1, 3, 5, 7, 9]
 9 for x in x_lst:
10     print(f'x = {x}, f = {func(x)}')
运行测试截图

  

复制代码

 

 

实验任务4

复制代码
#task4
源码
 1 '''
 2 模拟多次随机漫步
 3 '''
 4 
 5 from matplotlib import pyplot as plt
 6 from random_walk import RandomWalk
 7 from time import sleep
 8 
 9 #代码范例中,模拟两次随机漫步过程
10 n = 0
11 while n < 2:
12     n += 1
13 
14     #创建一个RandomWalk对象,调用其方法生成随机游走坐标
15     rw = RandomWalk(50000)
16     rw.fill_walk()
17 
18     #用散点图进行可视化绘制
19     plt.figure(figsize= (10,6), dpi = 128)
20     point_numbers = list(range(rw.num_points))
21     plt.scatter(rw.x_values, rw.y_values, c = point_numbers, cmap = plt.cm.Blues, edgecolor = 'None', s = 1)
22 
23     #终点和起点
24     plt.scatter(0, 0, c = 'grey', edgecolors = 'none', s = 100)
25 
26     #隐藏坐标轴
27     plt.axis('off')
28 
29     plt.show()
运行测试截图
复制代码

 

标签:10,plt,面向对象编程,self,amount,内置,rw,模块,import
From: https://www.cnblogs.com/zsz2022/p/17477180.html

相关文章

  • 模块(time、datetime、random、sys)
    time模块表示时间的三种方式:1.时间戳 >>>> timestamp2.格式化的时间字符串:2023-06-09 20:53:43 >>>> format_string3.结构化时间:它一般不是让人看的,给计算机看的 >>>>  struct_time导入模块:1importtime 1.time.time()时间戳,计算1970......
  • 实验7 面向对象编程与内置模块
    task1程序源码:1'''2银行账户3数据:持卡人姓名、账号、当前余额4操作:取款、存款、打印账户信息、返回账户余额5'''6classAccount:7'''一个模拟银行账户的简单类'''89def__init__(self,name,account_number,initial_amount=1......
  • 实验7 面向对象编程与内置模块
    task1实验源码:1#12classAccount:3def__init__(self,name,account_number,initial_amount=10):4self._name=name5self._card_no=account_number6self._balance=initial_amount78defdeposit(self,amount):9......
  • 实验7 面向对象编程与内置模块
    实验任务1task1.py程序源码:1'''2银行账户3数据:持卡人姓名、账号、当前余额4操作:取款、存款、打印账户信息、返回账户余额5'''67classAccount:8'''一个模拟银行账户的简单类'''9def__init__(self,name,account_number,initial_a......
  • Python基础之os模块
    OS模块os.makedirs('dirname1/dirname2')可生成多层递归目录os.removedirs('dirname1')若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkdir('dirname')生成单级目录;相当于shell中mkdirdirnameos.rmdir('dirname')删除单级空目录,若目录不为......
  • python基础day23 os模块和序列化模块
    os模块(重要,多)os模块是与操作系统交互的一个接口('a/aa/aaa/aaaa/aaaaa')#递归创建文件夹os.removedirs('a/aa/aaa')#上推删除空文件夹os.mkdir('aaa')#当前文件所在位置创建一个新的文件夹或文件os.mkdir('a.txt')os.rmdir('aaa')#删除当前文件所在位置平级......
  • Apikit SaaS 10.9.0 版本更新:空间主页上线,应用模块合并!
    Hi,大家好!EolinkApikitSaaS更新10.9.0版本,本次版本更新主要是对多个应用级资源合并,并基于此简化付费套餐和降低费率。本次应用合并是为了接下来更好的发挥EolinkApikit的优势,提供API全生命周期解决方案,为下半年的重大功能更新做前期准备。本次更新的详细内容如下。1、重大......
  • os模块、序列化模块、pickle和json的区别
    os模块#os模块是与操作系统交互的一个接口1.文件相关的os.makedirs('dirname1/dirname2')#可生成多层递归目录os.removedirs('dirname1')#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkdir('dirname')#生成单级目录;相当于shell中mkd......
  • SpringBoot多模块项目搭建以及搭建基础模板
    多模块项目搭建目录多模块项目搭建1.父项目pom文件编辑2.创建子模块1.父项目pom文件编辑<!--1.父工程添加pom格式--><packaging>pom</packaging><!--定义子模块--><modules><module>walker-service</module><module>walker-utils&......
  • python 序列化模块
    一、jsonJson模块提供了四个功能:dumps、dump、loads、load1、前景什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。序列化的目的以某种存储形式使自定义对象持久化;将对象从一个地方传递到另一个地方。使程序更具维护性2、loads和dumps......