为什么输入功能不起作用?

时间:2018-03-09 18:11:28

标签: python python-3.x input user-input

我开始制作一个项目,展示我喜欢的乐队,然后询问他们希望看到哪些艺术家/乐队的专辑。我已经得到它来展示我喜欢的专辑但是每当我试图让Python显示我如何评价乐队/艺术家的特定专辑中的每首歌曲时,它都没有做任何事情。它结束了。

发生了什么以及如何解决?

另外,如何将album = input("\nWhich album would you like to see the songs rated?")转换为小写,以便更容易?就像它问你希望哪首专辑看到评分的歌曲?而我放Vessel时,Python不会解释列表名称而不会粘贴列表吗?

import time

top_albums = ["1.) Vessel", "2.) Regional at Best", "3.) Twenty One 
Pilots", "4.) Blurryface"]

twenty_one_pilots = ["Example 1"]
regional_at_best = ["Example 2"]
vessel = ["Example 3"]
blurryface = ["Example 4"]

for top_album in top_albums:
    print(top_album)

time.sleep(2)

album = input("\nWhich album would you like to see the songs rated?")


if album == twenty_one_pilots:
    print(twenty_one_pilots)

elif album == regional_at_best:
    print(regional_at_best)

elif album == vessel:
    print(vessel)

elif album == blurryface:
    print(blurryface)

2 个答案:

答案 0 :(得分:0)

如果您想根据列表名称获取列表的内容,可能更适合使用dictionary。最小的例子:

my_bands = { "vessel" : ["album 1", "album 2"], "21 pilots" : ["album 1", "album 2"] }

band = input("\nEnter a band name to see their albums: ")

print(my_bands[band])

要包含评分,您的列表可以是具有相册名称和评级的元组列表。但希望这可以让你开始朝着正确的方向前进。

正如其他地方所说,您可以在字符串上使用.lower()转换为小写。所以上面的最后一行是print(my_bands[band.lower()])

答案 1 :(得分:0)

python不会将字符串解释为代码,这意味着您的代码将无法按预期运行。要执行您想要的操作,请在eval()上执行album

关于第二个问题,请使用.lower()将字符串转换为小写,如下所示:

album = input("…").lower()