本文目录导读:

我来帮您设计一个统计红黄牌数量的Python程序,这里提供几个不同版本的实现:
版本1:基础版(适合学习)
def count_cards(team1_cards, team2_cards):
"""
统计两队红黄牌数量并比较
team1_cards, team2_cards: 字典,包含'red'和'yellow'的键
"""
# 计算各队总分(红牌3分,黄牌1分)
team1_score = team1_cards['red'] * 3 + team1_cards['yellow'] * 1
team2_score = team2_cards['red'] * 3 + team2_cards['yellow'] * 1
print(f"队1: 红牌 {team1_cards['red']} 张,黄牌 {team1_cards['yellow']} 张,总分 {team1_score}")
print(f"队2: 红牌 {team2_cards['red']} 张,黄牌 {team2_cards['yellow']} 张,总分 {team2_score}")
if team1_score > team2_score:
return "队1 红黄牌更多(按3分制计算)"
elif team2_score > team1_score:
return "队2 红黄牌更多(按3分制计算)"
else:
return "两队红黄牌数量相同"
# 示例数据
team1 = {'red': 2, 'yellow': 3} # 2张红牌,3张黄牌
team2 = {'red': 1, 'yellow': 5} # 1张红牌,5张黄牌
result = count_cards(team1, team2)
print(result)
版本2:只比较总牌数(不考虑红黄牌权重)
def compare_total_cards(team1_cards, team2_cards):
"""
只比较红黄牌的总数量
"""
team1_total = team1_cards['red'] + team1_cards['yellow']
team2_total = team2_cards['red'] + team2_cards['yellow']
print(f"队1总牌数: {team1_total} 张")
print(f"队2总牌数: {team2_total} 张")
if team1_total > team2_total:
return "队1 红黄牌总数更多"
elif team2_total > team1_total:
return "队2 红黄牌总数更多"
else:
return "两队红黄牌总数相同"
# 示例数据
team1 = {'red': 2, 'yellow': 3}
team2 = {'red': 1, 'yellow': 4}
result = compare_total_cards(team1, team2)
print(result)
版本3:完整版(包含用户输入)
def collect_card_data():
"""收集用户输入的数据"""
print("=== 输入球队1的红黄牌数据 ===")
team1_red = int(input("队1红牌数量: "))
team1_yellow = int(input("队1黄牌数量: "))
print("\n=== 输入球队2的红黄牌数据 ===")
team2_red = int(input("队2红牌数量: "))
team2_yellow = int(input("队2黄牌数量: "))
return (
{'red': team1_red, 'yellow': team1_yellow},
{'red': team2_red, 'yellow': team2_yellow}
)
def analyze_cards():
"""分析红黄牌数据"""
team1, team2 = collect_card_data()
print("\n=== 分析结果 ===")
# 按红牌比较
print(f"红牌比较: 队1有{team1['red']}张,队2有{team2['red']}张")
if team1['red'] > team2['red']:
print("→ 队1红牌更多")
elif team2['red'] > team1['red']:
print("→ 队2红牌更多")
else:
print("→ 两队红牌数量相同")
# 按黄牌比较
print(f"黄牌比较: 队1有{team1['yellow']}张,队2有{team2['yellow']}张")
if team1['yellow'] > team2['yellow']:
print("→ 队1黄牌更多")
elif team2['yellow'] > team1['yellow']:
print("→ 队2黄牌更多")
else:
print("→ 两队黄牌数量相同")
# 按总牌数比较
team1_total = team1['red'] + team1['yellow']
team2_total = team2['red'] + team2['yellow']
print(f"\n总牌数: 队1有{team1_total}张,队2有{team2_total}张")
if team1_total > team2_total:
print("🏆 队1红黄牌总数更多")
elif team2_total > team1_total:
print("🏆 队2红黄牌总数更多")
else:
print("🏆 两队红黄牌总数相同")
# 运行程序
if __name__ == "__main__":
analyze_cards()
版本4:面向对象版(更专业)
class Team:
"""球队类"""
def __init__(self, name, red_cards=0, yellow_cards=0):
self.name = name
self.red_cards = red_cards
self.yellow_cards = yellow_cards
def total_cards(self):
"""返回总牌数"""
return self.red_cards + self.yellow_cards
def penalty_score(self):
"""返回罚分(红牌3分,黄牌1分)"""
return self.red_cards * 3 + self.yellow_cards * 1
def __str__(self):
return f"{self.name}: {self.red_cards}红, {self.yellow_cards}黄, 总分{self.penalty_score()}"
def compare_teams(team1, team2):
"""比较两队"""
print("=" * 40)
print(team1)
print(team2)
print("=" * 40)
# 按罚分比较
if team1.penalty_score() > team2.penalty_score():
print(f"🏆 {team1.name} 罚分更多")
elif team2.penalty_score() > team1.penalty_score():
print(f"🏆 {team2.name} 罚分更多")
else:
print("🏆 两队罚分相同")
# 使用示例
if __name__ == "__main__":
# 创建球队对象
team_a = Team("巴西", red_cards=2, yellow_cards=5)
team_b = Team("德国", red_cards=1, yellow_cards=4)
# 比较
compare_teams(team_a, team_b)
运行效果示例
=== 分析结果 ===
红牌比较: 队1有2张,队2有1张
→ 队1红牌更多
黄牌比较: 队1有3张,队2有5张
→ 队2黄牌更多
总牌数: 队1有5张,队2有6张
🏆 队2红黄牌总数更多
使用建议
- 简单比较:使用版本1或版本2
- 交互式输入:使用版本3
- 需要扩展功能:使用版本4的面向对象方式
您可以根据具体需求选择合适的版本,如果需要修改比较逻辑(比如红牌权重更大),可以在代码中调整评分标准。
版权声明: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直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播