字符串
1 . 字符串天生具有跨平台性
2 . 计算机不认识字符,认识数字,需要之间的桥梁:编码表
utf- 8 ASCII utf- 8 GBK
3 . 字符串是不可变类型对象( 不支持增删改操作)
4 . 支持切片操作
5 . 支持下标操作
1 . 手工
s = 'a,b,c'
print ( s)
2 . 构造
str ( obj) : 将obj转换成可以输出的字符串
1 . 访问一个:下标
2 . 访问多个:切片
3 . 访问所有:遍历
1 . 单引号字符串:'abc'
2 . 双引号字符串:"abc"
3 . 三引号字符串:"""abc"""
"""多行字符串
一般用于多行注释
"""
注:无论双,三最终都会被解释为'' 单引号
4 . 原始字符串:r'abc'
作用:让转移字符失效,展现字符串最原始的功能
5 . 转义字符( str 类型)
'\t' '\n' 具有特殊功能的字符串
6 . unicode 字符串:( str 类型)
u'abc'
python2中的默认编码:ASCII,不能使用中文,如果要使用中文,使用unicode 字符串
7 . 二进制字符串: ( bytes 类型)
s1 = b'abc'
s2 = 'abc'
将bytes 转换为str 用s1. decode( ) 方法解码
将str 转换为bytes 用s2. encode( ) 方法编码
代码:
s1 = b'abc'
s2 = 'abc'
s3 = s1. decode( )
s4 = s2. encode( )
print ( s1, s2, s3, s4)
效果:
b'abc' abc abc b'abc'
注意:字符串是不可变类型,这些操作不会改变字符串
1 . capitalize( ) : 字符串首字母大写
2 . endswith( str ) : 判断字符串是否以str 结尾
startswith( str ) : 判断字符串是否以str 开头
3 . isalnum( ) : 判断是否是数组或字母
4 . isalpha( ) : 判断是否是字母
注:isalpha( ) :可判断字符串s是否全为字母,但判断中文时依旧会返回TRUE
先将字符串s进行编码,再次调用方法即可
5 . isdecimal( ) : 判断是否是十进制数( 不能有小数点)
6 . isdight( ) : 判断数字( 无进制要求)
7 . isnumeric( ) : 判断是否是数字( 阿拉伯数字,五,繁体数字,希腊I II)
8 . isspace( ) : 判断是否为空格
9 . issupper( ) : 判断是否是大写
islower( ) : 判断是否是小写
10 . join( iterable) :
'*' . join( iterable) 将原有字符串作为分隔符,和可迭代对象拼接
s = ( a, b, c) print ( '' . join( s) )
11 . lower( ) : 将字符串全转为小写
upper( ) : 将字符串全转为大写
12 . lstrip( ) : 去掉字符串左边的char
rstrip( ) : 去掉字符串右边的char
strip( char) : 去掉字符串两边的char
13 . split( char) :
将字符串用char进行分割
返回一个字符串列表
代码:
s1 = 'abc'
s1_1 = s1. capitalize( )
print ( s1, s1_1)
s2 = '$sdfas*'
print ( s2. endswith( '*' ) , s2. startswith( '$' ) )
s3 = 'sdkf123'
s3_1 = 'adfk123$$'
print ( s3. isalnum( ) , s3_1. isalnum( ) )
s4 = 'abc'
s4_1 = 'abc123'
s4_2 = 'abc李'
s4_3 = s4_2. encode( )
print ( s4. isalpha( ) , s4_1. isalpha( ) , s4_2. isalpha( ) , s4_3. isalpha( ) )
s5 = '123'
s5_1 = '123.0'
print ( s5. isdecimal( ) , s5_1. isdecimal( ) )
s6 = '123.0'
s6_1 = '123.1231290'
s6_2 = '123'
print ( s6. isdigit( ) , s6_1. isdigit( ) , s6_2. isdigit( ) )
s7 = '一'
s7_1 = '壹'
s7_2 = '1'
print ( s7. isnumeric( ) , s7_1. isnumeric( ) , s7_2. isnumeric( ) )
s8 = ' '
s8_1 = ' '
s8_2 = ''
print ( s8. isspace( ) , s8_1. isspace( ) , s8_2. isspace( ) )
s9 = 'Abc'
s9_1 = 'abc'
print ( s8. isupper( ) , s8_1. islower( ) )
s10 = 'abcd'
t = '(a,b,c)'
print ( '$' . join( s10) , t, '' . join( t) , type ( '' . join( t) ) )
s11 = 'AbC'
s11_1 = 'abC'
print ( s11. lower( ) , s11_1. upper( ) )
s12 = '$absfa$fsd$'
s12_1 = '$absfa$fsd$'
s12_2 = '$absfa$fsd$'
print ( s12. lstrip( '$' ) , s12_1. rstrip( '$' ) , s12_2. strip( '$' ) )
s13 = '*ab*cd*fdsf'
print ( s13. split( '*' ) )
s14 = '***hehe**heheh'
print ( s14. split( '*' ) , type ( s14. split( '*' ) ) )
print ( '' . join( s14. split( '*' ) ) )
效果:
abc Abc
True True
True False
True False True False
True False
False False True
True True True
True True False
False False
a$b$c$d ( a, b, c) ( a, b, c) < class 'str' >
abc ABC
absfa$fsd$ $absfa$fsd absfa$fsd
[ '' , 'ab' , 'cd' , 'fdsf' ]
[ '' , '' , '' , 'hehe' , '' , 'heheh' ] < class 'list' >
heheheheh
6.format(*args, **kwargs)
1 . format ( '多个参数' )
* args: 可以传入多个参数
** kwargs: 关键字的形式传入
参数类型:位置参数( 必选参数) ,默认参数,可变长参数,关键字参数
1 . 位置参数
'{n}' : 表示一个占位符
'{n}' . format ( 参数1 ,参数2 ,。。。)
n: ( 参数) 下标
从参数中,获取对应下标的数据,替换到占位符上
'{n}' n可以省略,默认从0 开始
2 . 关键字参数传值
'{a}' . format ( a= '参数1' )
代码:
s1 = 'afadf*{}*safsdf*{}*fdsf*{}*dsfa'
print ( s1. format ( 'I' , 'Love' , 'You' ) )
s2 = 'afadf*{a}*safsdf*{b}*fdsf*{c}*dsfa'
print ( s2. format ( a= 'You' , b= 'Love' , c= 'He' ) )
效果:
afadf* I* safsdf* Love* fdsf* You* dsfa
afadf* You* safsdf* Love* fdsf* He* dsfa
使用% 和字母构成特殊占位符
格式化什么,就转换成什么
1 . % c: 格式化字符编码,将数值转为
2 . % s: 格式化字符
3 . % d: 格式化整数
4 . % o: 格式化八进制数
5 . % x: 格式化十六进制数
6 . % f: 格式化浮点数
7 . % e: 格式化科学计数法
8 . % g: 自动选用科学计数法或浮点数根据值的大小决定使用% f或% e
print ( '%c' % 98 )
print ( '%s like %s' % ( 'af' , 'adf' ) )
print ( '%d' % 10.5 )
print ( '%o' % 10 )
print ( '%x' % 10 )
print ( '%f' % 10 )
print ( '%e' % 10.12312324 )
b
af like adf
10
12
a
10.000000
1.012312e+01
1 . m. n
m: 显示总的宽度,没有字符位置用空格补充
当宽度小于实际宽度时,m不生效
n: 小数点后取几位
2 . - : 左对齐
3 .
4 . 0 : 空白用0 填充
print ( '%.2f' % 3.1415 )
print ( '%10.2f' % 3.1415 )
print ( '%1.2f' % 3.1415 )
print ( '%-10.2f' % 3.1415 )
print ( '%#x' % 10 )
print ( '%010.2f' % 3.1415 )
print ( '%-010.2f' % 3.1415 )
print ( '%-010.2d' % 3 )
3.14
3.14
3.14
3.14
0xa
0000003.14
3.14
03
常见的转义字符
\n: 换行
\r: 换行
\\: 斜杠
\t: 横向制表
\v: 纵向制表
\':单引号
\":双引号
\a: 警报(发声)
\0 : 空串
\f: 换页符