#1.实验任务1:银行账户类的定义和测试
'''
银行账户
数据:持卡人姓名、账号、当前余额
操作:提款、取款、打印账户信息
'''
class Account:
'''一个模拟银行账户的简单类'''
def __init__(self,name,account_number,initial_account): #构造新账户
self._name=name
self._card_no = account_number
self._balance = initial_account
def deposit(self,amount): #存款
self._balance +=amount
def withdraw(self,amount): #取款
self._balance -=amount
def info(self): #打印账户信息
print(f'{self._name},{self._card_no},{self._balance}')
def get_balance(self): #返回账户余额
return self._balance
#测试类
a1 = Account('Bob','5002311','20000')
a2 = Account('Joe','5006692','20000')
a1.deposit(5000)
a2.withdraw(4000)
a2.withdraw(10000)
a2.withdraw(5000)
a1.info()
a2.info()
#2.实验任务2:自定义模块,导入模块
'''
银行账户
数据:持卡人姓名、账号、当前余额
操作:提款、取款、打印账户信息
'''
class Account:
'''一个模拟银行账户的简单类'''
def __init__(self, name, account_number, initial_account): # 构造新账户
self._name = name
self._card_no = account_number
self._balance = initial_account
def deposit(self, amount): # 存款
self._balance += amount
def withdraw(self, amount): # 取款
self._balance -= amount
def info(self): # 打印账户信息
print(f'{self._name},{self._card_no},{self._balance}')
def get_balance(self): # 返回账户余额
return self._balance
#测试类
def main():
a1 = Account('Bob', '5002311', '20000')
a2 = Account('Joe', '5006692', '20000')
a1.deposit(5000)
a2.withdraw(4000)
a2.withdraw(10000)
a2.withdraw(5000)
a1.info()
a2.info()
if __name__ == '__main__': #如果模块名是'__main__'就执行
print('模块信息:',__doc__)
print('Account类信息:',Account.__doc__)
main()
#task2_1.py
import account #导入模块
u1 =account.Account('Tom','5004516','10000') #通过“模块.类名”使用模块account.py中的类Account
u2 = account.Account('Jerry','5003217','10000')
u1.deposit(5000)
u2.info()
#task2_2.py
from account import Account #从模块account中导入类Account
u1 = Account('Tom','5004516','10000')
u2 = Account('Jerry','5003217','10000')
u1.deposit(5000)
u1.info()
u2.withdraw(5000)
u2.info()
#3.实验任务3:类的继承
'''
这是一个图形类模块
包括:
基类:Shape
子类:Rect,Circle
'''
class Shape:
'''形状基类'''
def init(self):
print('形状基类')
class Rect(Shape):
'''
矩形类,继承自Shape
数据(属性):矩形左上角点的坐标、宽、高
操作(方法):打印矩形信息,计算面积、周长
'''
def __init__(self,x,y,width,length):#构造矩形对象
self._x=x
self._y=y
self._width=width
self._length=length
def init(self):
print(f'矩形左上角点的坐标:({self._x},{self._y})')
print(f'矩形宽:{self._width}')
print(f'矩形长:{self._length}')
def area(self):
return self._width * self._length
def perimeter(self):
return (self._width + self._length)*2
class Circle(Shape):
'''
圆形类,继承自Shape
数据(属性):圆心坐标、半径
操作(方法):打印圆信息,计算面积、周长
'''
def __init__(self,x,y,radius):
self._x=x
self._y=y
self._r=radius
def info(self):
print(f'圆心:({self._x},{self._y})')
print(f'半径:{self._r}')
def area(self):
return 3.14*self._r*self._r
def perimeter(self):
return 2*3.14*self._r
#测试类
def main():
r1 = Rect(1,1,5,9)
r1.info()
print(f'矩形面积:',r1.area())
print(f'矩形周长:',r1.perimeter())
c1 = Circle(2,3,10)
c1.info()
print(f'圆面积:{c1.area():.2f}')
print(f'圆周长:{c1.perimeter():.2f}')
if __name__ == '__main__':
main()
#task3.py
from shape import Rect as rect,Circle as circle # 从模块shape中导入Rect类和
# Circle类,并分别取了别名
r1 = rect(3, 3, 5, 2)
r1.info()
print(f'矩形面积: ' , r1.area() )
print(f'矩形周长: ' , r1.perimeter() )
c1 = circle(5, 5, 1)
c1.info()
print(f'园面积: {c1.area():.2f}')
print(f'园周长: {c1.perimeter():.2f}')