输入整数和字符串

2024-06-01 14:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是一些关于网球得分的基本事实:
网球比赛是由几组组成的。一套是由游戏组成的。在

要赢得一盘,一个球员必须赢得6场比赛,差2局。在6-6岁时,通常会有一个特殊的决胜局。在某些情况下,球员继续比赛,直到其中一人以两局之差赢了一盘。在

网球比赛可以是3套或5套。赢得多数局的选手获胜(即3局2胜或5局3胜) 一场比赛的分数列出了每一局的比赛,每一局的总胜利者分数首先报告。因此,如果比分是6比3,5比7,7比6,这意味着第一个选手以6比3赢了第一盘,第二盘以5比7输掉了第三盘,以7比6赢了第三盘(因此也以2比1赢了整场比赛)。在

您将从键盘读取输入(标准输入),其中包含几场网球比赛的结果。每一场比赛的分数以以下格式记录在单独的一行上:

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

例如,窗体的输入行

^{pr2}$

表明威廉姆斯在3局最好的比赛中以3-6,6-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-6进行的(比较项目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

可以假设标点符号:-和{}周围没有空格。每个球员的名字都会拼写一致,没有两个球员有相同的名字。在

选择此分配的语言。在

,
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),

所以我不明白如何获取既包含字符串又包含数字的输入进行分析?在


Tags: of项目程序number标准分数score球员
1条回答
网友
1楼 · 发布于 2024-06-01 14:29:24

以下不是你作业的答案,但我希望它能展示一些你可能想探索的想法。在

具体回答您关于如何将字符串中的数字字符转换为整数的问题,请看int(score_pair_split[0]),在这里我更改了各个分数的string值,并使用int()将它们存储在我的dict中作为integers。在

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))

相关问题 更多 >