今天學習了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
都是變量賦值。。。