2016-08-27 5 views
-5

テニスの得点に関するいくつかの基本的な事実があります:
テニスのマッチはセットでできています。セットはゲームで構成されています。整数と文字列を一緒に入力

セットを獲得するには、2つのゲームの差で6ゲームを獲得する必要があります。 6-6には、しばしば特別なタイブレーカーがあります。いくつかのケースでは、2人のゲームの差で1人がセットを獲得するまで、プレイヤーはプレイを続けます。

テニスマッチは、3セットまたは5セットのいずれかになります。大部分の勝利を得たプレイヤーが勝つ(すなわち、2セット3セットまたは5セットのうち3セット) マッチのスコアは各セットのゲームをリストし、全体の勝者のスコアが各セットの最初に報告される。したがって、スコアが6-3,5-7,7-6である場合、第1のプレイヤーは6対3で第1セットを獲得し、第5のゲームを7対7で失い、第3の勝利を7対6で獲得したことを意味する(したがって、総合的な試合も2セット1で勝った)。

いくつかのテニスマッチの結果を含むキーボード(標準入力)から入力を読み込みます。各試合のスコアは、次の形式の別の行に記録されている:例えば

Winner:Loser:Set-1-score,...,Set-k-score, where 2 <= k <= 5 

、フォームの入力ライン

Williams:Muguruza:3-6,6-3,6-3 

はウィリアムズMuguruza 3-6、6-3、ビートことを示し最高の3セットの試合で6-3を守ってください。

入力は空白行で終了します。

あなたはすべての試合についての情報を読み取り、Pythonのプログラムを書いて、各プレーヤーのための次の統計をコンパイルする必要があります。

Number of best-of-5 set matches won 
Number of best-of-3 set matches won 
Number of sets won 
Number of games won 
Number of sets lost 
Number of games lost 

あなたは、画面(標準出力)高い順にまとめを印刷すべきです(項目1を比較する、比較項目2を等しい、比較項目3を等価とする場合、項目5および項目6については比較を逆にする)。あなたのプログラムがプリントアウトすべき次のデータ

Djokovic:Murray:2-6,6-7,7-6,6-3,6-1 
Murray:Djokovic:6-3,4-6,6-4,6-3 
Djokovic:Murray:6-0,7-6,6-7,6-3 
Murray:Djokovic:6-4,6-4 
Djokovic:Murray:2-6,6-2,6-0 
Murray:Djokovic:6-3,4-6,6-3,6-4 
Djokovic:Murray:7-6,4-6,7-6,2-6,6-2 
Murray:Djokovic:7-5,7-5 
Williams:Muguruza:3-6,6-3,6-3 

与え例えば

、あなたは句読点:-,周りにスペースがないと仮定することができ

Djokovic 3 1 13 142 16 143 
Murray 2 2 16 143 13 142 
Williams 0 1 2 15 1 12 
Muguruza 0 0 1 12 2 15 

を以下に示します。各プレイヤーの名前は一貫して綴られ、2人のプレイヤーは同じ名前ではありません。

この課題の言語を選択してください。

, 
1 
    print (Djokovic:Murray:2-6,6-7,7-6,6-3,6-1 
2 
Murray:Djokovic:6-3,4-6,6-4,6-3 
3 
Djokovic:Murray:6-0,7-6,6-7,6-3 
4 
Murray:Djokovic:6-4,6-4 
5 
Djokovic:Murray:2-6,6-2,6-0 
6 
Murray:Djokovic:6-3,4-6,6-3,6-4 
7 
Djokovic:Murray:7-6,4-6,7-6,2-6,6-2 
8 
Murray:Djokovic:7-5,7-5 
9 
Williams:Muguruza:3-6,6-3,6-3), 

だから私は分析するために、文字列と数字の両方が含まれている入力を取る方法を理解できないのですか?

+2

Pythonは学習するのに適した直感的な言語です。私は、この作業を開始する前に、最初の把握を得るために、YouTubeでいくつかのPythonチュートリアルを実行することをお勧めします。タスクそのものについては、まず小さなチャンクに分割してください。たとえば、データから数字を抽出することから始めます。 Pythonには、 'isdigit()'という名前の組み込み関数があります。 – smoggers

答えて

1

以下はあなたの宿題に対する答えではありませんが、あなたが探索したいかもしれないいくつかのアイデアを示すことを願っています。具体的に整数に文字列の桁の文字を変換する方法についてのご質問に答える

は、私は個々のスコアのstring値を変更してint()を使用して、私のdictintegersなどに格納していますint(score_pair_split[0])を見てください。

instring = 'Djokovic:Murray:2-6,6-7,7-6,6-3,6-1' 

instring_split = instring.split(':') 
name1 = instring_split[0] 
name2 = instring_split[1] 
scores = instring_split[2] 
score_pairs = scores.split(',') 
namescores = {} 
namescores[name1] = {} 
namescores[name2] = {} 

for i, score_pair in enumerate(score_pairs): 
    score_pair_split = score_pair.split('-') 
    namescores[name1][str(i)] = int(score_pair_split[0]) 
    namescores[name2][str(i)] = int(score_pair_split[1]) 

print(str(namescores)) 
関連する問題