Python 字符串String相关知识
- test.capitalize( ) |首字母大写
- test.lower( ) |全部变成小写(只能处理英文字母)
- test.casefold( ) |全部变成小写(包括特殊字符的转换,范围比lower更广)
- test.upper( ) |把字符串变成大写字母
- test.islower( ) |判断字符串中是否全部为小写字母
- test.isupper( ) |判断字符串中是否全部为大写字母
- test.swapcase( ) |大小写转换,全部取反
- test.center( self, width, fillchar = None )
|设置宽度并将内容居中。若设置width=20,则表示一共20位空格位,字符串居中;fillchar若设置位*,则表示字符串两边的空白位都是*,fillchar只能设置一个字符,否则会报错。(fillchar后面有默认值none,表示fillchar的值可传可不传;width后面没有设置默认参数,表示必须要传值。) - test.ljust( ) |字符串靠左
- test.rjust( ) |字符串靠右
- test.zfill( ) |除开字符串的空白部分全部以0填充
- test.count(self, sub, start=None, end=None) |计算字符串中含有多少个括号中的字符
如: a ="alexalexr" 则a.count(e)为2;a.count(ex)为2
>>> test= "alexalexr" >>> v = test.count("ex", 5, 6) #表示从索引号5开始找有几个ex,到索引号6结束 >>> print(v)
1 - test.endswith( ) | 判断字符串是否以括号里的参数结尾
- test.startswith( ) | 判断字符串是否以括号里的参数开头
- test.find( self, sub, start=None, end=None ) |查找要找的目标子串在哪个索引号的位置
>>> test = "alexalexr" >>> v= test.find( "ex", 5, 8) #从索引号5开始找ex,8结束(不包含8) >>> print(v) 6
- test.format( ) | 格式化,将一个字符串的占位符替换为指定值
>>> test= "i am {name}, age{n}" >>> v= test.format( name = "alex", age = 19) #或v = test.format("alex", 19) >>> print(v) i am alex, age 19
- test.format_map( ) |格式化,传入的值只能是字典类型
<<< test ="i am {name}, age{a} " <<< v = test.format_map({name:"alex", age: "19"}) <<< print(v) i am alex, age 19
- test.isalnum( ) |判断字符串中是否指出现数字和字母
- test.expandtabs( ) |表示创建括号中数字个数的空格位,字符没满时自动用空格补全
>>> test = "username\temail\tpassword\n laiying\tying@qq.com\t123" >>> v = test.expandtabs(20) >>> print(v) username email password laiying ying@qq.com 123
- test.isalpha( ) |判断字符串中是否只涵字母(包括汉字)
- test.isdecimal( ) |判断字符串是否是数字
- test.isdigit( ) |判断字符串是否都是数字(包含特殊符号,不支持中文,识别范围比decimal更广)
- test.isnumeric( ) |判断字符串是否都是数字(支持特殊符号和中文)
- test.isidentifier( ) |判断是否位标识符(字母、数字、下划线)
- test.isprintable( ) |是否存在页面上不可显示的字符(如制表符\n, \t, 若有的话会报False)
- test.isspace( ) |判断是否全部是空格,即空字符串
- test.istitle( ) |判断字符串中的每一个单词是否全都首字母大写
- test.title( ) |把字符串转换为每个单词都首字母大写
- test.join( ) |将字符串的每一个元素之间按指定分隔符进行拼接
>>> test = "01234" >>> t = "_" >>> v = t.join("test") >>> print(v) 0_1_2_3_4
- test.strip( ) |去除字符串左右两边的空白(\n和\t),并且去掉()中指定的字符,按照优先最多匹配。
- test.lstrip( ) |从左向右优先匹配
- test.rstrip( ) |从右向左优先匹配
>>> test = "xaexlex" >>> v = test.rstrip("9lexxexa") >>> print(v) 结果为空,即全都删掉了,因为是从右向左先删除lex,然后ex,然后xa,按照能多匹配就多匹配的原则
- test.maketrans( )和test.translate( )
>>> test="asidufkask, fiuadkf, adfkiskd" >>> m = test.maketrans("aeiou", 12345) >>> new_test = test.translate(m) #把字符串中所有的aeiou全部分别转换为12345 >>> print(new_test) 1s3d5fk1sk, f351dkf, adfk3skd
- test.partition( ) |分割字符串,partition只能分割成3份,从左向右找括号中的指定字符进行分割,并且能拿到该指定字符
test.rpartitions( ) |从右往左分割字符串,其他同上
>>> test = "testasdsddfg" >>> v1 = test.partition("s") #从左向右找s分割为3份,s也能拿到 >>> v2 = test.rpartition("s") #从右向左找s分割为3份,s也能拿到 >>> print(v1, v2)
(('te','s','tasdsddfg'),('testasd','s','ddfg')) -
test.split(self, sep, maxsplit) |从左往右分割字符串,可以自定义分割次数,但是拿不到括号中指定的字符
test.rsplit(self, sep, maxsplit) |从右往左分割字符串,其他同上>>> test = "testasdsddfg" >>> v1 = test.split('s', 2) #从左往右分割2次,也就是3份,s拿不到 >>> v2 = test.rsplit('s', 3) #从右往左分割3次,也就是4份,s拿不到 >>> print(v1, v2) (['te', 'ta', 'dsddfg'], ['te', 'ta', 'd', 'ddfg'])
- test.splitlines( ) |只能根据\n换行符分割,( )中默认为False,指不保留 \n,( )中为True时,保留\n
>>> test = "tes\ntasd\nsd\ndfg" >>> v = test.splitlines(True) >>> print(v) ['tes\n', 'tasd\n', 'sd\n', 'dfg']
- test.replace( ) |在字符串中查找目标字符串,替换成新字符串,并且能自定义替换的个数
>>> test = "alexalexalex" >>> v = test.replace('ex','bbb',2) #找出字符串ex,用新的字符串bbb来替换它,并且只替换前2个,最后一个数字不写的时候默认为全部都替换 >>> print (v) albbbalbbbalex
- range( ) |创建连续的数字,并可以指定步长
>>> v = range(0,30,5) #从0开始,30结束,步长为5 >>> for item in v: >>> print (item) 0 5 10 15 20 25
>>> v = range(10) >>> print(v) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 切片
>>> test = "alex" >>> v = test[0:1] #取到的是索引号0-1对应的字符,包含0不包含1,前闭后开 >>> print(v) a
- 字符串一旦在内存中创建就不可修改,对其进行修改或者拼接都会重新生成新的字符串,所有语言中都如此。
- len(list) |len用来测列表的长度时,表示的是列表中元素的个数。