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

都是變量賦值。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM