一、表示方法
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’ < ‘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) |
五、字符串格式化表达式
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用4]‘A’=‘\u0041’
[W用5]‘A’=‘\U00000041’(大写U)
[W用7]在python交互模式下,print(s)和s输出的不一样。s输出的是s的表达式,给机器看的;print(s)才是给人看的。