只想把选定的最后一个‘。’变成‘X’,但是奈何出不到循环,所有选定的都变成了‘X’

img


r=5;c=6
n=[]
s=('· '*c).split()
for i in range(r):
    n.append(s)
x=0;o=0

x=int(input('playerX (col #): '))


for i in range(len(n)-1,-1,-1):
    if n[i][x]=='·':
        n[d][x]='X'
        break

print(n)

想的是输出为playerX (col #): 2
[['·', '·', '·', '·', '·', '·'], ['·', '·', '·', '·', '·', '·'], ['·', '·', '·', '·', '·', '·'], ['·', '·', '·', '·', '·', '·'], ['·', '·', 'X', '·', '·', '·']]

所以,把你的初始化方式修改即可。

r=5;c=6
n = [('· '*c).split() for _ in range(r)]
x=int(input('playerX (col #): '))

# n[len(n)-1][x] = 'X'
# print(n)

for i in range(len(n)-1,-1,-1):
    print(i)
    if n[i][x]=='·':
        n[i][x]='X'
        break
print(n)

img

那为啥要去做循环呢?直接n[len(n)-1][x] = 'X'不就行了么
或者 if n[len(n)-1][x] == '.':
n[len(n)-1][x] = 'X'