我正在创建一个刽子手程序,我使用 list()
函数将单词转换为一个列表,其中每个字母都是自己的元素 . 当用户输入字母作为猜测时,我希望从列表中删除该字母 . 我已经尝试了 list.remove(obj)
函数并且它不起作用,因为当我在shell中键入列表的名称时,没有删除任何字母 .
wordList=list(word)
letter=input("please enter a letter")
if len(letter)>1:
print('invalid input, you may only enter one letter at a time')
elif letter.isalpha():
if letter in letters:
print('you have already entered this letter')
else:
letters.append(letter)
if any(letter in s for s in wordList,):
print(letter,"is in the word")
wordList.remove(letter)
编辑了长度 . 任何想法为什么不从 wordList
删除字母?
2 回答
我能够运行你的代码 . 建议删除多次出现的字母的小改动 .
list.remove() - 仅删除第一次出现的字母 . 你可以使用:
我重新创建了它,它对我有用:
但是我不认为这是解决问题的正确方法,因为.remove()仅适用于列表中的第一个匹配,你可以尝试类似的东西
这样你就可以取代一个完整的列表,每次插入rigth字母时都会删除,你将有一个空的(实际上是'_'个字符)列表,每次插入正确的字母时都会将字母添加到其位置,就像你那样可以像这样打印当前的单词
我做了这样的游戏,它在我的github上,说明是西班牙语,但很容易跟进