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

实验任务1:

实验源码:

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

运行截图:

 

1.类:定义一个抽象类型的表现形式,其中包含了适用于该类型的一系列操作和运算,但它实际上可以不含任何实际的数据

 对象:类中一个特定的个体,是类的实例

 属性:类中的变量,提供关于类或对象的额外信息的元素

 方法:类中定义的函数

 实例化:用类创建对象的过程

2.类的封装性:将数据和操作打包成一个不可分割的整体;对外只提供专门的接口供使用者访问部分数据和操作。

 

实验任务2:

实验源码:

1 from shape import Rect, Circle
2 shape_lst = [Rect(5, 5, 10, 5), Circle(), Circle(1, 1, 10)]
3 
4 for i in shape_lst:
5     i.info()
6     print(f'面积: {i.area(): .2f}')
7     print(f'周长: {i.perimeter(): .2f}')
8     print()

运行截图:

 

类的继承:对于不同的对象可以直接调用类中的方法,不需要重复编码;也可以在原有的类的基础上,扩展,修改或替换,节省了开发时间

多态:对于不同的实例对象。可以进行不同的计算行为即同名的方法有不同的功能,增强了代码的灵活性。

模块:模块是一个单独的python文件,是对代码更高级的封装,能够实现一类型的功能,方便导入使用,可以避免函数名和变量名冲突。

 

实验任务3:

实验源码:

 1 import math
 2 
 3 
 4 def func(x, m, s):
 5     a = (-1/2)*((x-m)/s)**2
 6     y = math.exp(a)/(pow(2*math.pi, 0.5)*s)
 7     print(f'x = {x},f = {y:.8f}')
 8 
 9 
10 x = [1, 3, 5, 7, 9]
11 for i in x:
12     func(i, 0, 2)

运行截图:

 

posted @ 2023-06-11 23:22  jOooan  阅读(20)  评论(0)    收藏  举报