/ / El índice de la lista de Python está fuera de alcance: python, lista, bucles, while-loop, música

El índice de la lista de Python está fuera de su alcance: python, lista, bucles, bucles while, música

import webbrowser
import os
from random import randint

next = input("Good day sir: ")

if(next == "Dog play music"):
i = 1;
while(i != 0):


music = ["So_Far.mp3", "Love_Game.mp3", "Asshole.mp3", "Baby.mp3", "Bad_Guy.mp3",
"Beautiful_Pain.mp3", "Berzerk.mp3", "Brainless.mp3", "Desperation.mp3",   "Evil_Twin.mp3", "Ground_Hog_Day.mp3",
"Legacy.mp3", "Rap_God.mp3", "Rhyme_Or_Reason.mp3", "So_Much_Better.mp3"]
i = len(music)
a = randint(0,i)
song = music[ a ]
os.startfile(song)

os.startfile("test.py")
os.close("test.py")

Estoy tratando de recorrer las canciones cuando hayas terminado con la siguiente sin repetir una canción. ¡Muchísimas gracias por su ayuda y apoyo!

Respuestas

1 para la respuesta № 1

Sólo usaría el random.shuffle método de la random Biblioteca, en lugar de ajustar la lógica usted mismo para asegurarse de evitar duplicados.

import random
music = ["So_Far.mp3", "Love_Game.mp3", "Asshole.mp3", "Baby.mp3", "Bad_Guy.mp3","Beautiful_Pain.mp3", "Berzerk.mp3", "Brainless.mp3", "Desperation.mp3",   "Evil_Twin.mp3", "Ground_Hog_Day.mp3", "Legacy.mp3", "Rap_God.mp3", "Rhyme_Or_Reason.mp3", "So_Much_Better.mp3"]

Puedes usar random.shuffle aleatorizar el orden de la lista

random.shuffle(music)

Ver ... al azar

>>> music
["Legacy.mp3", "Love_Game.mp3", "Beautiful_Pain.mp3", "Asshole.mp3", "So_Far.mp3", "Evil_Twin.mp3", "Brainless.mp3", "So_Much_Better.mp3", "Rhyme_Or_Reason.mp3", "Bad_Guy.mp3", "Baby.mp3", "Desperation.mp3", "Berzerk.mp3", "Ground_Hog_Day.mp3", "Rap_God.mp3"]

Ahora solo recorre la lista aleatoria y reproduce tu música.

for song in music:
os.startfile(song)