stringreplace似乎没有工作
我最初尝试使用=
运算符来分配值,但它返回一个错误,然后我尝试使用string.replace()
:
encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)
和
encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 2)
但它正在返回原来的价值。
帮助了解如何正确使用replaceAPI来提供正确的结果还有其他任何可以用来代替unichr()
API。
encrypted_str
是由用户从encrypted_str = raw_input()
dec_str2
是用户input的freqstring。 这个问题几乎不涉及我想知道如果我正在使用replcae()
API错误的variables,因为它给了我不变的输出为encrypted_str
我们可以使用encrypted_str[j]
将返回一个字符从string定义子stringreplace()
API。 我用encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 1)
max取代1而不是2 (因为我只需要一个replace)。
我需要做的实际操作将在C中,如下所示: encrypted_str[j] = dec_str2[k] -32
。
由于我是新来的python我试图find一个替代品。
Python中的string是不可变的。 这意味着给定的string对象在创build后永远不会改变其值。 这就是为什么像some_str[4] = "x"
这样的元素赋值会引发exception。
出于类似的原因, str
类所提供的方法都不能改变string。 所以, str.replace
方法不能按照我所期望的方式工作。 它并没有就地修改string,而是返回一个新的string和所要求的replace。
尝试:
encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)
如果你打算做很多这样的replace,那么将string转换成字符列表,逐个进行修改,然后使用str.join
将列表再次变成一个string,重做。
Pythonstring是不可变的。 这意味着一个string不能被你的文章中描述的方法调用修改。 您必须使用赋值才能使用方法调用中返回的string。
例如:
encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)
现在encrypted_str
包含新的值。