实验五

task1
class Account:
  '''一个模拟银行账户的简单类'''
  def __init__(self, name, account_number, initial_amount):  # 构造新账
户
    self._name = name
    self._card_no = account_number
    self._balance = initial_amount
  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)
a1.withdraw(4000)
a2.withdraw(10000)
a2.withdraw(5000)
a1.info()
a2.info()

task2
class Account:
  '''一个模拟银行账户的简单类'''
  def __init__(self, name, account_number, initial_amount):  # 构造新账户
    self._name = name
    self._card_no = account_number
    self._balance = initial_amount
  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)
  a1.withdraw(4000)
  a2.withdraw(10000)
  a2.withdraw(5000)
  a1.info()
  a2.info()
if __name__=='__main__':
print('模块信息',__doc__)
print('Account类信息:',Account.__doc__)
main()

task2.1
import account  # 导入模块
u1 = account.Account('Tom', '5004516', 10000)  # 通过'模块名.类名'使用模块
account.py中的类Account
u2 = account.Account('Jerry', '5003217', 10000)
u1.deposit(5000)
u1.info()
u2.withdraw(5000)
u2.info()

task2.2
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()

class Shape:
  '''形状基类'''
  def info(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 info(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}')

 

task5

class StudentDoc:
def __init__(self,number,name,major,pythonscore):
self.number = number
self.name = name
self.major = major
self.pythonscore = pythonscore


def info(self):
print(f'number:{self.number}')
print(f'name:{self.name}')
print(f'major:{self.major}')


def info_pythonscore(self):
print(f'pythonscore:{self.pythonscore}')


def change_pythonscore(self,new_pythonscore):
self.pythonscore = new_pythonscore
print(f'pythonscore:{self.pythonscore}')



import student
s1 = student.StudentDoc('202013420001','Tom','Python','90')
s2 = student.StudentDoc('202013420040','Jerry','Math','85')
s1.info()
s1.info_pythonscore()
print()
s2.info()
s2.info_pythonscore()
print()
s2.info()
s2.change_pythonscore('100')

   
 

 

posted @ 2021-05-30 19:18  玮光溢彩  阅读(81)  评论(1)    收藏  举报