006 Python中的 字符串String

一、表示方法

1.1常规表示

单引号和双引号的区别

单引号内可以包含双引号

双引号内可以包含单引号

三引号的作用

三引号字符串中的换行会自动转换为换行符 ‘\n’

三引号内可以包含单引号和双引号

三引号,可以折行,可以回车;单引号和双引号不行

隐式字符串字面值的拼接

S = “I’m” ‘ a programmer’

空字符串的布尔值为False,只要是空的就是False

1.2转义

\’

单引号 ’

\v  

垂直制表符

\”

双引号 ”

\b[W用1] 

倒退

\\

反斜杠\

\0

空字符(字符值为0)

\n

换行

\0oo

oo为两位八进制表示的字符

\r[W用2] 

返回光标至行首

\xXX[W用3] 

XX为两位十六进制表示的字符

\f

换页

\uXXXX[W用4] 

Unicode16的十六进制表示的字符

 

\UXXXXXXXX[W用5] 

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’ <  ‘B’                 >>>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

Print

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)才是给人看的。


猜你喜欢

转载自blog.csdn.net/weixin_37767152/article/details/80640230