实验任务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