一、表示方法
1.1常規表示
單引號和雙引號的區別
單引號內可以包含雙引號
雙引號內可以包含單引號
三引號的作用
三引號字符串中的換行會自動轉換為換行符 ‘\n’
三引號內可以包含單引號和雙引號
三引號,可以折行,可以回車;單引號和雙引號不行
隱式字符串字面值的拼接
S = “I’m” ‘ a programmer’
空字符串的布爾值為False,只要是空的就是False
1.2轉義
\’
單引號 ’
\v
垂直制表符
\”
雙引號 ”
倒退
\\
反斜杠\
\0
空字符(字符值為0)
\n
換行
\0oo
oo為兩位八進制表示的字符
返回光標至行首
XX為兩位十六進制表示的字符
\f
換頁
Unicode16的十六進制表示的字符
unicode32的十六進制表示的字符
常用ASCII編碼:記!
字符
十進制
十六進制
‘0’
48
0x30
‘A’
65
0x41
‘a’
97
0x61
1.3 raw字符串
作用
讓轉義符\無效
語法
單引號、雙引號、三引號將字符串內容括起來
示例
s= r‘C:\newfile\test.py’
二、字符串運算
2.1算術運算:
+ +=
拼接字符串
* *=
重復打印字符串(只能乘整數)
2.2比較運算:
>= == !=
第一位和第一位相比,再第二位相比,直到比出勝負
“A” == ‘A’ >>> True
‘A’ >>True
‘ABC’ > ‘ABB’ >>>True
‘ADC’ < ‘ABC’ >>>False
三、索引 和 切片
3.1索引 index
字符串 [ 整數表達式 ]
一定要是整數
字符串不可以改變字符序列
Python序列都可以用索引index來訪問序列中的對象
正向索引從0開始,最后一個為len(s) – 1,
反向索引從-1開始,第一個為 -len(s)
3.2切片 slice
從字符串序列中取出一部分相應的元素重新組成一個字符串
字符串 [ (開始索引b ) : (結束索引e)(:(步長s)) ]
注:括號內,可省略
A.開始索引
切片開始切下的位置0代表第一個元素,-1為最后一個元素
B.結束索引
切片的終止索引,但不包含終止索引
C.步長
切片每次切完當前索引后移動的方向和偏移量
a.默認為1:相當於取值完成后向后移動一個索引的位置()
b.當步長為正整數時,取正向切片
步長默認值為1,開始索引默認值為0,結束索引默認值為len(s)
c.步長為負整數,反向切片
默認的起始位置為最后一個元素,默認終止位置為第一個元素的前一個位置
例
1. s = ‘ABCDE’
a = s[ 1 : 4 ]
a = s[ 1 : 1 ]
a = s[ 1 : ]
a = s[ : 2 ]
a = s[ : ]
a = s[4 : 2 ]
a = s[2 : 10000]
>>> ‘BCD’
>>>‘ ’
>>>‘BCDE’
>>>‘AB’
>>>‘ABCDE’
>>>‘ ’
>>>‘CDE’ 開始索引/結束索引可以越界
2. s [ : : 2 ]
s [3 : : -1]
s [ : : -1]
s[ 4 : 0 : -2]
>>>‘ACE’
>>> 'dcba'
>>>‘EDCBA’
>>>‘EC’
四、 字符串方法
4.1 常見方法
對象 . 方法名(方法傳參)
‘abc’. isalpha( )
123 . isalpha( )
>>>正確的做法
>>>錯誤的
s. isdigit()
是否為數字
s. isalpha()
是否為全英文字母
s. islower()
是否全小寫
s. isupper()
是否全大寫
s.count(stub,。。。)
返回sub字符串的個數
s.find(sub)
查找sub的index
s.strip()
去掉左右空白字符(\n,\r,‘ ’,\t)
s.replace(old,new)
替換
s.startswith(s)
是否以s開頭
s.endswith(s)
是否以s結尾
4.2文本解析方法
S.split(sep=None)
用分隔符sep分割字符串S,分割后,返回字符串列表。sep默認為空白字符(\n\t\r都為空白字符)
S.join(iterable)
用iterable提供的字符串,中間用S進行分隔,返回一個字符串
示例
S = ‘beijing is capital’
L = s.split(‘ ’)
>>> L = [‘beijing’,‘is’,‘capital’]
L = [“C:”,“Windows”,“System32”]
S = ‘\\’.join(L)
>>>s = r“C:\Windows\System32”[W用7]
五、字符串格式化表達式
5.1規則
運算符
%
作用
生成一定格式的字符串
語法
格式字符串 % 參數值
格式字符串 % (參數值1,參數值2, 。。。)
說明
格式字符串中的%為占位符,占位符的位置將用參數值替換
示例
fmt = “姓名:_%s_ ,年齡:_%d_”
Name = input(“請輸入姓名:”)
Age = int(input(“請輸入年齡:”))
S = fmt % (name,age)
Print(s)
5.2占位符和類型碼
占位符
意義
%s
字符串,使用str函數轉換
%r
字符串,使用repr函數轉換
%c
整數轉為單個字符,相當於用chr()轉換
例:“%c” % 3000 >>> chr(3000)
%d
十進制整數
%o
轉成八進制整數
%x ,%X
轉成十六進制整數(a-f小寫),(A-F大寫)
%e ,%E
指數型浮點數(e小寫),(E大寫)
例:2.9e+10 2.9E+10
%f,%F
浮點十進制形式(默認小數點后面6位)
%g,%G
十進制形式浮點數或指數浮點數自動轉換
%%
等同於一個%字符
例:“%d%%” % 50 >>> 50%
5.3占位符和類型碼之間的格式語法
格式
% [- + 0 寬度 精度] 類型碼
-
左對齊(默認右對齊)
+
顯示正號
0
左側空白位置補零
寬度
整個數據輸入的寬度
精度
保留一小數點后多少位(默認6位)示例:
Code
Note
“%10d” % 123
‘ 123’
(寬度為10,默認靠右)
“%-10d” % 123
‘123 ’
左對齊
‘%-+10d’% 123
‘+123 ’
左對齊,還有正號
‘%10s’ % ‘abc’
‘ abc’
‘%05d’% ‘123’
‘00123’
‘%-+5d’% 123
‘+123 ’
‘%.10f’% 1234.5678901234567890
1234.5678901234
.10 表示的是精度,小數點后面保留10位
‘%20.10f’% 1234.5678901234567890
1234.5678901234
寬度20,精度10,所以前面有5個空格。因為小數點也算一位
六、字符串相關的函數
6.1常用的序列函數
len()
返回長度
max()
返回序列最大編碼值元素
min()
返回序列最小編碼值元素
s = ‘hello’
print(len(s))
print(max(s))
print(min(s))
>>>5
>>>o
>>>e
sum(x)
返回序列中所有元素的和(元素必須是數字)
any(x)(一真即真)
真值測試,如果列表中的其中一個元素為真,返回True
all(x)(一假即假)
真值測試,如果列表中所有元素都為真值,返回True
sum([1,5,9,3])
sum([1,2,3] , 10)
sum(range(1,101))
L = [ 1, 7, 0, 3, 2]
any(L)
all(L)
>>>18
>>>16(設置了起始值10)
>>>5050
>>>True
>>>False
6.2字符串編碼(encode)的轉換函數
ord(c)
返回一個字符的Unicode值
chr(i)
返回i這個值所對應的字符
6.3整數轉換為字符串的函數
hex(i)
整數轉換為十六進制的字符串
oct(i)
整數轉換為八進制的字符串
bin(i)
整數轉換為二進制的字符串(binary)
bin(100)
oct(100)
hex(100)
>>>0b1100100
>>>0o144
>>>0x64
6.4字符串的構造函數
str(obj =‘ ’)
對象轉換為字符
str(3.14)
str(None)
>>>‘3.14’
>>>‘None’
[W用1]print(“ABCD\bd”) >>>ABCd
[W用2]print("ABCD\rdop") >>>dopD
print("ABCD\rd") >>>dBCD
[W用3]\n = \x0A (hex) =\012
查看ASACII碼表: man ascii
[W用4]‘A’=‘\u0041’
[W用5]‘A’=‘\U00000041’(大寫U)
[W用7]在python交互模式下,print(s)和s輸出的不一樣。s輸出的是s的表達式,給機器看的;print(s)才是給人看的。