Я делаю проект в школе, который просит меня провести музыкальную викторину на python, которая читает файл, отображает первые буквы каждого слова песни и исполнителя (например, Дейва Ф.Ф.).В моем файле у меня есть список из 10 названий песен, где python выбирает случайную строку и выполняет отображение.Он должен быть из файла (мой блокнот). У пользователя должно быть 2 шанса угадать название песни, а если нет, то игра заканчивается.Проблема, с которой я столкнулся, заключается в том, что я не могу заставить свой код задать другой вопрос и сохранить последний заданный вопрос, чтобы он не задавал его снова (например, если первый вопрос - Дэйв и Ф.Ф., я хочу, чтобы он больше не приходил),Я также был бы признателен, если бы мне показали, как заставить Python отображать таблицу лидеров.Могут ли ответы быть полным кодом с улучшениями, так как я не очень разбираюсь в отступах и размещении кода в нужном месте.
Я уже предоставил пользователю 2 шанса, чтобы получить правильную песню, и если они этого не делают, программа заканчивается, но не зацикливается на начале.
import random
with open("songlist.txt", "r") as songs_file:
with open("artistlist.txt", "r") as artists_file:
songs_and_artists = [(song.rstrip('\n'), artist.rstrip('\n'))
for (song, artist) in zip(songs_file, artists_file)]
random_song, random_artist = random.choice(songs_and_artists)
songs_intials = "".join(item[0].upper() for item in random_song.split())
print("The songs' initials are", songs_intials, "and the name of the artist is", random_artist)
nb_tries_left = 3
guess = input("Guess the name of the song! ")
nb_tries_left -= 1
finished = False
while not finished:
answer_found = (guess == random_song)
if not answer_found:
guess = input("Nope! Try again! ")
nb_tries_left -= 1
elif answer_found:
print("The songs' initials are", songs_intials, "and the name of the artist is", random_artist)
finished = (answer_found or nb_tries_left <= 0)
if answer_found:
Песни 'инициалы - LT, а имя исполнителя - Fredo. Угадай название песни!Вот так Инициалы песен - LT, а имя исполнителя - Fredo Well done!
Затем Python не задает другого вопроса, и я не знаю, будет ли он снова таким.
намеренно неправильно его выводит:
The songs' initials are CS and the name of the artist is 50 Cent
Guess the name of the song! candysong
Nope! Try again! carpetshop
Nope! Try again! coolsong
Sorry, you've had two chances. Come back soon!
>>>