我是Python编程的新手,我被困在以下内容:
我有一个条目列表作为输入,它由空换行符分隔,如下所示:
input = """Andrew
Bob
Chanel
Danielle
Andrew Chanel 1 0
Danielle Bob 0 1
Andrew Danielle 0.5 0.5
Chanel Bob 1 0
Andrew Bob 0.5 0.5
Chanel Danielle"""
在这个输入中,前4行应该被视为一个名为result
的类中所有玩家的名字,并带有一个名为name的字符串。然而,在第一个空换行符之后,它给出了两个玩家的名字,然后是他们的结果(1 =赢,0 =输,都是0.5 =平局)。每个换行符都是一场新的战斗,直到出现新的空换行是一轮
我的问题是:我需要哪些步骤来指定:
- 空换行符之前的第一部分是所有玩家参与?
- 后面的"段落"是圆形的吗?
- ,第一个名字是'player_1',第二个名字'player_2',第一个值'score_player_1'和第二个值'score_player_2'?
如果有人愿意帮助一个初学者,我将不胜感激!
你可以这样做:
x = """Andrew
Bob
Chanel
Danielle
Andrew Chanel 1 0
Danielle Bob 0 1
Andrew Danielle 0.5 0.5
Chanel Bob 1 0
Andrew Bob 0.5 0.5
Chanel Danielle 0 1"""
_names, *rounds = x.split('nn')
names = _names.splitlines() # ['Andrew', 'Bob', 'Chanel', 'Danielle']
for _round in rounds:
print('NEW ROUND')
for match in _round.splitlines():
# Use these variables:
name1, name2, score1, score2 = match.split()
print('MATCH:', name1, 'vs', name2, '| SCORE:', score1, '-', score2)
print('')
输出:
NEW ROUND
MATCH: Andrew vs Chanel | SCORE: 1 - 0
MATCH: Danielle vs Bob | SCORE: 0 - 1
NEW ROUND
MATCH: Andrew vs Danielle | SCORE: 0.5 - 0.5
MATCH: Chanel vs Bob | SCORE: 1 - 0
NEW ROUND
MATCH: Andrew vs Bob | SCORE: 0.5 - 0.5
MATCH: Chanel vs Danielle | SCORE: 0 - 1