1.什么是字符串(str):
- python自帶的容器型數據類型(序列),不可變有序
- python中的字符串使用單引號或者雙引號引起來的字符集;
引號里面的每個基本單元叫字符
2.字符
python中只有字符概念,沒有字符類型
- 普通字符:數字、字母、中文、日語、普通符號等
str1 = "123 and 你好!!@#¥% ?"
2.轉義字符
在特定的字符前\來表示特殊功能或者特殊意義的字符
\n ->換行
\' \" ->單引號和雙引號本身
\\ ->讓一個\失去轉義的功能
\t ->制表符
阻止轉義:可以在字符串的最前面加r,R,能夠阻止所有的轉義字符轉義
str1 = r'\thow\nare\nyou\"'
print(str1)
- 編碼字符:在字符串\u四位的十六進制數 來表示一個字符
str1 = '123\u1234' # \u字符編碼值的 16進制數
print(str1)
字符編碼:
計算機本身只有直接存儲數字的能力(二進制的補碼),為了能夠存儲數字以外的符號
開發人員給每個字符對應一個固定的數字用來對字符進行存儲,每個字符對應的固定
的數字就是字符的編碼值。
每個字符和數字的一一對應關系就是字符編碼表,常見的編碼表有:ACSII碼表、Unicode編碼表
ACSII碼表采用一個字節對字符進行編碼:0-127
Unicode表采用2個字節對字符進行編碼:包含了ASCII表
chr()函數:chr(編碼值) - 獲取編碼值對應的字符
ord()函數:ord(字符) - 獲取指定字符對應的編碼
3.字符串的操作:查
- 獲取單個字符
語法:字符串[下標] - 獲取指定下標對應的字符
說明:字符串 - 結果是字符串的表達式(字符串值、支付穿變量、運算結果是字符串)
[] - 固定寫法
下標 - 又叫索引,字符串確定后,字符串中的每一個字符都有確定的下標,表示這個字符在字符中的位置。
python中下標有兩種,位置從后往前是0字符串長度-1;位置從后往前是-1字符串長度
注意:獲取單個字符的時候下表不能越界
str1 = 'hello'
print(str1[0], str1[3])
print(str1[-1])
- 獲取部分字符(字符串切片)
語法:字符串[開始下標:結束下標:步長] - 從開始下標開始獲取,每次增加步長取下一個取到結束下標前為止
說明:字符串 - 結果是字符串的表達式
[]/: - 固定寫法
開始下標 - 下標,整數。能取到對應的字符
結束下標 - 下標整數。對應的字符取不到
步長 - 整數。如果是正數,從前往后取;如果是負數,從后往前去取
注意:
1.字符串切片的結果都是字符串
2.如果步長是正數,開始下標對應的字符要在結束下標對應的前面,才能取到值;如果步長是負數,那么開始下標對應的字符要在結束下標對應的字符的后面,才能取到值
str2 = 'abc+123'
print(str2[0:3:1])
print(str2[2:-2:1]) # c + 1
print(str2[0:-1:1]) # 321+
print(str2[-1:1:-2]) # 31c
3.切片的實收下標可以越界
3.獲取部分字符的簡寫
1.省略步長(步長為1的時候)
str2 = 'abc+123'
print(str2[0:3])
2.省略開始下標 - 步長為正從頭往后獲取;步長為負從后往前獲取
語法:字符串[:結束下標:步長]、字符串[:結束下標]
str2 = 'abc+123'
print(str2[:3]) # abc
3.省略結束下標:步長為正,取到字符串最后一個為止;步長為負取到第一個為止
語法:字符串[開始下標::步長]、字符串[開始下標:]
str2 = 'abc+123'
print(str2[1:]) # bc+123
print(str2[1::-1]) # ba
print(str2[:]) # abc+123
print(str2[::-1]) # 321+cba
4.遍歷字符串 - 將字符串中的字符一個一個的取出來
str2 = 'abc+123'
for x in str2:
print(x)
for x in range(len(str2)):
print(str2[x])
5.字符串的相關操作
1.字符串的運算
1.數學運算符:+,* -> +:字符串的拼接;*:字符串重復輸出幾次
str1 = 'abc' + 'hello' # 字符串的拼接
str1 = 'abc' * 3
2.比較運算符:>,<,>=,<=,==,!=(針對兩個字符串的比較)
字符串比較大小,實際比的是字符串的編碼值
應用:
判斷一個數字是否是小寫字母:'a' <= char <= 'z'
判斷一個數字是否是大寫字母:'A' <= char <= 'Z'
判斷一個數字是否是字母:'a' <= char <= 'z' or 'A' <= char <= 'Z'
判斷一個字符是否是中文(4e00 - 9fa5):'\ue400' <= char <= '\u9fa5'
3.賦值運算符:=,+=,*=
2.in 和 not in :判斷一個字符串是否在另一個字符串中
3.len():len(字符串) -> 獲取字符串中字符串的個數
4.str(數據):將其他類型數據轉換成字符串(所有類型的數據都可以轉成字符串)
5.格式字符串:在字符串中用格式占位符代替字符串中變化的部分,然后再使用數據對變化的部分進行賦值
語法:包涵格式占位符分字符串%(數據1,數據2)
說明:數據的個數和類型要和前面的字符串格式占位符的格式和類型保持一致
格式占位符:
%s - 字符串
%d - 整數
%.Nf - 浮點數 ->(N控制小數后小數的位數)
%c - 字符
name = input('請輸入你的名字:')
age = int(input('請輸入你的年齡:'))
money = float(input('請輸入你的薪資(K):'))
print('我是%s,今年%d歲,每個月工資%.1fK' % (name, age, money))
6.字符串的對象方法
字符串.函數名()
1.字符串.capitalize() - 將字符串中的第一個字符轉換成大寫字母
str1 = 'abc'
print(str1.capitalize())
print('++++++++')
2.設置對齊方式
"""
字符串.center(width, fillchar) - 讓字符串在新字符串中居中,width控制新字符串的寬度,fillchar設置填充字符
字符串.rjust(width, fillchar)
字符串.ljust(width, fillchar)
字符串.zfill(width) <==> 字符串.rjust(width, '0')
"""
str2 = 'abc'
print(str2.center(8, '+'))
print(str2.ljust(7, '/'))
print(str2.rjust(7, '='))
num = 15
print('學號:', str(num).rjust(3, '0'))
print('學號:', str(num).zfill(3))