python基礎之字串

2021-07-09 11:10:18 字數 2666 閱讀 6226

1.單引號字串和轉義引號

在python中,字串是用單引號或者雙引號括起來,在表示字串的時候,單引號和雙引號有什麼區別嗎?事實上並沒有。

在某些特殊情況時候,單引號和雙引號是不能換線交換的,比如在乙個字串中包含了雙引號,那麼這個字串就必須用單引號括起來,反之,乙個字串中包含了單引號,那麼這個字串就必須用雙引號括起來。否則會報錯。

當然,有時候我們並不需要這樣做,我們有另乙個選擇——使用反斜線(\)對字串中的引號經行轉義:

python會明白中間的單引號就是字串中的乙個字元,而不是字串的結尾,大家可能也已經猜到了,字串中的雙引號也可以用同樣的方式轉義。

但是有些情況需要同時用雙引號和單引號的時候,反斜線會顯得十分麻煩,後面會介紹通過使用長字串和原始字串來減少使用反斜線。

2.拼接字串

繼續研究剛剛的例子,我們可以通過另一種方式輸出字串:

我們可以用乙個接著另乙個的方式拼接字串。不過,它們只是在同時寫下兩個字串時候才有效,而且需要乙個接著另乙個:

換句話說,這只是乙個 特殊的拼接方法,如果需要一般的拼接字串的話,就像進行加法運算一樣:

3.字串表示,str和repr

前面的例子你可能已經注意到了,所有通過python列印的字串還是被括號括起來的。這是因為python列印出來的值都會保持在python**中的狀態,而不是你希望使用者看到的。如果使用print就不一樣了:

實際上我們是在討論值被轉換為字串的兩種機制,我們這裡可以通過兩個函式實現:一種是通過str函式,把值轉換成為合理形式的字串,以方便使用者理解;另一種就是通過repr函式,它會建立乙個字串,以合法的python表示式的形式來表示。下面是例子:

本處用str也可以實現。第乙個將temp的值轉換為2了和反引號一樣,所以得到了結果,而第二個不能工作,因為字串不可以和數字進行相加。

簡而言之,str,repe,反引號都是將字串的值轉換為字串。函式str轉換為便於閱讀的字串換,其他兩個轉換為標準的python表示式。

注意:python3.0以後就廢除了反引號,所以堅持使用repr()不用反引號。

4.input和raw_input的比較

name=input("what is your name?");

print 'hello.'+name+'!';

這個看起來是乙個合法的程式,但是執行的時候你會發現是不行的:

問題就在於input會假設使用者輸入的是標準的python表示式。如果輸入字串的話就可以執行:

當然,要求使用者輸入標準python表示式是比較過分的,所以就需要使用raw_input函式,他會把所有輸入的資料當做原始資料,然後放入字串中:

name=raw_input("what is your name?");

print 'hello.'+name+'!';

結果:

除非有特殊需要,否則盡量使用raw_input()。

5.長字串,原始字串和unicode

(1)長字串

如果需要寫乙個非常非常長的字串,它需要跨行,那麼就可以使用三個引號代替普通引號。

printf  '''like

this'''

也可以使用三個雙引號,因為這種方式與眾不同,所以你可以在字串之中同時使用單引號和雙引號,而不需要使用反斜槓轉義。

(2)原始字串

原始字串不會對反斜線特殊對待,換句話說,原始字串中的輸入的每乙個字元都會與書寫方式保持一致。但是注意:原始字串的最後乙個字元不能使反斜線,除非你對反斜線轉義。

原始字串以r開頭,當然,我們也要像平常一樣對原始字串中的引號進行轉義:

print r' let\'s it go '

(3)unicode字串

python中的普通字串都是在8位以內的ascii碼形成儲存的,而unicode字元則儲存16位unicode字元,通過這個方法表示字符集。

unicode字串的字首為u,在python3.0中,所有的字串都是unicode.

python基礎之字串

1.基本字串的操作 所有標準序列的操作 索引,分片,乘法,成員資格判斷,求長度,取最小和最大值 同樣適用,但是記住 字串都是不可變的。2.字串格式化 精簡版 字串的格式化可以使用字串格式化操作符 百分號 來實現。在 的左側放置乙個字串 格式化字串 而右側放置希望被格式化的值。可以使用乙個值,如乙個字...

python基礎之字串

字串的鏈結操作 用 字串的複製操作 用 字串的索引操作 通過索引可以訪問制定的位置的字元,索引從0開始 索引 列如 a hello world print a 0 輸出的結果 是 h 字串的擷取操作 完整格式 開始索引 結束索引 間隔值 從開始擷取到索引結束之前 結束索引之前 從開始索引擷取到字串最...

Python基礎之字串

字串類似於元組,不能隨意修改,但可以用切片的方式間接修改 字串各種奇葩的內建方法 1.capitalize 將第乙個字母改為大寫 2.casefold 將所有字母改為小寫 3.center width 字串居中,空格填充 把字串的第乙個字元改為大寫 casefold 把整個字串的所有字元改為小寫 c...