本文目录导读:

- 方案一:Python + 字典(适用于手动录入或简单API返回的数据)
- 方案二:Python + 正则表达式(适用于从网页/文本中提取“X 射门”)
- 方案三:Bash/Shell 脚本(适用于Linux环境或开发者快捷操作)
- 方案四:Excel 公式(最简单,适合日常手动记录)
- 实用建议:如何自动获取实时数据?
这是一个非常实用的足球数据分析需求,要统计“哪队射门次数更多”,核心在于数据来源和脚本逻辑。
由于你没有指定具体的数据源(是API、网页爬虫还是本地CSV),我为你提供三种最实用的脚本方案,你可以根据手头的数据格式直接复制使用。
Python + 字典(适用于手动录入或简单API返回的数据)
适用场景:你从某个网站复制了数据,或者在代码中直接有数据结构。
# -*- coding: utf-8 -*-
"""
实用脚本:统计两队射门次数(基于Python字典)
"""
def compare_shots(home_team, away_team, home_shots, away_shots):
"""
比较两队射门次数
:param home_team: 主队名称 (str)
:param away_team: 客队名称 (str)
:param home_shots: 主队射门数 (int)
:param away_shots: 客队射门数 (int)
"""
print(f"📊 射门数据:{home_team} ({home_shots}) vs ({away_shots}) {away_team}")
if home_shots > away_shots:
print(f"🏆 {home_team} 射门次数更多,多 {home_shots - away_shots} 次。")
elif away_shots > home_shots:
print(f"🏆 {away_team} 射门次数更多,多 {away_shots - home_shots} 次。")
else:
print("🤝 双方射门次数持平。")
# --- 使用示例 ---
# 假设这是从某场比赛得到的数据
home = "曼城"
away = "阿森纳"
home_shots = 14
away_shots = 9
# 调用函数
compare_shots(home, away, home_shots, away_shots)
Python + 正则表达式(适用于从网页/文本中提取“X 射门”)
适用场景:你有一大段纯文本(比如解说词或网页源码),里面包含“主队射门10次,客队射门5次”等字样,需要自动提取。
import re
def compare_shots_from_text(text):
"""
从文本中正则匹配两队射门次数(假设格式为:队名+射门数)
"""
# 正则表达式模式:匹配“任意队名” + “射门” + 数字
# 这里简化逻辑,假设文本格式为:“队伍A name: 10 射门, 队伍B name: 5 射门”
# 示例文本解析(需根据实际文本结构调整)
# 更通用的办法:查找所有 "<数字> 次射门" 并分类
# 简化版:假设格式固定为 "队名 射门 数字"
pattern = r'(\S+)\s*射门\s*(\d+)' # \S+ 匹配非空白字符作为队名
matches = re.findall(pattern, text)
if len(matches) != 2:
print("⚠️ 无法自动识别两队数据,请检查文本格式。")
return
team1, shots1 = matches[0][0], int(matches[0][1])
team2, shots2 = matches[1][0], int(matches[1][1])
print(f"解析结果:{team1} {shots1}次 vs {team2} {shots2}次")
if shots1 > shots2:
print(f"✅ {team1} 射门更多")
elif shots2 > shots1:
print(f"✅ {team2} 射门更多")
else:
print("✅ 平局")
# --- 使用示例 ---
sample_text = """
北京时间8月15日,曼联队射门 12 次,利物浦队射门 8 次,最终曼联获胜。
"""
compare_shots_from_text(sample_text)
Bash/Shell 脚本(适用于Linux环境或开发者快捷操作)
适用场景:你是开发者,想直接在终端用命令行快速计算,无需打开Python。
#!/bin/bash
# 实用Bash脚本:比较两队射门
# 使用方式:bash shots_compare.sh 主队名 客队名 主队射门数 客队射门数
# 检查参数个数
if [ "$#" -ne 4 ]; then
echo "❌ 用法: $0 <主队名> <客队名> <主队射门数> <客队射门数>"
echo " $0 皇马 巴萨 13 17"
exit 1
fi
# 赋值
HOME_TEAM=$1
AWAY_TEAM=$2
HOME_SHOTS=$3
AWAY_SHOTS=$4
echo "🔍 数据统计: $HOME_TEAM ($HOME_SHOTS) vs ($AWAY_SHOTS) $AWAY_TEAM"
# 数值比较 (注意:此处用-gt比较整数)
if [ "$HOME_SHOTS" -gt "$AWAY_SHOTS" ]; then
echo "🏆 $HOME_TEAM 射门次数更多,多 $((HOME_SHOTS - AWAY_SHOTS)) 次。"
elif [ "$AWAY_SHOTS" -gt "$HOME_SHOTS" ]; then
echo "🏆 $AWAY_TEAM 射门次数更多,多 $((AWAY_SHOTS - HOME_SHOTS)) 次。"
else
echo "🤝 双方射门次数持平。"
fi
Excel 公式(最简单,适合日常手动记录)
如果你只是处理一张表格,不需要代码:
假设表格为:
- A1 = 主队名
- B1 = 主队射门数 (15)
- A2 = 客队名
- B2 = 客队射门数 (10)
在 C1 单元格输入公式:
=IF(B1>B2, A1&"更多", IF(B2>B1, A2&"更多", "持平")) & " (差值: " & ABS(B1-B2) & ")"
该公式会直接告诉你结果。
实用建议:如何自动获取实时数据?
如果你的目的是自动抓取实时比赛数据(如英超、西甲),最专业的方法是调用免费的体育API(如API-Football,需免费API Key)或使用requests库直接抓取特定网站的JSON数据。
示例(伪代码思路):
import requests
url = "https://v3.football.api-sports.io/fixtures/statistics?fixture=YOUR_ID"
headers = {'x-apisports-key': 'YOUR_KEY'}
response = requests.get(url, headers=headers).json()
# 遍历 response,找到 "Shots on Goal" 或 "Total Shots" 对应的 value
# 然后进行比较
你属于哪种情况? 如果你有具体的数据源(比如某个网站链接或CSV文件),或者需要对比多场比赛的历史数据,请告诉我,我可以据此调整脚本。