先讨论一下它的用法:
str1 = “abcdef”
str.replace(old,new,[max]) 方法用于字符串的修改,将字符串 str 中的字符 old 替换为新的 new 字符串,max 是可选参数,可以写也可以不写,不写的情况下,表示将 str 中所有的 old 替换为 new,写之后表示最大替换次数。
最后将修改后的字符串给返回,他是有返回值的
例如:
str1= "abcdef"
print(str1.replace("abc","AAA"))
运行结果:
AAAdef
但是,字符串是不可以修改的类型,它并没有修改以前的 str,可以看下列代码:
str1 = "abcdef"
print(str1.replace("abc", 'AAA'))
print((str1))
print(id(str1))
print(id(str1.replace("abc",'AAA')))
输出:
AAAdef
abcdef
2140668440368
2140669587248
以前的还是以前的,他们的内存不一样,当你引用 str1 这个变量的时候,并没有得到你想要的修改后的值,如果你想要通过 str1 的引用得到修改后的值,那么,将 str1 这个变量指向修改后的内存地址即可(目前我只知道这种方法,其他方法比较麻烦,不过都修改不了最初 str1 内存里的值):
str1 = "abcdef"
print(str1)
print(id(str1))
str1 = str1.replace("abc",'AAA')
print(str1)
print(id(str1))
输出:
abcdef
2140668440368
AAAdef
2140669742000
仔细看看,转换前后 str1 的内存地址发生了变化,这是因为将 str 变量指向了修改后的。
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh