我試圖寫一段代碼,它將文本文件中行的某些數字乘以3.但是,每行都有字符串,每個數字之間用逗號隔開。這是爲了一款遊戲排行榜,我只是想學習和練習Python。每一行都有玩家的暱稱,比賽出場,比賽勝負和比賽失分列表,每個項目用逗號分隔(無空格),每名球員已經打了24場比賽。如何從文本文件中的行中乘以數字?
從文本文件中的一行的一個示例是:
DarrenL,24,12,12
Philippa93,24,9,15
TommyBoy,24,0,24
的目的:
- 閱讀文本文件轉換成代碼(完成)
- 採取每場比賽獲勝並將其乘以3
這裏是我已經代碼:
print("Leaderboard")
print("Only players who have won one or more matches will be displayed")
results = open('results.txt', 'r').readlines()
with open('results.txt', 'r') as leaderboard:
import re
output = []
with open('firesideResults.txt.txt') as file:
for line in file:
matchesWon = re.search(r'\d+,?\d*', line)
if matchesWon:
points = output.append(float(matchesWon.group()))
print(points * 3)
與代碼的問題是,它並沒有實際打印從實際的文本文件,任何東西。
對於一個問題有很多問題。你應該採取更小的步驟。例如:(1)讀取文件,並逐行重新打印。 (2)提取每行贏得的比賽數量並打印。 (3)計算每行的分數(3 *贏得的比賽)並打印出來。 (4)如果沒有贏得比賽,不要打分。 **不要採取下一步,直到目前的工作。** – mkrieger1
哪些價值是「比賽贏」?建議你用['csv'](https://docs.python.org/3/library/csv.html#module-csv)模塊讀取文件,因爲這是它的文件類型(並且會比使用正則表達式來解析這些行)。 – martineau
首先,你正在使用'open'三次。它只能使用一次。 – mkrieger1