足球犯规判罚分析案例
这是一个用Python模拟"该不该吃牌"判罚逻辑的案例,结合足球规则(IFAB规则)进行简单推理。

案例场景
假设一场比赛中发生了以下犯规,我们需要判断是否应该出示黄牌或红牌。
完整代码
from dataclasses import dataclass
from enum import Enum
class CardType(Enum):
NONE = "无牌"
YELLOW = "黄牌"
RED = "红牌"
@dataclass
class Foul:
"""一次犯规的描述"""
description: str
is_reckless: bool = False # 是否鲁莽(黄牌)
excessive_force: bool = False # 是否使用过分力量(红牌)
denies_obvious_goal: bool = False # 是否破坏明显进球机会(DOGSO)
is_in_box: bool = False # 是否在禁区内
is_deliberate_handball: bool = False # 是否故意手球
is_serious_foul_play: bool = False # 是否严重犯规
is_violent_conduct: bool = False # 是否暴力行为
is_spitting: bool = False # 是否吐口水
is_second_yellow: bool = False # 是否第二次黄牌
def judge_card(foul: Foul) -> tuple[CardType, str]:
"""根据犯规特征判定出牌类型"""
# 1. 红牌情形(最严重,优先判断)
if foul.is_violent_conduct or foul.is_spitting:
return CardType.RED, "暴力行为/吐口水 → 直接红牌"
if foul.is_serious_foul_play or foul.excessive_force:
return CardType.RED, "严重犯规/使用过分力量 → 直接红牌"
# DOGSO:破坏明显进球机会
if foul.denies_obvious_goal:
if foul.is_deliberate_handball:
return CardType.RED, "故意手球破坏进球 → 红牌"
elif foul.is_in_box:
# 禁区内非手球DOGSO:改判点球,通常黄牌
return CardType.YELLOW, "禁区内DOGSO → 判点球+黄牌"
else:
return CardType.RED, "禁区外DOGSO → 红牌"
# 2. 黄牌情形
if foul.is_reckless:
return CardType.YELLOW, "鲁莽犯规 → 黄牌"
if foul.is_deliberate_handball:
return CardType.YELLOW, "故意手球(非DOGSO)→ 黄牌"
if foul.is_second_yellow:
return CardType.YELLOW, "第二次黄牌 → 累积红牌下场"
# 3. 普通犯规
return CardType.NONE, "普通犯规 → 口头警告/任意球"
# ============ 案例测试 ============
cases = [
Foul("中场战术犯规拉人", is_reckless=True),
Foul("禁区内铲球破坏单刀", denies_obvious_goal=True, is_in_box=True),
Foul("禁区外故意手球挡出必进球", denies_obvious_goal=True,
is_deliberate_handball=True),
Foul("背后飞铲致对方受伤", is_serious_foul_play=True),
Foul("争抢中推搡对手", ),
Foul("禁区内故意手球挡出射门", denies_obvious_goal=True,
is_deliberate_handball=True, is_in_box=True),
]
for i, foul in enumerate(cases, 1):
card, reason = judge_card(foul)
print(f"案例{i}: {foul.description}")
print(f" 判罚 → {card.value} 依据: {reason}\n")
输出结果
案例1: 中场战术犯规拉人
判罚 → 黄牌 依据: 鲁莽犯规 → 黄牌
案例2: 禁区内铲球破坏单刀
判罚 → 黄牌 依据: 禁区内DOGSO → 判点球+黄牌
案例3: 禁区外故意手球挡出必进球
判罚 → 红牌 依据: 故意手球破坏进球 → 红牌
案例4: 背后飞铲致对方受伤
判罚 → 红牌 依据: 严重犯规/使用过分力量 → 直接红牌
案例5: 争抢中推搡对手
判罚 → 无牌 依据: 普通犯规 → 口头警告/任意球
案例6: 禁区内故意手球挡出射门
判罚 → 红牌 依据: 故意手球破坏进球 → 红牌
核心判罚逻辑总结
| 情形 | 判罚 |
|---|---|
| 鲁莽犯规 | 黄牌 |
| 使用过分力量 / 严重犯规 | 红牌 |
| 暴力行为 / 吐口水 | 红牌 |
| 破坏明显进球机会(禁区外) | 红牌 |
| 破坏明显进球机会(禁区内非手球) | 黄牌 + 点球 |
| 故意手球破坏进球 | 红牌 |
| 普通犯规 | 无牌 |
说明
这是一个教学用简化模型,真实判罚需考虑:
- 犯规位置、比赛节奏、球员意图
- 裁判主观判断(鲁莽 vs 过分力量界限模糊)
- VAR介入、持球权、有利原则等
如果你有具体的犯规场景想分析(比如某场真实比赛的那次犯规),可以把当时的情况描述给我,我可以基于IFAB规则详细分析该不该出牌 👨⚖️⚽。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播