从word文档中随机读取一行并打印i

2024-05-13 13:43:18 发布

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

所以我有一个关于python的小项目。你知道吗

  • 随机选择歌曲名称和艺术家。你知道吗
  • 将显示歌手和歌曲标题中每个单词的第一个字母。你知道吗
  • 用户有两次机会猜出歌曲的名字。你知道吗
  • 如果用户第一次猜对了答案,他们得3分。如果用户猜测 他们第二次答对了就得1分。游戏重复。你知道吗
  • 当玩家第二次猜错歌名时,游戏结束。你知道吗

到目前为止,我已经创建了一个文本文档并放置了几行歌曲标题。你知道吗

在我的代码中,我使用了以下内容:

random_lines = random.choice(open("songs.txt").readlines())

这会随机选取代码中的一行,而不会对其执行任何操作。你知道吗

我在问我要从这里走到哪里。我需要显示行中每个单词的第一个字母。然后我需要一个计数器或某种增加机会。我还需要写一些东西,将检查,看看他们是否有正确的,并添加到一个分数计数器。你知道吗


Tags: 项目代码用户游戏标题字母计数器random
2条回答

假设随机选择字符串包含格式为{songname} - {artist}的数据

然后,您首先需要将歌曲名称和艺术家作为单独的字符串获取。
打印第一个字母并要求输入。你知道吗

之后,你需要比较字符串和做一些逻辑点。你知道吗

points = 0;
while(1):
    random_line = 'Song - artist' #change this with your random string
    song, artist = random_line.split('-')

    print("{0} - {1}".format(song.strip()[:2], artist.strip()[:2]))


    for i in range(0,3):
        if (i == 2):
            print('You died with {} points'.format(points))
            exit(0)
        elif(random_line.lower() == input('Gues the song: ').lower()):
            points += 2 - i
            print('correct guess. points: ' + str(points))
            break
        else:
            print('Try again')

好的,现在继续你的计划,很好。现在你必须从每一行字中找出第一个字母。您可以通过以下方式实现:

res = []
for i in line.split():
  res.append(i[0])

在这里,你有列表中每个单词的第一个字母。现在你需要检查用户输入的标题是否正确。也许最好的办法是将所有内容(在您的文件和用户输入中)保持小写,以便于检查。现在您只需将用户输入转换为小写。您可以使用:

user_entry = input('Song title:')
if user_entry.lower() == line.lower():
  score += 3
else:
  user_entry_2 = input('Song title:')
  if user_entry_2.lower() == line.lower():
    score += 1
  else:
    print('Game over.')
    sys.exit()

你应该把它变成一个函数,并在循环中调用它,直到用户错过为止。函数可以返回您可以打印的当前分数(在这种情况下,您应该删除sys.exit()调用)

我希望这足够清楚。如果没有,在评论中写下问题:)

相关问题 更多 >