如何根据 python 中的用户输入选择从多个级联列表中打印随机项



我想制作一个简单的应用程序,根据用户输入的类型选择建议艺术家收听。我有串联列表(流派(,它可以使用random.choice从任何列表中打印随机项目。但是,我希望它仅从用户输入的列表中打印随机项目,而不是从随机列表中打印随机项目。

尝试在 elif 和其他之间切换。尝试制作一个 for 循环,但没有取得多大成功。

import random
a= ["x", "y"]
b= ["z", "k"]
print("please choose between a or b")
answer = input ()
if answer == "a":
    print("You should check out : " , random.choice(a+b))
elif answer == "b":
    print("You should check out : " , random.choice(b))

我希望输出是用户输入"a"时列表中的随机项目a,以及用户输入"b"时列表中的随机项目b,但输出是来自列表ab的随机项目,无论用户输入是严格a还是b

我认为问题是你正在做random.choice(a+b)而不是random.choice(a).下面对我来说很好用

import random
a= ["x", "y"]
b= ["z", "k"]
print("please choose between a or b")
answer = input ()
if answer == "a":
    print("You should check out : " , random.choice(a))
elif answer == "b":
    print("You should check out : " , random.choice(b))
我相信

您问题的根源是用户输入 = 'a' 下的a+b位。此外,您可以将提示放入input()语句中。当我运行时,它似乎对我来说工作正常:

import random
a = ["x", "y"]
b = ["z", "k"]
answer = input("please choose between a or b n>>>")
if answer == "a":
    print("You should check out : ", random.choice(a))
elif answer == "b":
    print("You should check out : ", random.choice(b))

示例输出:

please choose between a or b 
>>>a
You should check out :  x
please choose between a or b 
>>>b
You should check out :  k

尝试了几次才能获得"z",但它会显示:

please choose between a or b 
>>>b
You should check out :  z

"n"是一个换行符,是我获得提示>>>显示在输出的下一行的方式

最新更新