所以我有一个由function
guess_check(guess)
prompt()
function
Prompt()
调用guess_check()
,以便猜测是一个包含字母字符的作品string
。
word是变量= "placeholder"
以下是我遇到问题的代码:
if guess in word:
word.replace(guess, '*')
print word
如果我做猜测=" a"我期待word =" pl * ceholder",但它没有改变。
为什么单词变量不会改变,我怎样才能让它随意改变?
答案 0 :(得分:3)
字符串是不可变的,因此您需要重新分配方法调用的结果:
if guess in word:
word = word.replace(guess, '*')
print word
根据经验,不可变对象(字符串,元组等)上的方法通常会返回一个新值,而可变对象(列表,字符串,集等)上的方法会就地修改对象,这就是为什么你可以做到
>>> l = [3, 2, 4, 1]
>>> l.sort()
>>> l
[1, 2, 3, 4]
但不是(这是另一个典型的初学者的错误)
>>> l = l.sort()
因为list.sort()
没有返回任何内容(这意味着它返回None
),因此该行会将None
分配给l
:
>>> print l
None