我正在做一个快速的游戏,只是为了好玩,只是学习代码,我似乎无法摆脱这个问题
set1 = ["Horse", "Cow", "Pig", "Goat", "Chicken", "Sheep", "Donkey", "Duck", "Rabbit"]
set2 = ["Horse", "Cow", "Pig", "Goat", "Chicken", "Sheep", "Donkey", "Duck", "Rabbit"]
random.shuffle(set1,random.random)
random.shuffle(set2,random.random)
side1 = int(input("What number would you like to pick from side one?"))
side2 = int(input("What number would you like to pick from side two?"))
s1pick = set1.index(side1)
s2pick = set2.index(side2)
picks = []
我希望他们为side1
和side2
输入2个数字,然后将set1
和set2
中的相应值存储在s2pick
和s1pick
中。但我一直收到这样的错误信息:
Traceback (most recent call last):
File "C:/Users/Me/PycharmProjects/nice memes/src/snap.py", line 26, in <module>
s1pick = set1.index(side1)
ValueError: 4 is not in list
在pycharm社区版上使用python3。谢谢
index()
actually returns the index of the value that you pass to the method。出现错误是因为值4
不在调用index()
方法的列表中。如果在从用户处获取提示后,已经将其转换为int()
,那么您只需从列表中指定该索引处的元素,如下所示:不过,要小心。您得到的
input()
可能超出了列表的范围。因此,我会将您的输入放入while循环,以确保您得到有效的输入:^{} 返回传递给它的元素值的索引。所以对于列表
l = ['a', 'b', 'c']
,l.index('b')
将返回1
如果要转到另一个方向,获取索引的值,则应使用项访问语法:
因此,在您的例子中,您希望使用
set1[side1]
,以便获得用户从set1
中选择的值比较两段代码:
相关问题 更多 >
编程相关推荐