我已經給出了在Python中製作高爾夫Stableford計算器程序的任務,該程序將從sys.stdin中讀取文本文件並輸出文本文件中每位高爾夫球手的Handicap分數。在文本文件中,第一行是所有18個孔中每個孔的標準桿,第二行有每個孔的索引(難度排名)。然後接下來的每一行都有高爾夫球員的名字,高爾夫球手的差點筆畫以及他們在1-18洞每個洞上的筆畫。如果高爾夫球手具有「X」分數,則該孔被忽略。如果有其他事情,那麼高爾夫球員被取消資格。如何在Python中創建高爾夫Stableford計算器
這裏是給定的文本文件:
4 5 3 4 4 5 3 5 3 5 3 4 4 4 4 5 4 3
16 4 8 2 18 14 10 6 12 11 15 5 13 1 17 7 3 9
Raspberry Pie 14 4 7 3 5 10 7 4 12 4 5 3 4 4 5 5 5 4 4
Penelope Perkins 17 4 7 3 5 10 7 4 12 4 5 3 4 4 5 5 5 4 4
Bambi 19 5 6 4 5 5 6 4 6 ; 6 4 5 5 5 5 6 5 4
Sylvester The Cat 36 X X X X X X X X X X X X X X X X X X
Sneezy 18 5 6 4 5 5 6 4 6 4 6 4 5 5 5 5 6 5 4
Juninho 18 5 6 4 5 5 6 4 6 4 A 4 5 5 5 5 6 5 4
Shere Khan 7 4 X 3 4 4 5 1 4 3 5 3 X 4 4 4 5 4 3
Alexis de Sart 0 4 3 1 X 2 5 3 4 1 5 3 3 3 3 3 5 4 3
下面是所需的輸出:
$ python3 stableford.py < golf.txt
Alexis de Sart : 47
Shere Khan : 40
Penelope Perkins : 38
Sneezy : 36
Raspberry Pie : 35
Sylvester The Cat : 0
Bambi : Disqualified
Juninho : Disqualified
我想我已經找到了如何計算差點得分爲每位高爾夫球手。您會發現高爾夫球手在每個洞上的杆數與擊球所需的杆數之間的差異,找到差值值得的差點數(例如,+ 2 = 0,+ 1 = 1,0 = 2, -1 = 3等),並將其添加到每行開頭的讓分筆畫。我也知道我可以通過使用異常處理來取消兩位高爾夫選手的資格。
我有一個問題,搞清楚如何將名稱分配給值。我知道我可以用字典爲鍵值賦予一個值,但我不知道如何使用正則表達式獲取全名,而不會在文本文件中獲得其他字母。
這是我用來獲取到那個階段的代碼:
import sys
import re
par=sys.stdin.readline().split()
Index=sys.stdin.readline().split()
everything="".join(sys.stdin.readlines())
name=r"([A-Za-z][A-Za-z]*)"
name_regex = re.compile(name)
namelist = name_regex.findall(everything)
for n in namelist:
print(n)
我已經花了過去幾個小時,谷歌搜索從蟒蛇放在這裏過去的問題,在線指南信息,可以幫助我完成這個程序但它讓我無處可去。我明白這是一項相當大的任務,所以如果有些人可能會幫助我,我會非常感激。謝謝閱讀。
不幸的是,這種類型的問題對於這個平臺太寬泛。你只應該發佈高度集中/專業化的問題描述。 – Asciiom
你還會在哪裏推薦發佈? –
像這樣的服務,可能是:https://hackhands.com/ – Asciiom