字符串的基本操作
索引 index
python字符串是不可以改變的字符序列
索引取值語法:
字符串[整數表達式]
說明:
python的序列都可以用索引(index) 來訪問序列中的對象
python序列的正向索引是從0開始的,第二個索引爲1,最
後一個索引爲len(s)-1
python序列的反向索引是從-1開始的,-1代表最後一個,
-2代表倒數第二個,以此類推。第一個是-len(s)
示例:
s = "ABCDE"
print(s[1]) # B
print(s[4]) # E
print(s[-1]) # E
print(s[-5]) # A
print(s[100]) # IndexError 越界
切片 slice
作用:
從字符串序列中取出相應的元素重新組成一個新的字符串
語法:
字符串[(開始索引b):(結束索引e)(:(步長s))]
注:
小括號() 括起來的部分代表可省略
說明:
開始索引是切片開始切下的位置,0代表第一個元素,1代表
第二個元素,-1代表最後一個....
結束索引是切片的終止索引(但不包含終止點)
步長是切片每次獲取完當前元素後移動的方向和偏移量
1. 沒有步長,相當於步長爲1(默認爲1)
2. 當步長爲正整數時,取正向切片:
開始索引默認爲0,結束索引默認是最後一個元素的
下一個位置
3. 當步長爲負整數時取反向切片:
反向切片時,默認的起始位置爲最後一個元素,終止
位置是第一個元素的前一個位置
示例:
s = "ABCDE"
a = s[1:4] # a---> "BCD"
a = s[:4] # 'ABCD'
a = s[1:] # 'BCDE' # 等同於s[1:5]
a = s[:] # 'ABCDE' # 等同於s[0:5]
a = s[1:1] # '' 空字符串
a = s[4:2] # '' 空
a = s[0:5:2] # 'ACE'
a = s[4:0:-2] # 'EC'
a = s[4::-2] # 'ECA'
a = s[::-1] # 'EDCBA'
python中能用於字符串的函數:
len(x) 返回字符串長度
max(x) 返回字符串編碼值最大的字符
min(x) 返回字符串中編碼值最小的字符
**字符串的編碼轉換函數:**
ord(c) 返回一個字符c的unicode編碼值
chr(i) 返回i這個值所對應的字符
示例:
x = ord('A') # x = 65
c = chr(66) # c = 'B'
**整數轉換爲字符串的函數:**
bin(i) 將整數轉換爲二進制字符串
oct(i) 將整數轉換爲八進制字符串
hex(i) 將整數轉換爲十六進制字符串
**字符串構造(創建)函數:**
str(obj) 將對象轉換爲字符串
示例:
'123' + 456 # 出錯
'123' + str(456) # 結果 '123456'
**python中常用的字符串方法(method)**
方法的調用語法:
對象.方法名(方法傳參)
示例:
'abc'.isalpha() # 返回True
'123'.isalpha() # 返回False
123.isalpha() # 出錯
字符串格式化表達式
作用:
生成一定格式的字符串
運算符:
%
語法格式:
格式化字符串 % 參數值
格式化字符串 % (參數值1, 參數值2, 參數值3, ...)
說明:
格式化字符串中以%開頭的字符爲佔位符,佔位符的位置將
用參數值替換
示例:
fmt = "name: %s, age: %d"
s2 = fmt % ("Tarena", 15)
fmt2 = "年齡: %d"
s3 = fmt2 % 35
**格式化字符串中的佔位符類型碼**
佔位符和類型碼 含義
%s 字符串,使用str(x) 函數轉換
%r 字符串,使用repr(x) 函數轉換
%c 整數轉爲單個字符
%d 十進制整數
%o 八進制整數
%x 十六進制整數(字符a-f小寫)
%X 十六進制整數(字符A-F大寫)
%e 指數形浮點數(e小寫) 如: 2.9e8
%E 指數形浮點數(E大寫) 如: 2.9E8
% f,%F 浮點十進制數
%g,%G 十進制形式浮點或指數浮點自動轉換
%% 等同於一個%字符
佔位符和類型碼之間的格式語法
% [ - + 0 寬度.精度 ] 類型碼
- 左對齊(默認是右對齊)
+ 顯示正號
0 左側空白位置補零
寬度 整個數據輸入的寬度
精度 保留小數點後多少位(默認爲6位)
示例:
"%10d" % 123 # ' 123'
"%-10d" % 123 # '123 '
"%10s" % "abc" # ' abc'
'%-5s' % 'abc' # 'abc '
'%05d' % 123 # '00123'
'%+05d' % 123 # '+0123'
'%7.3f' % 3.1415926535 # ' 3.142'