请编写一个银行账户管理的phython代码,并编写交易记录排序函数rank_transaction。首先从交易记录中分别提取存款记录和取款记录。分别对存款记录和取款记录进行降序排序。
时间: 2024-11-29 17:33:33 浏览: 4
Phython基础之字符串变量(详解)
在Python中,我们可以创建一个简单的银行账户管理类,包括交易记录的功能。为了实现交易记录的排序,我们将定义一个`Transaction`类来代表每个交易,其中包含交易类型(存款或取款)、金额和日期。然后,我们可以定义一个`BankAccount`类,维护账户余额以及一个交易历史列表。下面是一个示例代码:
```python
class Transaction:
def __init__(self, transaction_type, amount, date):
self.transaction_type = transaction_type
self.amount = amount
self.date = date
def __lt__(self, other): # 自然排序的关键方法
if self.transaction_type == other.transaction_type: # 如果类型相同,按金额降序
return self.amount > other.amount
else: # 否则,先按照类型升序(取款优先)
return self.transaction_type < other.transaction_type
class BankAccount:
def __init__(self):
self.balance = 0
self.transactions = []
def deposit(self, amount, date):
transaction = Transaction('deposit', amount, date)
self.transactions.append(transaction)
self.balance += amount
def withdraw(self, amount, date):
transaction = Transaction('withdraw', -amount, date)
self.transactions.append(transaction)
self.balance -= amount
def sort_transactions(self):
self.transactions.sort(reverse=True)
# 示例使用
account = BankAccount()
account.deposit(1000, "2022-01-01")
account.withdraw(500, "2022-01-02")
account.sort_transactions()
# 打印排序后的交易记录
for t in account.transactions:
print(f"Date: {t.date}, Type: {t.transaction_type}, Amount: {t.amount}")
```
在这个例子中,`sort_transactions()`函数会根据交易类型(取款优先)和金额(降序)对交易记录进行排序。
阅读全文