如何查看用户是否选择列表中的元素 (python)

How to see if the user chose a element in a list (python)

我正在尝试使用以下代码:

blosum = input("pick a matrix:")
x = [30, 40, 50, 100, 75, 70]
while blosum not in x :
    blosum = raw_input("Incorrect, pick a valid matrix:")
print ('ok')    

我想让它决定用户是否选择了列表中的一个选项。如果用户选择了其中之一,那么程序应该保持 运行,否则,它会一直告诉用户选择一个有效的矩阵。但是它不起作用,为什么?

继续将代码中的 raw_input 更改为 input,并将用户提供的数据转换为整数,如下所示:

blosum = int(input("pick a matrix: "))
x = [30, 40, 50, 100, 75, 70]
while blosum not in x:
    blosum = int(input("Incorrect, pick a valid matrix:"))
print ("OK")

测试

$ python test.py
pick a matrix: 1
Incorrect, pick a valid matrix:2
Incorrect, pick a valid matrix:30
OK

这对 Python 2.7+ 和 3+ 都有效,我相信,但你还是应该测试一下。

在以下问题中查看 raw_inputinput 之间的区别:

  • How can I read inputs as integers?
  • What's the difference between raw_input() and input() in python3.x?