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

Python 从word文档中随机读取一行并打印它,python,Python,所以我有一个关于python的小项目 随机选择歌曲名称和艺术家 将显示歌手和歌曲标题中每个单词的第一个字母 用户有两次机会猜测歌曲的名称 如果用户第一次猜对了答案,他们得3分。如果用户猜测 第二次回答正确,他们得1分。游戏重复 当玩家第二次猜错歌曲名称时,游戏结束 到目前为止,我已经创建了一个文本文档,并放置了几行歌曲标题 在我的代码中,我使用了以下内容: random_lines = random.choice(open("songs.txt").readlines()) 这会在代码中随

所以我有一个关于python的小项目

  • 随机选择歌曲名称和艺术家
  • 将显示歌手和歌曲标题中每个单词的第一个字母
  • 用户有两次机会猜测歌曲的名称
  • 如果用户第一次猜对了答案,他们得3分。如果用户猜测 第二次回答正确,他们得1分。游戏重复
  • 当玩家第二次猜错歌曲名称时,游戏结束
到目前为止,我已经创建了一个文本文档,并放置了几行歌曲标题

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

random_lines = random.choice(open("songs.txt").readlines())
这会在代码中随机选取一行,但不做任何处理


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

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

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


我希望这足够清楚。如果没有,请将问题写在注释中:)

假设您的随机选择字符串包含格式为
{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')

这条随机线看起来怎么样?你能举个例子吗?