Random.Choice 总是相同的结果

Random.Choice always the same result

一些可能有用的借口。我使用混音器并尝试随机选择音乐,但 random.choice 总是选择最后一首(歌曲 5)。这是我的代码

if Mamp=='1':
vad=input("[1] Bakground music")
#Mixer shit
mixer.init()
pygame.mixer.get_init
if vad=='1':
    commands=[mixer.music.load("song1.mp3"), mixer.music.load("song2.mp3"),mixer.music.load("song3.mp3"),mixer.music.load("song4.mp3"),mixer.music.load("song5.mp3")]
    current_command=random.choice(commands)
    current_command
    mixer.music.play(0)

我查看了同一问题的许多答案,但都只是修复了他们(上传者的)代码并上传了它,所以我无法将其用于我的代码。由于我正在努力学习 python 如果您也能解释一下出了什么问题,那就太好了?

commands=[mixer.music.load("song1.mp3"), ...]
current_command=random.choice(commands)
current_command

这部分你做错了。

您似乎想列出要在稍后执行的命令,但这并不是您实际要做的。 load() 命令在创建 commands 列表时 实际执行 。 而且因为song5.mp3是最后一个,所以每次都给人一种被“挑”的感觉

试试这个方法:

songs = ["song1.mp3", "song2.mp3", "song3.mp3", "song4.mp3", "song5.mp3"]
song = random.choice(songs)
mixer.music.load(song)