1.Unicode字符串
在Python2中,普通字符串是以8位ASCII碼進(jìn)行存儲的,而Unicode字符串則存儲為16位unicode字符串疲吸,這樣能夠表示更多的字符集敞葛。使用的語法是在字符串前面加上前綴u
在Python3中,所有的字符串都是Unicode字符串
2.字符串的表示方式
在python中圾旨,字符串有4中表示方式:
# 單引號
A='Hello'
# 雙引號
B="Hello"
# 三單引號
C='''Hello'''
#三雙引號
D="""Hello"""
print("A:"+A+"\nB:"+B+"\nC:"+C+"\nD:"+D)
'''結(jié)果相同
A:Hello
B:Hello
C:Hello
D:Hello
'''
區(qū)別:
- 雙引號踱讨、單引號避免使用轉(zhuǎn)義字符。當(dāng)字符串中含有引號(如單引號)時砍的,使用與該引號不同(如雙引號)包含字符串可以直接使用該引號而不需進(jìn)行字符轉(zhuǎn)義:
# 使用轉(zhuǎn)義字符的例子:
print('I\'m learning Python')
# out: I'm learning Python
#使用雙引號包含字符串不需使用轉(zhuǎn)義字符串:
print("I'm learning Python")
# out: I'm learning Python
#另一個例子:
print('I have learnt "Python" language')
# out: I have learnt "Python" language
- 三引號使長字符串可直接跨行
(1) 單雙引號表示的字符串通常要寫成一行:
s = 'I am learning Python'
(2) 如果要寫成多行痹筛,就要使用(連行符):
s = "I am learning" \
"Python"
(3) 但是如果你使用三引號,就可以不使用連行符了:
s = """I am learning
Python"""
- 過長字符串的表示
除了上面所說的使用三單引號或三雙引號以及連行符" \ "進(jìn)行長字符串的跨行表示外廓鞠,還可以使用圓括號將字符串跨行連接在一起:
s= ("I am a "
"student")
print(s) # out: I am a student
3.轉(zhuǎn)義字符串
轉(zhuǎn)義字符 | 含義 |
---|---|
\newline | 忽略換行 |
\ | 續(xù)行符 |
\ | 打印結(jié)果中間隔了一個反斜杠 |
' | 單引號 |
" | 雙引號 |
\a | 響鈴 |
\b | 退格 |
\e | 轉(zhuǎn)義 |
\f | 換頁 |
\r | 回車 |
r | 取消轉(zhuǎn)義 |
\n | 換行 |
\t | 橫向制表符 |
\v | 縱向制表符 |
\oyy | 八進(jìn)制數(shù)帚稠,yy代表的字符,例如:\o12代表換行 |
\xyy | 十六進(jìn)制數(shù)床佳,yy代表的字符滋早,例如:\x0a代表換行 |
\other | 給定名稱的Unicode字符,name是一個標(biāo)準(zhǔn)Unicode名稱 |
r:取消轉(zhuǎn)義字符的作用——原始字符串
在字符串前使用r前綴砌们,能夠使字符串中的轉(zhuǎn)義字符失去轉(zhuǎn)義作用而直接作為字符串輸出杆麸。例如:
print("C:\nowhere") # 我們想輸出C:\nowhere
# 結(jié)果卻發(fā)生了轉(zhuǎn)義:
'''
C:
owhere
'''
# 這時應(yīng)該使用r產(chǎn)生原始字符串:
print(r"C:\nowhere")
# out: C:\nowhere
4.字符串拼接(包含字符串拼接數(shù)字)
連續(xù)的兩個“” “”可以使兩個雙引號內(nèi)的字符串拼接在一起。而實際上這并不是拼接字符串浪感,只是一種書寫字符串的特殊方式
print("hello" "world")
# out: hello world
4.1 字符串與字符串的拼接
strname = "str1" "str2"
strname 表示拼接以后的字符串變量名昔头,str1 和 str2 是要拼接的字符串內(nèi)容。使用這種寫法影兽,Python 會自動將兩個字符串拼接在一起揭斧。
x = "hello"
y = "world"
info = x + y
print(info) # out: helloworld
4.2 字符串和數(shù)字的拼接
在Python 不允許直接拼接數(shù)字和字符串,所以必須先將數(shù)字轉(zhuǎn)換成字符串峻堰。
需要借助
str()
和repr()
函數(shù)將數(shù)字轉(zhuǎn)換為字符串讹开,它們的使用格式為:
str(obj)
repr(obj)
obj 表示要轉(zhuǎn)換的對象盅视,它可以是數(shù)字、列表萧吠、元組左冬、字典等多種類型的數(shù)據(jù)。
name = "小明"
age = 8
info = "今年" + name + "已經(jīng)" + str(age) + "歲了"
print(info) # out: 今年小明已經(jīng)8歲了
5.數(shù)值轉(zhuǎn)換為字符串:str()
與repr()
str()
和 repr()
的區(qū)別
str()
和 repr()
函數(shù)雖然都可以將數(shù)字轉(zhuǎn)換成字符串纸型,但兩者之間的目標(biāo)不同:
-
str()
主要面向用戶拇砰,其目的是可讀性,返回形式為用戶友好性和可讀性都較強的字符串類型狰腌; -
repr()
面向的是python解釋器除破,或者說開發(fā)人員,其目的是準(zhǔn)確性琼腔,其返回值表示python解釋器內(nèi)部的含義瑰枫,常作為編程人員debug用途。
repr()
的返回值一般可以用eval()
函數(shù)來還原對象丹莲,通常來說有如下等式:
obj = eval(repr(obj))