字符串--一串字符斜姥,python 要求字符串必須使用引號括起來鸿竖,可以單引號沧竟,也可以雙引號
2.4.1 字符串和轉(zhuǎn)義字符
字符串的內(nèi)容幾乎可以包含任何字符,中英文都可以缚忧∥虮茫可以單引號或雙引號括起來
如果字符串內(nèi)容本身包含了單引號或雙引號,此時需要做特殊處理
- 使用不同的引號將字符串括起來
- 對引號進(jìn)行轉(zhuǎn)義
str3='I'm a coder' #這種錯誤的闪水,python會把字符串中的單引號與第一個單引號配對糕非,導(dǎo)致m a coder'變成多余的
str3="I'm a coder" #正確寫法
str4='"spring is here,let us jam!",said woodchuck' #另一種寫法,本身包含雙引號球榆,用單引號括起來
str5 = '"We are scared,Let\'s hide in the shade",says the bird'#同時有單引號雙引號朽肥,用\來轉(zhuǎn)義
2.4.2 拼接字符串--加號(+)
s2="python"
s3="is Funny"
#使用+拼接字符串
s4=s2+s3
print(s4)
運(yùn)行結(jié)果
pythonis Funny
2.4.3 str()轉(zhuǎn)換成字符串
python 不允許直接拼接數(shù)字和字符串,需要將數(shù)字轉(zhuǎn)成字符串持钉,用str()函數(shù)衡招。
s1 = 'aaa'
s2 = 99.8
print(s1 + s2) # 運(yùn)行結(jié)果會報錯,提示 TypeError: can only concatenate str (not "float") to str
print(s1 + str(s2)) # 運(yùn)行結(jié)果:aaa99.8
2.4.4 使用input()獲取用戶輸入
input函數(shù)用于向用戶生成一條提示每强,然后獲取用戶輸入的內(nèi)容始腾。 input()函數(shù)總是返回一個字符串
msg = input("請輸入你的值:")
print(type(msg))
print(msg)
運(yùn)行結(jié)果:
請輸入你的值:2
<class 'str'>
2
2.4.5 長字符串
使用三個引號括起來的長字符串可以賦值給變量
2.4.6 原始字符串
原始字符串以“r”開頭,原始字符串不會把反斜線\當(dāng)成特殊字符空执,不會進(jìn)行轉(zhuǎn)義
s1=r'D:\auto\report'
print(s1)
運(yùn)行結(jié)果:
D:\auto\report
2.4.7 字節(jié)串(bytes)
字符串(str)由多個字符組成浪箭,以字符為單位進(jìn)行操作,不可變序列
字節(jié)串(bytes)由多個字節(jié)組成辨绊,以字節(jié)為單位進(jìn)行操作山林,不可變序列
bytes對象只負(fù)責(zé)以字節(jié)(二進(jìn)制格式)序列來記錄數(shù)據(jù)。
# 創(chuàng)建一個空的bytes
b1 = bytes()
# 創(chuàng)建一個空的bytes值
b2 = b''
# 通過b前綴指定hello是bytes類型的值
b3 = b'hello'
print(b3)
print(b3[0])
print(b3[2:4])
# 調(diào)用bytes方法將字符串轉(zhuǎn)換成bytes對象
b4 = bytes('我愛Python編程', encoding='utf-8')
print(b4)
# 利用字符串的encode()方法邢羔,編碼成bytes驼抹,默認(rèn)使用UTF-8字符集
b5 = '學(xué)習(xí)python很有趣'.encode('utf-8')
print(b5)
運(yùn)行結(jié)果:
上面程序中b1-b5都是字節(jié)串對象,其中b2拜鹤、b3都是直接在ASCII字符串前添加b前綴來得到字符串的框冀;b4調(diào)用bytes()函數(shù)來構(gòu)建字節(jié)串;b5調(diào)用字符串的encode方法來構(gòu)建字節(jié)串敏簿。
b'hello'
104
b'll'
b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b'
b'\xe5\xad\xa6\xe4\xb9\xa0python\xe5\xbe\x88\xe6\x9c\x89\xe8\xb6\xa3'