给出一个随机选择的例外

时间:2012-10-30 00:20:34

标签: python

现在我一直在尝试制作自己版本的游戏线索,我似乎无法弄清楚这是怎么回事。我试图做到这一点,如果猜测是错误的,它将提供其他猜测的暗示,这不是真正的“杀手”,这不是他们以前的任何猜测。我将举一个类似的例子:

    a = input()
    b = input()
    c = input()
    d = input()
    e = input()
    f = input()
    hint = random.choice([a,b,c,d,e,f])
    hint != killer
    hint != previous_guess

现在我知道提示!=杀手和提示!= previous_guess并没有真正做任何事情,因为之前已经分配了提示。我想知道是否有任何方法可以使它从一个不是杀手或先前猜测的变量中随机选择。提前致谢!哦,我还想指出我正在使用python。

2 个答案:

答案 0 :(得分:1)

您可以使用一个集合并减去您不想要的集合,例如

hint = random.choice(list({a, b, c, d, e, f} - {killer, previous_guess}))

答案 1 :(得分:0)

这是你可以做到的基本方法。这使用了所谓的list comprehension的概念,以便以有效的方式生成列表。 .format()表示字符串格式,允许您以各种格式(文档here)将变量传递到字符串中,但现在只知道{0}引用{{1}的第一个参数1}})。

使用上述列表理解生成

format(),它在语法上等同于:

names

此模式稍后用于生成没有杀手或先前猜测的列表。很高兴解释任何没有意义的部分(感谢@JonClements指出我留在那里的一些奇怪的地方):

names = []
for i in range(6):
    names.append(raw_input('Enter a name: ')