Python 所以我';I’’我试图找到一种方法来替换字符串中的项目,但似乎失败了
我有一张清单: 视觉=[''''''''''''''''''''''''''''''''''''''''''] 用户输入一个随机字母来查找结束词(游戏是hangman)我有办法打印出来,但它看起来像这样: _ o _ 而我希望它看起来像这样: _o_ 或: [“o”,“o”,“o”] 我不介意哪一个更喜欢第一个 到目前为止,我有:Python 所以我';I’’我试图找到一种方法来替换字符串中的项目,但似乎失败了,python,list,indexing,ipython,Python,List,Indexing,Ipython,我有一张清单: 视觉=[''''''''''''''''''''''''''''''''''''''''''] 用户输入一个随机字母来查找结束词(游戏是hangman)我有办法打印出来,但它看起来像这样: _ o _ 而我希望它看起来像这样: _o_ 或: [“o”,“o”,“o”] 我不介意哪一个更喜欢第一个 到目前为止,我有: visuals = ['_ ', '_ ', '_ '] userInput = input("Enter a letter to guess: ") index
visuals = ['_ ', '_ ', '_ ']
userInput = input("Enter a letter to guess: ")
index = 0
for ch in hangmanWord:
index += 1
if ch == userInput:
visuals = [w.replace([index], userInput) for w in visuals]
print(visuals)
但最后一行似乎不起作用(我认为这是替换行),它只是得出以下结论:
['_ ', '_ ', '_ ']
我希望用用户输入替换下划线
抱歉这么长。非常感谢您的帮助 将
index+=1
移动到if
语句之后,以使替换从0开始
对于替换程序,只需使用
visual[index]=userInput
。它将根据索引编辑可视化。此脚本解决了此问题
>>> hangmanWord = "hello"
>>> visuals = ['_'] *len(hangmanWord)
>>> ended = False
>>> while not ended:
... userInput = raw_input("Enter a letter to guess: ")
... for idx,ch in enumerate(hangmanWord):
... if userInput == hangmanWord[idx]:
... visuals[idx] = userInput
... print visuals
... ended = '_' not in visuals
...
Enter a letter to guess: a
['_', '_', '_', '_', '_']
Enter a letter to guess: h
['h', '_', '_', '_', '_']
Enter a letter to guess: e
['h', 'e', '_', '_', '_']
Enter a letter to guess: l
['h', 'e', 'l', 'l', '_']
Enter a letter to guess: o
['h', 'e', 'l', 'l', 'o']
join
str
的方法如何?[在视觉效果中为v打印(v,end='')
?aa并且您破坏了格式。join只是在末尾添加用户输入,而不是替换它。如果你知道用什么方法来做的话,这可能就是我现在做的方式join@user2829759您的方法只是在末尾添加用户输入,而不是替换下划线:除非我弄糟了