Python中的字符串的不可改变以及间接修改方法
今天学习了Python基础语法,其中学习到Python中的字符串不能改变
我有点疑惑,印象中好像可以改变,于是我从资料中了解到一些关于Python中的字符串问题
首先Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符
那么我为什么会产生疑惑呢?直接上代码
name = "Jone" name = "Lone" print(name) #运行结果Lone
你看这不是改变了吗?
这好像同样是name,输出结果不同,改变了,其实不然
上述例子虽然看起来都是name,但之后是变量赋值了
这样可能有点不明白,直接上代码
name = "Jone" print(id(name)) #运行结果2179285603248 name = "Lone" print(id(name)) #运行结果2179286385192
你看变量name是没有变,但是指向的字符串变了,也就是说这种改变是用新的字符串直接替换旧的字符串,而不是在原来的字符串本身改变
而不能改变的意思是不会因为其他操作导致自身变化
下面的代码
name = "Jone" name[0] = "L" print(name)#运行结果报错,提示TypeError: 'str' object does not support item assignment
这才是Python中的字符串不能改变的意思
虽然不能直接改变字符串的类型,但我们可以间接修改啊
于是我查找资料,归纳了几个间接修改的方法
1)就是上面的变量赋值啦
name = 'Jone'
name = 'Lone'
print(name) #运行结果Lone
name = 'Jone'
name += 'peng'
pqint(name) #运行结果Jonepeng
2)使用replace函数
#语法str.replace(old, new[, max])
name = 'Jone'
print(name.replace('J','L')) #运行结果Lone
其实到这里觉得好像都可以用第一种方法
你看代码
#语法str.replace(old, new[, max]) name = 'Jone' name = name.replace('J','L') print(name) #运行结果Lone
都是变量赋值。。。