我正在处理Python中的Hangman问题,要求我定义一个以字符串string.ascii_lowercase
(字母表中的字母)和给定列表lettersGuessed
开头的函数,以及返回字母Guessed中不的所有字母的字符串(按字母顺序排列)。
这是我到目前为止所做的:
def getAvailableLetters(lettersGuessed):
s = string.ascii_lowercase[:]
for letter in string.ascii_lowercase:
if letter in lettersGuessed:
s.replace(letter, '')
return s
但是,对于lettersGuessed
的每个测试值,此函数只返回string.ascii_lowercase
,而不是s
。
我哪里错了?|
答案 0 :(得分:0)
方法replace()不编辑字符串。相反,它返回一个字符串的副本,其中旧的出现已被new替换。所以第五行应该是这样的:
s = s.replace(letter, '')
答案 1 :(得分:0)
您应该执行以下操作。
s = s.replace(letter, '')
而不仅仅是:
s.replace(letter, '')
因为,replace()返回返回字符串的副本,其中所有出现的substring old都替换为new。请看以下示例。
s = "welcome to stackoverflow"
s.replace('stackoverflow', '')
print(s) # prints 'welcome to stackoverflow'
s= s.replace('stackoverflow', '')
print(s) # prints 'welcome to'