You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:实现音乐流派随机选专辑程序遇阻

修正后的音乐专辑选择器代码

先给你把代码改好,同时补上多流派判断和更多专辑示例:

from random import choice

# 定义各流派的专辑列表,直接放在全局更适合新手理解
rock_albums = [
    'Dark Side of the Moon - Pink Floyd',
    'Led Zeppelin IV - Led Zeppelin',
    'Nevermind - Nirvana'
]
rap_albums = [
    'Igor - Tyler, the Creator',
    'To Pimp a Butterfly - Kendrick Lamar',
    'My Beautiful Dark Twisted Fantasy - Kanye West'
]
indie_albums = [
    'Currents - Tame Impala',
    'Melodrama - Lorde',
    '22, A Million - Bon Iver'
]

print("你想听什么流派的音乐?(可选:rock/rap/indie)")
genre = input().lower()  # 转小写,避免大小写输入错误

# 根据输入的流派选择对应专辑
if genre == 'rock':
    selected_album = choice(rock_albums)
elif genre == 'rap':
    selected_album = choice(rap_albums)
elif genre == 'indie':
    selected_album = choice(indie_albums)
else:
    print("抱歉,暂不支持这个流派哦")
    exit()  # 退出程序

print(f"推荐专辑:{selected_album}")

原代码的问题说明

  • 函数lists()定义时缺少冒号:,这是Python语法的硬性要求。
  • 函数内部定义的rock_albums等是局部变量,外部无法访问,而且你也没调用这个函数,等于白定义了。
  • if input("rock")逻辑错误,这会让程序再次弹出输入框,正确应该是判断用户之前输入的genre变量值。
  • 导入了from random import choice,但代码里用了random.choice,要么改成直接用choice(),要么改成import random。
  • 变量名不统一:函数里是rock_albums,后面写的是albums_rock,名字颠倒导致找不到变量。

优化点说明

  • 把专辑列表放在全局,新手更容易理解和修改。
  • 用input().lower()把输入转成小写,用户输入Rock、ROCK也能识别。
  • 补上了rap和indie的判断逻辑,添加了更多专辑示例。
  • 加了else分支处理无效输入,程序更健壮。

内容的提问来源于stack exchange,提问作者maximilian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:25:40