如何解决井字游戏:TypeError:“ str”对象在尝试将字母更改为大写时不支持项目分配
我正在制作tic tac toe游戏,只是为了更好地吸收我在python编程中学习的概念。
在我的代码中,我正在尝试对大写字母进行字符替换,因为用户可以输入“ meio-E”或“ meio-e”,但我一直在跟踪错误“ TypeError” :'str'对象不支持项目分配”
这是我要更改的部分:
# Função que coloca as peças X no tabuleiro
def coloca_pecas_X(tabuleiro):
desenha_tabuleiro(o_tabuleiro)
print("Faça sua Jogada (topo,meio,baixo)-(E,M,D). Ex: topo-M")
jogada = input()
jogada[-1] = jogada[-1].upper()
tabuleiro[jogada] = " X "
完整的错误消息如下:
Traceback (most recent call last):
File "D:\Usuário\Documents\Curso Python\jogo_da_veia.py",line 65,in <module>
proxJogada()
File "D:\Usuário\Documents\Curso Python\jogo_da_veia.py",line 57,in proxJogada
coloca_pecas_X(o_tabuleiro)
File "D:\Usuário\Documents\Curso Python\jogo_da_veia.py",line 33,in coloca_pecas_X
jogada[-1] = jogada[-1].upper()
TypeError: 'str' object does not support item assignment
如果有人可以帮助我,我将不胜感激。
完整代码:
# Jogo da velha
# Autor: Arthur Silva
# Data: 11/08/2020
o_tabuleiro = {
"topo-E": " ","topo-M": " ","topo-D": " ","meio-E": " ","meio-M": " ","meio-D": " ","baixo-E": " ","baixo-M": " ","baixo-D": " ",}
# Função que desenha o tabuleiro
def desenha_tabuleiro(tabuleiro):
print(tabuleiro["topo-E"] + "|" + tabuleiro["topo-M"] + "|" + tabuleiro["topo-D"])
print("--------")
print(tabuleiro["meio-E"] + "|" + tabuleiro["meio-M"] + "|" + tabuleiro["meio-D"])
print("--------")
print(
tabuleiro["baixo-E"] + "|" + tabuleiro["baixo-M"] + "|" + tabuleiro["baixo-D"]
)
# Função que coloca as peças X no tabuleiro
def coloca_pecas_X(tabuleiro):
desenha_tabuleiro(o_tabuleiro)
print("Faça sua Jogada (topo,D). Ex: topo-M")
jogada = input()
jogada[-1] = jogada[-1].upper()
tabuleiro[jogada] = " X "
desenha_tabuleiro(o_tabuleiro)
print("\n\n\n\n")
# Função que coloca as peças O no tabuleiro
def coloca_pecas_O(tabuleiro):
desenha_tabuleiro(o_tabuleiro)
print("Faça sua Jogada (topo,D). Ex: topo-M")
jogada = input()
jogada[-1] = jogada[-1].upper()
tabuleiro[jogada] = " O "
desenha_tabuleiro(o_tabuleiro)
print("\n\n\n\n")
def proxJogada():
contador = 1
while contador == 1 or contador == -1:
if contador == 1:
print("Sua vez,X")
coloca_pecas_X(o_tabuleiro)
contador = contador * -1
else:
print("Sua vez,O")
coloca_pecas_O(o_tabuleiro)
contador = contador * -1
proxJogada()
请注意,该说明尚未完成,因为我希望消除这种疑问。
解决方法
字符串是不可修改的对象。
但是您可以使用类似以下内容的方法来代替尝试更改字符:
str = "lA lEchCe"
str = str.lower()
因此,请更改整个字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。