python字符串为什么不能修改_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

有时间再补充。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值