python语法练习--题目 1:封装特性
题目 1封装特性定义一个 BankAccount 类有一个私有属性 __balance初始余额为 0提供一个 deposit 方法用于存钱一个 withdraw 方法用于取钱取钱时如果余额不足则打印提示信息。 Author:zhuyahao Time:2026/4/17 Desc:### 题目 1封装特性 定义一个 BankAccount 类 有一个私有属性 __balance初始余额为 0提供一个 deposit 方法用于存钱 一个 withdraw 方法用于取钱取钱时如果余额不足则打印提示信息。 class BankAccount: title中国农业银行 def __init__(self,name,account): self.name name self.account account self.__balance0 property def balance(self): return self.__balance balance.setter def balance(self,balance): self.__balance balance def __check(self,name,account): if self.namename and self.account account: return True else: return False def deposit(self, name,account, money): if self.__check(name, account): if money0: self.balance money print(f{name}恭喜你存款成功请到柜台领取奖品存款金额为{money}) else: print(存款必须大于0) else: raise Exception(请输入正确的账号密码) def withdraw(self,name,account,money): if self.__check(name,account): if 0moneyself.__balance: self.__balance-money print(f恭喜成功取款{money}元) else: print(f{self.name}请输入正确的取款金额) else: raise Exception(请输入正确的账号密码) def __str__(self): return f当前的用户姓名{self.name},账号{self.account}账号余额为{self.balance} def __repr__(self): return fBankAccount(姓名{self.name}, 账号{self.account}, 余额{self.__balance}) if __name____main__: a1 BankAccount(张三, 111111) a2 BankAccount(李四, 222222) print( * 50) print(初始账户信息) print(a1) print(a2) print(\n * 50) print(测试1正常存款) a1.deposit(张三, 111111, 1000) print(a1) print(\n * 50) print(测试2错误账号存款应抛出异常) try: a1.deposit(李四, 222222, 500) except Exception as e: print(f错误{e}) print(\n * 50) print(测试3正常取款) a1.withdraw(张三, 111111, 300) print(\n * 50) print(测试4余额不足取款) a1.withdraw(张三, 111111, 800) print(\n * 50) print(测试5取款金额为0或负数) a1.withdraw(张三, 111111, 0) a1.withdraw(张三, 111111, -100) print(\n * 50) print(测试6错误账号取款应抛出异常) try: a1.withdraw(王五, 333333, 100) except Exception as e: print(f错误{e}) print(\n * 50) print(测试7存款金额为负数) a1.deposit(张三, 111111, -500) print(\n * 50) print(最终账户信息) print(a1) print(a2) print(\n * 50) print(测试8repr输出) print(repr(a1)) print(repr(a2))