所以我有一个使用python的小项目。
到目前为止,我已经创建了一个文本文档,并放置了几行歌曲标题。
在我的代码中,我使用了以下内容:
random_lines = random.choice(open("songs.txt").readlines())
这会随机选择代码中的一行,并且不执行任何操作。
我在问我从这里去哪里。我需要在行上显示每个单词的首字母。然后,我需要一个柜台或某种形式来增加机会。我还需要写一些东西来检查他们是否正确,并添加到分数计数器中。
答案 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')