从Word文档中读取随机行并进行打印

时间:2018-11-05 13:16:06

标签: python

所以我有一个使用python的小项目。

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

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

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

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

这会随机选择代码中的一行,并且不执行任何操作。

我在问我从这里去哪里。我需要在行上显示每个单词的首字母。然后,我需要一个柜台或某种形式来增加机会。我还需要写一些东西来检查他们是否正确,并添加到分数计数器中。

2 个答案:

答案 0 :(得分:0)

好的,现在继续您的计划,这很好。现在,您必须从行中的每个单词中获取第一个字母。您可以执行以下操作:

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

您在那里,您有清单res中每个单词的第一个字母。现在,您需要检查用户输入的标题是否正确。也许最好的主意是将所有内容都小写(在您的文件和用户输入中),以便于检查。现在,您只需要将用户输入转换为小写即可。您可以执行以下操作:

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()调用)

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

答案 1 :(得分:0)

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