почему мой код застревает посередине?

#python-3.x

#python-3.x

Вопрос:

Я новичок в python и нашел упражнение для воспроизведения местной детской песни с использованием частот и длительности. смысл в том, чтобы использовать windsound только один раз.Звуковой сигнал, поэтому я использовал цикл ‘for’, мой код работает, но по какой-то причине застревает посередине. может кто-нибудь, пожалуйста, указать на мою проблему?

 freqs = {"la": 220, "si": 247, "do": 261, "re": 293, "mi": 329, "fa": 349, "sol": 392}
notes = "sol,250-mi,250-mi,500-fa,250-re,250-re,500-do,250-re,250-mi,250-fa,250-sol,250-sol,250- sol,500"
notes = notes.split('-')
print(notes)
import winsound
for note in notes:
    note_name = ''
    fre = ''
    for i in note:
        if i.isalpha():
            note_name = note_name   i
    elif i == ',':
        continue
    else:
        fre = fre   i
    winsound.Beep(freqs[note_name], int(fre))
  

введите описание изображения здесь

Комментарии:

1. Пожалуйста, дайте более подробную информацию о том, на какой строке происходит разрыв цикла. И, вероятно, ваш вывод тоже.

2. в том-то и дело, что при запуске отладчика PyCharm. мой код не сломался….

3. У меня не загружен winsound, но если я заменю вызов на winsound. звуковой сигнал с инструкцией print выводит частоту и время для всех записей в заметках. Единственное, что я заметил, это то, что последний элемент приводит к пробелу перед значением fre. Вы также можете значительно упростить свой код, удалив значение note и затем разделив на «,». Это оставляет вам два элемента: имя и значение fre напрямую.