← 返回题库
初级

财务舞弊识别: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% | 判断: 正常
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码