Python:Hangman TypeError:“str”对象不支持项赋值

2024-06-09 18:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在做一个刽子手计划,但我被卡住了。每当我输入一个正确的单词猜测,我总是得到错误的'str'对象不支持项目分配。在

这是我的代码:

import random

def displayBoard(randomWord):
    board = []
    for i in randomWord:
        board.append(' _ ')
    return ''.join(board)

def gameGuesses(randomWord):
    newBoard = displayBoard(randomWord)
    print(newBoard)
    mistakes = 6
    count = 0
    while not False and mistakes > 0:
       letterInput = input("\nPlease input a letter: ").upper()
       if letterInput in randomWord:
          letter = randomWord.index(letterInput)
          while count != letter:
              count += 1
              if count == letter:
                  >>>newBoard[count] = letterInput<<<#PROBLEM


       else:
           mistakes = mistakes - 1
           print("Incorrect letter.",mistakes,"remaining.")




wordList = ["Python","Hello","Random"]
randomWord = random.choice(wordList).upper()
gameGuesses(randomWord)

问题出在newBoard[count]=letterInput。我该如何用输入的正确字母替换下划线?在


Tags: inboardinputdefcountrandomprintletter
1条回答
网友
1楼 · 发布于 2024-06-09 18:30:50

newBoard是一个字符串,而字符串在Python中是不可变的,这就是不允许项赋值的原因。在

你必须建立一个新的字符串。例如,如果您想替换'helloworld'中位置4(o)的字符,您可以发出

>>> s = 'helloworld'
>>> s = s[:4] + 'X' + s[5:]
>>> s
'hellXworld'

另一个选择是使用bytearray:

^{pr2}$

相关问题 更多 >