中级
实现转账(双账户原子事务)
未完成
中级参考
代码结构已给出,请填写 ____ 处
def solve():
from pyodide.http import open_url
customers_csv = open_url(____).read()
accounts_csv = open_url(____).read()
cards_csv = open_url(____).read()
transactions_csv = open_url(____).read()
transfers_csv = open_url(____).read()
import sqlite3
import pandas as pd
from io import StringIO
conn = sqlite3.connect(____)
pd.read_csv(StringIO(____)).to_sql(____)
def transfer(____):
try:
cur = conn.cursor()
from_bal = cur.execute("____", (____)).fetchone()[____]
if from_bal < amount:
raise ValueError(____)
cur.execute("____", (____))
cur.execute("____", (____))
conn.commit()
return True
except Exception as e:
conn.rollback()
print(____)
return False
from_id, to_id, amount = ____, ____, ____
b1_before = conn.execute("____", (____)).fetchone()[____]
b2_before = conn.execute("____", (____)).fetchone()[____]
print(____)
print(____)
ok = transfer(____)
if ok:
b1_after = conn.execute("____", (____)).fetchone()[____]
b2_after = conn.execute("____", (____)).fetchone()[____]
print(____)
print(____)
print(____)
conn.close()
示例
输入
solve()
期望输出
转账前 - 账户3: 102500.00, 账户1: 18730.50 总计: 121230.50 转账后 - 账户3: 92500.00, 账户1: 28730.50 总计: 121230.50 金额守恒: True
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199