1、字符串的创建与驻留机制
a= 'XCsss'
b= "XCsss"
c= '''XCsss'''
print ( a, id ( a) )
print ( b, id ( b) )
print ( c, id ( c) )
‘’‘
驻留机制的几种情况(交互模式,即实时)
字符串的长度为0 或1 时
符合标识符的字符串:字母、数字、下划线
字符串只在编译时进行驻留,而非运行时
[ - 5 , 256 ] 之间的整数数字
sys中的internet方法强制2 个字符串指向同一对象
Pycharm对字符串驻留优化了,本来不驻留的也能驻留
’‘’
2、字符串的常用操作
2.1 查询操作
s= 'XCsss,98,XCsss'
print ( s. index( 'ss' ) )
print ( s. rindex( 'ss' ) )
print ( s. find( 'FD' ) )
print ( s. rfind( 'ss' ) )
2.2 大小写转化
s= 'XCsss,98,xCsss'
print ( s. upper( ) )
print ( s. lower( ) )
print ( s. swapcase( ) )
print ( s. capitalize( ) )
print ( s. title( ) )
2.3 内容对齐
s= 'XCsss,98,xCsss'
'''
center() 居中对齐,1参数指定宽度,2参数指定填充符,第二个参数可选,默认是空格,如果设置宽度小于实际宽度则返回原字符串
ljust()左对齐,1参数指定宽度,2参数指定填充符,第二个参数可选,默认是空格,如果设置宽度小于实际宽度则返回原字符串
rjust()右对齐:1参数指定宽度,2参数指定填充符,第二个参数可选,默认是空格,如果设置宽度小于实际宽度则返回原字符串
zfill()右对齐,左边用0填充,该方法只有1个参数,用于指定字符串的宽度,如果指定宽度小于等于字符串的长度,则返回字符串本身
'''
print ( s. center( 30 , '*' ) )
print ( s. ljust( 30 , '*' ) )
print ( s. rjust( 30 , '*' ) )
print ( s. zfill( 30 ) )
print ( '-100' . zfill( 30 ) )
2.4 劈分操作
s= 'XCsss,98,xCsss'
lst= s. split( )
print ( lst)
s1= 'XCsss|98|xCsss'
print ( s1. split( sep= '|' ) )
print ( s1. split( sep= '|' , maxsplit= 1 ) )
print ( s. rsplit( ) )
print ( s1. rsplit( sep= '|' , maxsplit= 1 ) )
2.5 判断的相关方法
s= 'XCsss,98,xCsss'
'''
isidentifier() 是否合法标识符:字母、数字、下划线
isspace()是否全部由空白字符组成:回车、换行、水平制表符
isalpha() 是否全部由字母组成
isdecimal() 是否全部由十进制的数字组成
isnumeric() 是否全部由数字组成
isalnum() 是否全部字母和数字组成
'''
print ( s. isidentifier( ) )
print ( s. isspace( ) )
print ( s. isalpha( ) )
print ( s. isdecimal( ) )
print ( s. isnumeric( ) )
print ( s. isalnum( ) )
2.6 替换与合并
s= 'XCsss,98,xCsss'
print ( s. replace( '98' , '10' ) )
s1= 'XCsss,XCsss,XCsss,90'
print ( s1. replace( 'XCsss' , 'change' , 2 ) )
lst= [ 'hello' , 'hi' ]
print ( '|' . join( lst) )
print ( '' . join( lst) )
t= ( 'hello' , 'hi' )
print ( '|' . join( t) )
print ( '|' . join( 'hello' ) )
3、比较操作
print ( 'apple' > 'app' )
print ( 'apple' > 'school' )
print ( ord ( 'a' ) , ord ( 's' ) )
print ( chr ( 97 ) , chr ( 115 ) )
'''
==与is的区别
== 比较的是value
is 比较的是id
'''
a= b= 'ccc'
c= 'c'
print ( a is b)
print ( a == b)
print ( a == c)
print ( a is c)
4、切片操作
s= 'hell0,python'
s1= s[ : 5 ]
s2= s[ 6 : ]
s3= '!'
new= s1+ s3+ s2
print ( s1)
print ( s2)
print ( new)
print ( id ( s) , id ( s1) , id ( s2) , id ( s3) , id ( new) )
print ( s[ 1 : 5 : 1 ] )
print ( s[ : : 2 ] )
print ( s[ : : - 1 ] )
print ( s[ - 6 : : 1 ] )
5、格式化字符串
name= '张三'
age= 20
print ( '我叫%s,今年%d岁' % ( name, age) )
print ( '我叫{0},今年{1}岁' . format ( name, age) )
print ( f'我叫{name},今年{age}岁' )
print ( '%10d' % 99 )
print ( '%.3f' % 3.1415 )
print ( '%10.3f' % 3.14159 )
print ( '{0}' . format ( 3.1415926 ) )
print ( '{0:.3}' . format ( 3.1415926 ) )
print ( '{0:.3f}' . format ( 3.1415926 ) )
print ( '{:10.3f}' . format ( 3.1415926 ) )
6、字符串的编码与解码
s= '天涯共此时'
print ( s. encode( encoding= 'GBK' ) )
print ( s. encode( encoding= 'UTF-8' ) )
byte= s. encode( encoding= 'GBK' )
print ( byte. decode( encoding= 'GBK' ) )