在列表中重新分配不起作用的东西 - Python

时间:2016-12-14 19:18:17

标签: python python-2.7

我试图在用户完成某些事情之后在列表中重新分配某些东西,但它似乎不起作用。这是罪魁祸首代码:

table = [" "," ", " ", " ", " ", " ",]
userplay = input(": ")
if userplay == "1":
    table[1] = "X"

当发生这种情况并尝试打印时,它会保持不变。我做错了什么?

2 个答案:

答案 0 :(得分:3)

如果您正在使用 Python 2 ,则需要将变量转换为字符串或使用raw_input()

table = [" "," ", " ", " ", " ", " ",]
userplay = str(input(": "))  # Or: userplay = raw_input(": ")
if userplay == "1":
    table[1] = "X"

甚至更好,正如@Max所提到的,针对int进行测试(如果您使用 Python 2 并且您的输入是整数):

table = [" "," ", " ", " ", " ", " ",]
userplay = input(": ")
if userplay == 1:
    table[1] = "X"

注意: Python 3 中,input()默认返回一个字符串。

答案 1 :(得分:1)

要解决您的问题,如果您使用的是Python27,则可以使用raw_input() 您可以找到相关文档here

如果您使用的是Python3,input()可以正常使用。

我想您使用的是Pyhton27,因此代码如下:

table = [" "," ", " ", " ", " ", " ",]
userplay = raw_input(": ")
if userplay == "1":
    table[1] = "X"

如果用户插入1,则表变量的值等于

[' ', 'X', ' ', ' ', ' ', ' ']