拉出raw_input选项形成一个列表

时间:2011-09-04 17:46:53

标签: python list input

您好我刚刚开始学习Python,我正在使用“学习python的方法”这本书,其中一个练习就是构建一个简单的游戏。我想从列表中为用户提供选项。

例如,我会列出一个名为动物的名单,其中包括3只动物,狮子虎和鱼。可以从列表中提供所选元素。我很确定它是,但我只是不知道如何。

我在想这样的事情(显然是错的,但我认为理解我的意思是有帮助的)

animals = ['Lion', 'Tiger', 'Fish']

print "which of these animals is your favourite?"
favourite = raw_input(animals[0] or animals[2])
if favourite = "Lion':
    print "Nice choice"
else:
    print "Bad choice"

我再说不出足够的压力我知道上面的内容确实很糟糕,但基本上我想提供一个列表的某些项目作为raw_input的选项。在上面的例子中,0项和2项。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

favourite = raw_input(' or '.join(animals))

这将获取列表animals中的所有字符串,并将它们与or一起加入,因此您最终会得到

Lion or Tiger or Fish

如果要在末尾添加问号和空格,可以执行

favourite = raw_input(' or '.join(animals) + '? ')

此外,在行

if favourite = "Lion':

您的报价不匹配 - 请确保使用双引号或单引号,而不是每个引号之一。您还需要使用==来比较两件事; =用于分配值,而不是比较。

我可能会这样做

animal_string = ' or '.join(animals)
favourite = raw_input("Which of these animals is your favourite:\n{}? ".format(animal_string))

首先制作动物字符串,然后将选项格式化为新行上的问题(因为\n),并将?放在后面。

答案 1 :(得分:1)

这个怎么样?

favourite = raw_input("which of these animals is your favourite? "+",".join([str(a)+":"+b for a,b in enumerate(animals)])+">")
fav = animals[int(favourite)]
print fav+" is a nice choice indeed!. The big bear will kill you anyway. Good bye."