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