初级
财务舞弊识别:Q4扭亏基础识别
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q052
财务舞弊识别:Q4扭亏识别(基础)
"""
metadata = {
"id": "q052",
"title": "财务舞弊识别:Q4扭亏基础识别",
"module": "财务舞弊识别",
"difficulty": "beginner",
"data_files": ["case35_quarterly.csv"],
"skills": ["季度分析", "扭亏识别", "红旗信号"],
"estimated_minutes": 8
}
"""
【题目】
读取case35_quarterly.csv,对圣莱达2015年季度数据进行分析:
1. 计算各季度净利润占全年净利润总和的比例(保留4位小数)
2. Q1-Q3累计净利润
3. Q4净利润
4. 判断是否Q4扭亏:Q1-Q3累计亏损 且 Q4净利润 > |Q1-Q3累计|的2倍
输出字符串:
Q1净利润: {x}万元
Q2净利润: {x}万元
Q3净利润: {x}万元
Q4净利润: {x}万元
Q1-Q3累计: {x}万元
Q4占全年比: {x}%
判断: {Q4扭亏(异常)/ 正常}
"""
def solve():
import pandas as pd
from pyodide.http import open_url
from io import StringIO
BASE_URL = "https://data.zuihe.com/finance/"
df = pd.read_csv(StringIO(open_url(BASE_URL + "case35_quarterly.csv").read()))
q = {row['quarter']: row for _, row in df.iterrows()}
q1 = q['Q1']['net_profit']
q2 = q['Q2']['net_profit']
q3 = q['Q3']['net_profit']
q4 = q['Q4']['net_profit']
total = q1 + q2 + q3 + q4
q1q3 = q1 + q2 + q3
q4_ratio = round(q4 / total * 100, 2)
is_turnaround = q1q3 < 0 and q4 > abs(q1q3) * 2
judgment = 'Q4扭亏(异常)' if is_turnaround else '正常'
lines = [
f"Q1净利润: {q1}万元",
f"Q2净利润: {q2}万元",
f"Q3净利润: {q3}万元",
f"Q4净利润: {q4}万元",
f"Q1-Q3累计: {round(q1q3, 2)}万元",
f"Q4占全年比: {q4_ratio}%",
f"判断: {judgment}",
]
return '
'.join(lines)
if __name__ == "__main__":
print(solve())
示例
输入
solve()
期望输出
Q1净利润: -299.65万元 | Q2净利润: -498.22万元 | Q3净利润: -614.02万元 | Q4净利润: 1843.32万元 | Q1-Q3累计: -1411.89万元 | Q4占全年比: 427.26% | 判断: 正常
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199