สร้างโปรแกรมคำนวณคะแนนตารางการแข่งขันทีมฟุตบอล
```python
# สร้างคลาสสำหรับเก็บข้อมูลของทีม
class Team:
def __init__(self, name):
self.name = name
self.wins = 0
self.draws = 0
self.losses = 0
self.points = 0
def update_stats(self, result):
if result == 'win':
self.wins += 1
self.points += 3
elif result == 'draw':
self.draws += 1
self.points += 1
else:
self.losses += 1
# สร้างฟังก์ชันเพื่อคำนวณคะแนน
def calculate_scores(matches):
teams = {}
for match in matches:
home_team, away_team, result = match
if home_team not in teams:
teams[home_team] = Team(home_team)
if away_team not in teams:
teams[away_team] = Team(away_team)
if result == 'win':
teams[home_team].update_stats('win')
teams[away_team].update_stats('loss')
elif result == 'draw':
teams[home_team].update_stats('draw')
teams[away_team].update_stats('draw')
else:
teams[home_team].update_stats('loss')
teams[away_team].update_stats('win')
sorted_teams = sorted(teams.values(), key=lambda x: (x.points, x.wins, x.name), reverse=True)
return sorted_teams
# ตัวอย่างการใช้งานโปรแกรม
matches = [('Team A', 'Team B', 'win'),
('Team B', 'Team C', 'draw'),
('Team A', 'Team C', 'loss'),
('Team B', 'Team A', 'loss')]
sorted_teams = calculate_scores(matches)
for i, team in enumerate(sorted_teams, 1):
print(f'{i}. {team.name}: {team.points} แต้ม ({team.wins} ชนะ, {team.draws} เสมอ, {team.losses} แพ้)')
```
โปรแกรมด้านบนจะช่วยคำนวณคะแนนและอันดับในตารางการแข่งขันฟุตบอลโดยอ้างอิงจากผลการแข่งขันที่กำหนดใน `matches` จะแสดงผลลัพธ์ออกมาให้ดูตามลำดับของทีมที่ได้คะแนนมากที่สุดถึงน้อยที่สุด ทีมละกี่แต้ม ชนะ/เสมอ/แพ้ อย่างไร
ที่เราสามารถเปลี่ยนแปลงได้ คือการเพิ่มข้อมูลการแข่งขันใหม่ใน `matches` โดยเขียนในรูปแบบ ('ทีม1', 'ทีม2', 'ผลการแข่งขัน') แล้วรันโปรแกรมอีกครั้งเพื่อดูผลลัพธ์ใหม่ได้ตามที่เปลี่ยนแปลงแล้ว
การใช้โปรแกรมนี้จะช่วยให้การคำนวณคะแนนและการจัดอันดับของทีมในการแข่งขันฟุตบอลทำได้สะดวกและรวดเร็วมากขึ้น และยังช่วยลดข้อผิดพลาดที่อาจจะเกิดขึ้นในการคำนวณด้วยวิธีแบบดั้งเดิมได้ด้วย
```