java 单机接口限流处理方案
393
2022-09-04
Python----Python字符串及其常用方法
1 字符串的表示方法
(1)字符串可以使用单引号,双引号,三个单引号,单个双引号表示
>>> "hello world"'hello world'>>> 'hello world''hello world'>>> """hello world... hello world... hello world... """'hello world\nhello world\nhello world\n'>>> '''hello world... hello world... hello world... ''''hello world\nhello world\nhello world\n'
(2)字符串中若有双引号,可以采用单引号嵌套双引号的方式,也可以采用后面要讲的转义的部分
>>> 'he said:"hello world"''he said:"hello world"'
2 转义字符
(1)常用的转义字符
\n 换行\\ \\t 制表符\" "\' '
(2)字符串中使用转义举例
>>> print("hello \\n world")hello \n world>>> print("hello \"Tom\"")hello "Tom">>> print("hello\tworld")hello world>>> print("hello\nworld")
(3)在Windows操作系统上使用文件路径时要特别小心,注意使用转义符对\进行转义
>>> print("C:\north\nrothwest")C:orthrothwest>>> print("C:\\north\\northwest")C:\north\northwest>>> print(r"C:\north\northwest")C:\north\northwest>>>
3 字符串的常用运算
(1)字符串可以用加号来拼接字符串,使用*号来重复字符串
>>> "hello"+"world"'helloworld'>>> "hello"*3'hellohellohello'
(2)字符串可以通过下标获取具体的字符,下标从0开始,下标不允许超过边界
>>> a="hello world">>> print(a[0])h>>> print(a[2])l>>> print(a[-1])d>>> print(a[-3])r>>> print(a[11])Traceback (most recent call last): File "
(3)字符串可以通过切片获取字符串的片段,坚持前闭后开的原则
>>> a="hello world">>> print(a[0:4])hell>>> print(a[1:3])el>>> print(a[0:-1])hello worl>>> print(a[0:10])
(4)字符串中切片操作,右边界值允许炒作最大值,超过后表示取到最右边的字符
>>> print(a[0:11])
(5)字符串切片操作可以使用三个参数,第三个参数表示步长
>>> print(a[1:9:3])
(6)字符串切片操作的参数可以省略,省略第一个参数表示左侧从头开始取,省略第二参数,表示右侧到字符串末尾
>>> print(a[:3])hel>>> print(a[3:])lo world>>> print(a[::3])
(7)字符串切片操作的参数中若第一个参数大于等于第二个参数,且第二个参数不为负数时,表示取出来的子串为空串
>>> print(a[5:1])>>> print(a[10:0])
(8)字符串可以通过in或者not in判断字符或者字符串是否在字符串中
>>> 'h' in "hello world"True>>> 'z' in "hello world"False>>> 'z' not in "hello world"True
(9)通过len函数计算字符串的长度
>>> len("hello world")11
(10)通过max和min计算字符串中的最小和最大的值
>>> max("hello world")'w'>>> min("hello world")' '
(11)ord可以将字符转换为整数,chr可以将整数转换为字符
>>> ord('a')97>>> chr(90)'Z'
4 字符串常用的函数
(1)capitalize() 将字符串首字母大写,其他字母变成小写
>>> a="hello Word HeLLO WORd">>> a.capitalize()'Hello word hello word'
(2)lower() 将大写字母转换为小写字母(仅限ASCII编码范围内的语言)
>>> a="HEllo WorLD HelLO WoRLD">>> a.lower()'hello world hello world'
(3)casefold() 将大写字母转换为小写字母(ASCII编码范围外的语言也支持)
>>> a="HEllo WorLD HelLO WoRLD">>> a.casefold()'hello world hello world'>>> a="ß" # 德语>>> a'ß'>>> a.casefold()'ss'>>> a.lower()'ß'
(4)upper() 将小写字母转换为大写字母(仅限ASCII编码范围内的语言)
>>> a="hello Word HeLLO WORd">>> a.upper()'HELLO WORD HELLO WORD'
(5)swapcase() 将小写字母转换为大写字母,将原来大写的变为小写字母
>>> a="HEllo WorLD HelLO WoRLD">>> a.swapcase()'heLLO wORld hELlo wOrld'
(6)title() 将字符串中每个单词的首字母大写
>>> a="HEllo WorLD HelLO WoRLD">>> a.title()'Hello World Hello World'
(7)strip(chars=None) 如果chars不填,则去除字符串两端的空格,如果chars指定了字符,则去除字符串两端的chars指定的字符
>>> a=" hello world ">>> a.strip()'hello world'>>> a="hahahahello world hello world hahahaha">>> a.strip("ha")'ello world hello world '>>> a="hahahahaahello world hahahaha">>> a.strip("ha")'ello world '>>> a="hello world gogole world hello">>> a.strip("olhe")' world gogole world '
(8)lstrip(chars=None),和strip功能类似,只不过lstrip只去除字符串左边空格或者chars指定的字符
>>> a=" hello world ">>> a.lstrip()'hello world '>>> a="hello world hello">>> a.lstrip("elho")' world hello'
(9)rstrip(chars=None),和strip功能类似,只不过rstrip只去除字符串右边空格或者chars指定的字符
>>> a=" hello world ">>> a.rstrip()' hello world'>>> a="hello world hello">>> a.rstrip("elho")'hello world '
(10)rjust(width,fillchar=’ '),返回一个原字符串右对齐,并使用fillchar指定的字符填充至width长度的字符串,fillchar不指定时默认为空格
>>> a="hello world">>> a.rjust(20)' hello world'>>> a.rjust(20,'x')'xxxxxxxxxhello world'
(11)ljust(width,fillchar=’ '),返回一个原字符串左对齐,并使用fillchar指定的字符填充至width长度的字符串,fillchar不指定时默认为空格
>>> a="hello world">>> a.ljust(20)'hello world '>>> a.ljust(20,'x')'hello worldxxxxxxxxx'
(12)center(width,fillchar=’ '),返回一个原字符串居中对齐,并使用fillchar指定的字符填充到width长度的字符串,fillchar不指定时默认为空格
>>> a="hello world">>> a.center(20)' hello world '>>> a="hello world">>> a.center(20,'x')'xxxxhello worldxxxxx'
(13)count(sub,start=0,end=len(string)),返回字符串包含子串的数量,可以指定查询的起始位置和结束位置,不指定则默认为整个字符串中计数
>>> a="hello world">>> a.count('l')3>>> a.count('l',1,5)2>>> a="hello world hello world hello">>> a.count("hello")3
(14)index(sub,start=0,end=len(string)),返回字符串中查找到的第一个子串的起始位置索引值,可以指定查找起始和结束范围,若查找不到则报ValueError的异常
>>> a="hello world">>> a.index('h')0>>> a.index('x')Traceback (most recent call last): File "
(15)rindex(sub,start=0,end=len(string)) 返回字符串中查找到的最后一个子串的起始位置的索引值,可以指定查找起始和结束范围,若查找不到则报ValueError的异常
>>> a="hello world">>> a.rindex("l")9>>> a.rindex("l",0,5)3>>> a="hello world hello world hello">>> a.rindex("world")18
(16)find(sub,start=0,end=len(string)) 返回字符串中查找到的第一个子串的起始位置索引值,可以指定查找起始和结束范围,若查找不到则返回-1
>>> a="hello world">>> a.find('l')2>>> a.find('x')-1>>> a.find('l',6,10)9>>> a="hello world hello world">>> a.find("world")6
(17)rfind(sub,start=0,end=len(string)) 返回字符串中查找到最后一个子串的起始位置索引,可以指定查找起始和结束范围,若查找不到则返回-1
>>> a="hello world">>> a.rfind('l')9>>> a.rfind('x')-1>>> a.rfind('l',1,6)3
(18)split(rep=None,maxsplit=-1) 将字符串根据sep分割,如果sep不填则默认使用空格分割,如果maxsplt不指定则默认将根据字符串中所有的sep分割,否则分割指定的数目
>>> a="hello world hello world hello world">>> a.split()['hello', 'world', 'hello', 'world', 'hello', 'world']>>> a.split(" ",2)['hello', 'world', 'hello world hello world']>>> a.split("world")['hello ', ' hello ', ' hello ', '']>>> a.split('x')['hello world hello world hello world']
(19)split(rep=None,maxsplit=-1) 将字符串从右侧开始根据sep分割,如果sep不填则默认使用空格分割,如果maxsplt不指定则默认将根据字符串中所有的sep分割,否则分割指定的数目
>>> a="hello world hello world hello world">>> a.rsplit()['hello', 'world', 'hello', 'world', 'hello', 'world']>>> a.rsplit(" ")['hello', 'world', 'hello', 'world', 'hello', 'world']>>> a.rsplit(" ",2)['hello world hello world', 'hello', 'world']>>> a.rsplit("world")['hello ', ' hello ', ' hello ', '']
(20)splitlines(keepends=False) 按照换行符(\r,\r\n,\n)分割,如果keepends不填默认为False,则返回的每一行没有回车符,如果keepends设置为True则每一行带有换行符
>>> a="hello world 01\n hello world 02\r hello world 03 \r\n hello world 04">>> a'hello world 01\n hello world 02\r hello world 03 \r\n hello world 04'>>> a.splitlines()['hello world 01', ' hello world 02', ' hello world 03 ', ' hello world 04']>>> a.splitlines(True)['hello world 01\n', ' hello world 02\r', ' hello world 03 \r\n', ' hello world 04']
(21)partition(sep) 根据指定的sep将字符串分割,返回一个三元组,第一个元素为分割符左边的部门,第二个元素为分隔符本身,第三个元素为分隔符有点的部分,若字符串中没有找到分隔符sep,则返回一个三元组,第一个元素为字符串本身,第二个第三个为空字符串
>>> a="hello world hello world">>> a.partition(" ")('hello', ' ', 'world hello world')>>> a.partition('x')('hello world hello world', '', '')
(22)rpartition(sep) 根据指定的sep将字符串从右侧开始查找并分割,返回一个三元组,第一个元素为分割符左边的部门,第二个元素为分隔符本身,第三个元素为分隔符有点的部分,若字符串中没有找到分隔符sep,则返回一个三元组,第一个元素为字符串本身,第二个第三个为空字符串
a="hello world hello world">>> a.rpartition(" ")('hello world hello', ' ', 'world')
(23)replace(old,new,count=-1) 将字符串中的old替换为new,如果不指定count则全部替换,否则按照count指定的数目替换
>>> a="hello world hello world hello world">>> a.replace("hello","Hello")'Hello world Hello world Hello world'>>> a.replace("hello","Hello",1)'Hello world hello world hello world'
(24)zfill(width) 将字符串用0填充至width指定的长度,若指定的长度比字符串长度还小,则不作任何操作
>>> a="hello world">>> a.zfill(20)'000000000hello world'>>> a.zfill(4)'hello world'
(25)join(iterable) 将列表中的元素以指定的字符连接为新的字符串
>>> a=["hello","world","hello","world","hello","world"]>>> " ".join(a)'hello world hello world hello world'>>> 'x'.join(a)'helloxworldxhelloxworldxhelloxworld'>>> '\n'.join(a)'hello\nworld\nhello\nworld\nhello\nworld'
(26)format() 字符串格式化
1) format使用位置对字符串进行字符串进行变量替换
>>> "{} {}".format("hello","world")'hello world'>>> "{0} {1}".format("hello","world")'hello world'>>> "{1} {0} {1}".format("hello","world")'world hello world'
2)使用参数指定对字符串进行变量替换
>>> "{v1} {v2}".format(v1="hello",v2="world") 'hello world' >>> "{v1} this is a string {v2}".format(v2="world",v1="hello") 'hello this is a string world'
3)数字格式化
>>> a=3.141592653 >>> "{:.2f}".format(a) '3.14' >>> "{:+.2f}".format(a) '+3.14' >>> "{:.0f}".format(a) '3' >>> a=1000000000 >>> "{:0>12d}".format(a) '001000000000' >>> "{:x<12d}".format(a) '1000000000xx' >>> "{:,}".format(a) '1,000,000,000' >>> "{:.2e}".format(a) '1.00e+09' >>> "{:>15d}".format(a) ' 1000000000' >>> "{:<15d}".format(a) '1000000000 ' >>> "{:^15d}".format(a) ' 1000000000 ' >>> "{:.2%}".format(0.25) '25.00%' >>> '{:b}'.format(11) '1011' >>> '{:d}'.format(11) '11' >>> '{:o}'.format(11) '13' >>> '{:x}'.format(11) 'b' >>> '{:#x}'.format(11) '0xb' >>> '{:#X}'.format(11) '0XB'
(27)format_map() 使用字典格式的数据对字符串进行变量替换
>>> info={"v1":"hello","v2":"world"}>>> "{v1} {v2}".format_map(info)'hello world'
(28)encode(encoding=“utf-8”,errors=‘strict’) 以指定的编码格式编码字符串,默认的是utf-8,errors指定不同的错误处理方案strict意为编码错误引起一个UnicodeError,其他可选的值有: ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值
>>> "hello world".encode("utf-8")b'hello world'>>> "hello world".encode("gbk")b'hello world'>>> "hello world".encode("ascii")b'hello world'>>> "你好,世界!".encode("utf-8")b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'>>> "你好,世界!".encode("gbk")b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7\xa3\xa1'>>> "你好,世界!".encode("ascii")Traceback (most recent call last): File "
(29)maketrans() 创建字符映射的转换表,可以是一个参数,一个参数是时必须为字典dict,返回的类型为dict,key和value均用Unicode编码表示,也可以接受两个参数,如果是两个参数,则两个参数的类型为字符串str类型,并且两个参数的额字符串长度相同,以此来建立对应位置的映射关系
>>> str.maketrans({"a":1,"b":2,"c":3}){97: 1, 98: 2, 99: 3}>>> str.maketrans("hello","world"){104: 119, 101: 111, 108: 108, 111: 100}
(30)translate(table) 根据maketrans生成的映射表对字符串进行字符替换,如果转换表中字符对应的value值为None的,则在此字符串中删除此字符
>>> table=str.maketrans("hello","world")>>> "hello world hello world".translate(table)'wolld wdrld wolld wdrld'>>> table=str.maketrans({"h":"w","e":None,"l":"o","o":None})>>> "hello world".translate(table)'woo wrod'
(31)expandtabs(tabsize=8) 吧字符串中的tab字符\t转换为指定数量的空格,默认为8个
>>> "hello\tworld".expandtabs(tabsize=8)'hello world'>>> "hello\tworld".expandtabs(tabsize=4)'hello world'>>> "hello\tworld".expandtabs(tabsize=16)'hello world'
(32)startswith(prefix,start=0,end=len(string)) 判断字符串是否已给定的prefix为起始,如果是返回True,否则返回False,同时可以指定判断起始的位置。start和end默认为0和字符串的长度.prefix还可以是一个有字符串元素组成的元组,只要有一个匹配上,即返回True,否则返回False
>>> a="hello world">>> a.startswith("h")True>>> a.startswith("hello")True>>> a.startswith(" ",5,10)True>>> a.startswith(" ",3,10)False>>> a.startswith(("haha","hehe","h","w"))True>>> a.startswith(("haha","hehe","m","w"))False
(33)endswith(suffix,start=0,end=len(string)) 判断字符串是否已给定的suffix为结尾,如果是返回True,否则返回False,同时可以指定判断起始的位置。start和end默认为0和字符串的长度.suffix还可以是一个有字符串元素组成的元组,只要有一个匹配上,即返回True,否则返回False
>>> a="hello world">>> a.endswith("d")True>>> a.endswith("world")True>>> a.endswith("d",0,4)False>>> a.endswith(("hello","heheh","word","wd","d"))True>>> a.endswith(("hello","heheh","word","wd","h"))False
(34)isupper() 如果字符串的所有字符都是大写,则返回True,否则返回False
>>> "HELLO".isupper()True>>> "HeLLO".isupper()False>>> "HELLO WORLD".isupper()True>>> " ".isupper()False
(35)islower() 如果字符串的所有字符都是小写,则返回True,否则返回False
>>> "hello world".islower()True>>> "Hello world".islower()False>>> " ".islower()False
(36)istitle() 判断字符串中是否每个单词的首字母都睡大写,如果是返回True,否则返回False
>>> "Hello World".istitle()True>>> "Hello world".istitle()False
(37)isspace() 如果字符串中的所有的字符都是空格,并且至少有一个字符,则返回True,否则返回False
>>> "".isspace()False>>> " ".isspace()True>>> " ".isspace()True>>> "\t".isspace()True>>> "\n".isspace()True
(38)isprintable() 如果字符串中所有字符都可打印返回True,否则返回False
>>> "hello ".isprintable()True>>> " ".isprintable()True>>> "".isprintable()True>>> "\t".isprintable()False>>> "\n".isprintable()False>>> "\r".isprintable()False>>> "hello\nworld".isprintable()False
(39)isnumeric() 如果字符串中所有字符均有数字组成,返回True,否则返回False
>>> "hello".isnumeric()False>>> "1234567890".isnumeric()True>>> "0123".isnumeric()True>>> " 0234 ".isnumeric()False>>> "".isnumeric()False
(40)isidentifier() 判断字符串是否为python的有效的标识符,python有效的额标识符为字母或下划线开头,由数字字母和下划线组成的
>>> "hello".isidentifier()True>>> "def".isidentifier()True>>> "1abc".isidentifier()False>>> "class".isidentifier()True>>> "a-b".isidentifier()False
(41)isdigit() 如果字符串中所有字符均有数字组成,返回True,否则返回False
>>> "123".isdigit()True>>> "a12".isdigit()False>>> "0123".isdigit()True>>> "".isdigit()False
(42)isdecimal() 如果字符串中所有字符均有十进制字符组成,返回True,否则返回False
>>> "0123456789".isdecimal()True>>> "0b11".isdecimal()False>>> "a0".isdecimal()False
(43)isascii() 如果字符串中所有字符均为ascii范围内编码,则返回True,否则返回False
>>> "hello world".isascii()True>>> "你好".isascii()False
(44)isalpha() 如果字符串中至少有一个字符并且所有字符都是字母,则返回True,否则返回False
>>> "hello world".isalpha()False>>> "helloworld".isalpha()True>>> "abc123".isalpha()False
(45)isalnum() 如果字符串中每个字符都是由字母或者数字组成,则返回True,否则返回False
>>> "hello world".isalnum()False>>> "helloworld".isalnum()True>>> "abc123".isalnum()True
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~