实验7

发布时间 2023-06-08 21:26:51作者: 刘家秀

task1

源代码:

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

运行截图:

 回答问题:

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

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

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

  方法:类中定义的函数

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

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

 

 

 

 

task2

源代码:

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文件,是对代码更高级的封装,能够实现一类型的功能,方便导入使用,可以避免函数名和变量名冲突。

 

 

 

task3

源代码:

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

运行截图: