字符串.替换()似乎不是

2024-06-30 13:11:38 发布

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

所以我有一个functionguess_check(guess),由prompt()function调用

Prompt()调用guess_check(),因此guess是一个包含字母字符的单工作string。你知道吗

word是一个变量="placeholder"

下面是我遇到问题的代码:

if guess in word:
    word.replace(guess, '*')
print word

如果我让guess=“a”我会预期word=“pl*ceholder”,但它不会改变。你知道吗

为什么单词variable不改变,我怎样才能让它按我的意愿改变呢?你知道吗


Tags: 代码instringifcheck字母function字符
1条回答
网友
1楼 · 发布于 2024-06-30 13:11:38

字符串是不可变的,因此需要重新分配方法调用的结果:

if guess in word:
    word = word.replace(guess, '*')
print word

根据经验,不可变对象(字符串、元组等)上的方法通常返回一个新值,而可变对象(列表、dict、集合等)上的方法则就地修改对象,这就是为什么您可以这样做

>>> l = [3, 2, 4, 1]
>>> l.sort()
>>> l
[1, 2, 3, 4]

但不是(这是另一个典型的初学者的错误)

>>> l = l.sort()

因为list.sort()不返回任何内容(这意味着它返回None),所以该行将None分配给l

>>> print l
None

相关问题 更多 >