当前位置: 首页 > news >正文

python字符串函数用法大全

目录

1.0 capitalize()函数

2.0 title()函数

3.0 swapcase()函数

4.0 lower()函数

5.0 upper()函数

7.0 center()函数

8.0 ljust()函数

9.0 rjust()函数

10.0 zfill()函数

11.0 count()函数

13.0 decode()函数

14.0 expandtabs()函数

15.0 find()函数

16.0 rfind()函数

17.0 index()函数

18.0 rindex()函数

19.0 format()函数

21.0 endswith()函数

22.0 startswith()函数

23.0 isalnum()函数

25.0 isdecimal()函数

26.0 isdigit()函数

27.0 isidentifier()函数

28.0  islower()函数

29.0 isupper()函数

30.0 isnumeric()函数

31.0 isprintable()函数

32.0 isspace()函数

33.0 istitle()函数

34.0  strip()函数

35.0 lstrip()函数

36. rstrip()函数

37.0 maketrans()函数

38.0 translate()函数

40.0  rpartition()函数

41.0  split()函数

42.0  rsplit()函数

43.0 splitlines()函数

44.0 join()函数

45.0 replace()函数


序言:

字符串属于序列类型,根据字符串内容的多少可以将字符串分为单行字符串和多行字符串。其中单行字符串可以由一对双引号(" ")或一对单引号(' ')表示,单引号和双引号等效。多行字符串可由一对三单引号(''' ''')或一对三双引号(""" """)表示,三单引号和三双引号也等效。

解决英文单词大小写问题:

1.0 capitalize()函数

描述:将字符串的第一个字母变成大写,其余字母变为小写。

语法:str.capitalize()  —> str 返回字符串

程序示例:

 
  1. str1 = "i Love python"

  2. str2 = " i Love python" #字母i前有空格

  3. str3 = "I Love python"

  4. print(str1.capitalize())

  5. print(str2.capitalize())

  6. print(str3.capitalize())

程序运行结果: 

 
  1. I love python

  2. i love python

  3. I love python

2.0 title()函数

描述:返回一个满足标题格式的字符串。即所有英文单词首字母大写,其余英文字母小写。

语法:str.title() -> str 返回一个字符串

程序示例:

 
  1. str = "i love python"

  2. print(str.title()) #将字符串str的所有单词首字母大写,其余字母小写

程序运行结果: 

I Love Python

3.0 swapcase()函数

描述:将字符串str中的大小写字母同时进行互换。即将字符串str中的大写字母转换为小写字母,将小写字母转换为大写字母。

语法:str.swapcase() -> str 返回字符串

程序示例:

 
  1. str1 = "I Love PYTHON"

  2. str2 = "我爱python Python pYTHON"

  3. print(str1.swapcase()) #将字符串str1中的大写字母转为小写字母,小写字母转换为大写字母。

  4. print(str2.swapcase())

程序运行结果:

 
  1. i lOVE python

  2. 我爱PYTHON pYTHON Python

4.0 lower()函数

描述:将字符串中的所有大写字母转换为小写字母。

语法:str.lower()  -> str  返回字符串

程序示例:

 
  1. str1 = "I Love Python"

  2. str2 = "Groß - α" #德语 大写α

  3. print(str1.casefold())

  4. print(str1.lower())

  5. print(str2.casefold())

  6. print(str2.lower())

程序运行结果:

 
  1. i love python

  2. i love python

  3. gross - α

  4. groß - α

注意 lower()函数和casefold()函数的区别:

lower() 方法只对ASCII编码,即‘A-Z’有效,对于其它语言中把大写转换为小写的情况无效,只能用 casefold() 函数。

5.0 upper()函数

描述:将字符串中的所有小写字母转换为大写字母。

语法: str.upper() -> str  返回字符串

程序示例:

 
  1. str1 = "i love python" #全为小写字母

  2. str2 = "I Love Python" #所有单词首字母大写

  3. print(str1.upper())

  4. print(str2.upper())

程序运行结果:

 
  1. I LOVE PYTHON

  2. I LOVE PYTHON

6.0 casefold()函数

描述:将字符串中的所有大写字母转换为小写字母。也可以将非英文 语言中的大写转换为小写。

注意 lower()函数和casefold()函数的区别:lower() 方法只对ASCII编码,即‘A-Z’有效,对于其它语言中把大写转换为小写的情况无效,只能用 casefold() 函数。

语法:str.casefold()   -> str 返回字符串

程序示例:

 
  1. str1 = "I Love Python"

  2. str2 = "Groß - α" #德语 大写α

  3. print(str1.casefold())

  4. print(str1.lower())

  5. print(str2.casefold())

  6. print(str2.lower())

程序运行结果:

 
  1. i love python

  2. i love python

  3. gross - α

  4. groß - α

 

解决字符串填充问题:

7.0 center()函数

描述:返回一个长度为width,两边用fillchar(单字符)填充的字符串,即字符串str居中,两边用fillchar填充。若字符串的长度大于width,则直接返回字符串str。

语法:str.center(width , "fillchar")  -> str  返回字符串       注意:引号不可省

  • width —— 指定字符串长度。
  • fillchar —— 要填充的单字符,默认为空格。

程序示例:

 
  1. str = "i love python"

  2. print(str.center(20,"*")) #指定字符串长度为20 用单字符"*"填充

  3. print(str.center(1,"*")) #指定字符串长度为1,小于原字符串的长度。

  4. print(str.center(20,"8"))

  5. print(str.center(20)) #fillchar 默认为空格

程序运行结果:

 
  1. ***i love python****

  2. i love python

  3. 888i love python8888

  4. i love python

8.0 ljust()函数

描述:返回一个原字符串左对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法: str.ljust(width, fillchar)  -> str 返回一个新的字符串

  • width —— 指定字符串的输出长度。
  • fillchar—— 将要填充的单字符,默认为空格

程序示例:

 
  1. str = "python"

  2. print(str.ljust(30,"*")) #指定宽度为30,填充字符为*

  3. print(str.ljust(30)) #指定宽度为30,填充字符默认为空格

  4. print(str.ljust(30),"1") #对比

程序运行结果:

 
  1. python************************

  2. python

  3. python 1

9.0 rjust()函数

描述:返回一个原字符串右对齐,并使用fillchar填充(默认为空格)至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法: str.ljust(width, fillchar)  -> str 返回一个新的字符串

  • width —— 指定字符串的输出长度。
  • fillchar—— 将要填充的单字符,默认为空格。

程序示例:

 
  1. str = "python"

  2. print(str.rjust(30,"*")) #指定宽度为30,填充字符为*

  3. print(str.rjust(30)) #指定宽度为30,填充字符默认为空格

  4. print("1",str.rjust(30)) #对比

程序运行结果:

 
  1. ************************python

  2. python

  3. 1 python

10.0 zfill()函数

描述:返回指定长度的字符串,使原字符串右对齐,前面用0填充到指定字符串长度。

语法:str.zfill(width) -> str 返回一个字符串

  • width —— 指定字符串的长度,但不能为空。若指定长度小于字符串长度,则直接输出原字符串。

程序示例:

 
  1. str = "i love python"

  2. print(str.zfill(30)) #指定字符串长度为30

  3. print(str.zfill(2)) #指定字符串长度为2,小于原字符串长度。

  4. print(str.zfill()) #参数width为空,报错.

程序运行结果:

 
  1. 00000000000000000i love python

  2. i love python

  3. ---------------------------------------------------------------------------

  4. TypeError Traceback (most recent call last)

  5. <ipython-input-22-45e4baf7a246> in <module>()

  6. 2 print(str.zfill(30)) #指定字符串长度为30

  7. 3 print(str.zfill(2)) #指定字符串长度为2,小于原字符串长度。

  8. ----> 4 print(str.zfill()) #参数width为空,报错.

  9. TypeError: zfill() takes exactly 1 argument (0 given)

解决统计字符次数问题:

11.0 count()函数

描述:统计字符串里某个字符出现的次数。可以选择字符串索引的起始位置和结束位置。           

语法:str.count("char", start,end)  或 str.count("char")    -> int    返回整数

  • str —— 为要统计的字符(可以是单字符,也可以是多字符)。
  • star —— 为索引字符串的起始位置,默认参数为0。
  • end —— 为索引字符串的结束位置,默认参数为字符串长度即len(str)。

程序示例:

 
  1. str = "i love python,i am learning python"

  2. print(str.count("i")) #star 和end 为默认参数

  3. print(str.count("i",2)) # star值为2,end值为默认参数

  4. print(str.count("i",2,5)) #star值为2,end值为5

  5. print(str.count("am")) #多字符统计

程序运行结果:

 
  1. 3

  2. 2

  3. 0

  4. 1

 

解决编码问题:

12.0 encode()函数

描述:以指定的编码格式编码字符串,默认编码为 'utf-8'。

语法:str.encode(encoding='utf-8', errors='strict')     -> bytes (获得bytes类型对象)

  • encoding 参数可选,即要使用的编码,默认编码为 'utf-8'。字符串编码常用类型有:utf-8,gb2312,cp936,gbk等。
  • errors 参数可选,设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeEncodeError。 其它可能值有 'ignore', 'replace', 'xmlcharrefreplace'以及通过 codecs.register_error() 注册其它的值。

程序示例:

 
  1. str1 = "我爱祖国"

  2. str2 = "I love my country"

  3. print("utf8编码:",str1.encode(encoding="utf8",errors="strict")) #等价于print("utf8编码:",str1.encode("utf8"))

  4. print("utf8编码:",str2.encode(encoding="utf8",errors="strict"))

  5. print("gb2312编码:",str1.encode(encoding="gb2312",errors="strict"))#以gb2312编码格式对str1进行编码,获得bytes类型对象的str

  6. print("gb2312编码:",str2.encode(encoding="gb2312",errors="strict"))

  7. print("cp936编码:",str1.encode(encoding="cp936",errors="strict"))

  8. print("cp936编码:",str2.encode(encoding="cp936",errors="strict"))

  9. print("gbk编码:",str1.encode(encoding="gbk",errors="strict"))

  10. print("gbk编码:",str2.encode(encoding="gbk",errors="strict"))

程序运行结果:

 
  1. utf8编码: b'\xe6\x88\x91\xe7\x88\xb1\xe7\xa5\x96\xe5\x9b\xbd'

  2. utf8编码: b'I love my country'

  3. gb2312编码: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'

  4. gb2312编码: b'I love my country'

  5. cp936编码: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'

  6. cp936编码: b'I love my country'

  7. gbk编码: b'\xce\xd2\xb0\xae\xd7\xe6\xb9\xfa'

  8. gbk编码: b'I love my country'

注:在python中encode和decode分别指编码和解码

13.0 decode()函数

描述:以 encoding 指定的编码格式解码字符串,默认编码为字符串编码。

语法:str.decode(encoding='utf-8', errors='strict')

  • encoding ——要使用的编码,如:utf-8,gb2312,cp936,gbk等。

  • errors ——设置不同解码错误的处理方案。默认为 'strict',意为编码错误引起一个 UnicodeDecodeError。 其它可能得值有 'ignore', 'replace'以及通过 codecs.register_error() 注册的1其它值。

程序示例:

 
  1. s = "我爱祖国"

  2. str1 = s.encode(encoding="utf-8",errors="strict")

  3. str2 = s.encode("gb2312") #编码错误的处理方案默认为"strict"

  4. str3 = s.encode("gbk")

  5. print(str1.decode(encoding="utf-8",errors="strict"))#用utf-8的解码格式,解码str1.

  6. print(str1.decode(encoding="gbk",errors="ignore"))##如果以gbk的解码格式对str1进行解码得,将无法还原原来的字符串内容

  7. print(str1.decode(encoding="gbk",errors="strict"))

  8. print(str1.decode(encoding="gbk",errors="replace"))

  9. print("\n")

  10. print(str2.decode("gb2312"))

  11. print(str3.decode("gbk"))

程序运行结果:

 
  1. 我爱祖国

  2. 鎴戠埍绁栧浗

  3. 鎴戠埍绁栧浗

  4. 鎴戠埍绁栧浗

  5. 我爱祖国

  6. 我爱祖国

 注:在python3.x中,encode()函数只能用于字符串类型,而decode()函数只能用于字节数据类型。

程序示例中 str1,str2,str3都是字节数据类型(通过encode()函数把 字符串类型s 转换为字节数据类型)。

 

14.0 expandtabs()函数

描述:返回一个字符串的副本。expandtabs() 方法把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。

语法: str.expandtabs(tabsize=8)  —> str  返回字符串

  • tabsize 的默认值为8。tabsize值为0到7等效于tabsize=8。tabsize每增加1,原字符串中“\t”的空间会多加一个空格。

程序示例:

 
  1. str = "i love\tpython"

  2. print(str.expandtabs())#默认值为8

  3. print(str.expandtabs(tabsize=8))

  4. print(str.expandtabs())

  5. print(str.expandtabs(2)) #tabsize值为0到7,与tabsize值为8相同

  6. print(str.expandtabs(tabsize=2))

  7. print(str.expandtabs(tabsize=9))

  8. print(str.expandtabs(tabsize=10))

程序运行结果:

 
  1. i love python

  2. i love python

  3. i love python

  4. i love python

  5. i love python

  6. i love python

  7. i love python

 

解决查找指定字符(子字符串)位置问题:

15.0 find()函数

描述:查找字符串中指定的子字符串sub第一次出现的位置,可以规定字符串的索引查找范围。若无则返回 -1。

语法:str.find(sub,start,end) -> int 返回整数

  • sub —要索引的子字符串。
  • start —索引的起始位置。默认值为0。
  • end —索引的结束位置。默认值为字符串长度len(str)。
  • [start,end) 不包括end。

程序示例:

 
  1. str = "i love python"

  2. print(str.find("o")) #索引子字符串"o"

  3. print(str.find("0",4))#索引起始位置为4 索引范围为:ve python

  4. print(str.find("o",4,12))#索引起始位置为4,结束位置为12 索引范围为:ve pytho

  5. print(str.find(""))

  6. print(str.find(" "))#返回第一个空格出现的位置。

  7. print(str.find("k")) #索引子字符串"k",不存在,返回-1

程序运行结果:

 
  1. 3

  2. -1

  3. 11

  4. 0

  5. 1

  6. -1

16.0 rfind()函数

描述:查找字符串中指定的子字符串sub最后一次出现的位置,可以规定字符串的索引查找范围。若无则返回 -1。

语法:str.rfind(sub,start,end) -> int 返回整数

  • sub —要索引的子字符串。
  • start —索引的起始位置。默认值为0。
  • end —索引的结束位置。默认值为字符串长度len(str)。
  • [start,end) 不包括end。

注:rfind()函数用法与find()函数相似,rfind()函数返回指定子字符串最后一次出现的位置,find()函数返回指定子字符串第一次出现的位置。

程序示例:

 
  1. str = "i love python python"

  2. print(str.rfind("o")) #默认索引整个字符串str

  3. print(str.rfind("o",11)) #索引范围为:on python

  4. print(str.rfind("o",0,12)) #索引范围为 i love pytho

  5. print(str.rfind("python")) #返回最后一次出现"python"的位置,即字母"p"最后一次出现的位置。

  6. print(str.rfind("")) #等效于返回字符串str的长度。

  7. print(str.rfind(" "))#返回最后一个空格出现的位置

  8. print(str.rfind("2")) #字符串str中不存在字符"2",返回值为 -1

程序运行结果:

 
  1. 18

  2. 18

  3. 11

  4. 14

  5. 20

  6. 13

  7. -1

17.0 index()函数 

描述:查找字符串中第一次出现的子字符串的位置,可以规定字符串的索引查找范围[star,end)。若无则会报错。

语法:str.index(sub, start, end)  -> int  返回整数

  • sub —— 查找的子字符串。
  • start —— 索引的起始位置,默认为0。
  • end  —— 索引的结束位置,默认为字符串的长度。
  • [star,end)

程序示例:

 
  1. str = "i love python"

  2. print(str.index("o")) #默认索引整个字符串

  3. print(str.index("o",4)) #索引 ve python

  4. print(str.index("o",4,12)) #索引 ve pytho

  5. print(str.index("love")) #索引多个字符

  6. print(str.index("k")) #索引字符串不存在,报错

 程序运行结果:

 
  1. 3

  2. 11

  3. 11

  4. 2

  5. ---------------------------------------------------------------------------

  6. ValueError Traceback (most recent call last)

  7. <ipython-input-90-a880e13b1574> in <module>()

  8. 4 print(str.index("o",4,12)) #索引 ve pytho

  9. 5 print(str.index("love")) #索引多个字符

  10. ----> 6 print(str.index("k"))

  11. ValueError: substring not found

   注:index()函数和find()函数类似,但index()函数没有找到子字符串会报错。

18.0 rindex()函数

描述:查找字符串中最后一次出现的子字符串的位置,可以规定字符串的索引查找范围[star,end),若无则会报错。

语法:str.rindex(sub, start, end) -> int   返回整数。

  • sub —— 查找的子字符串。
  • start —— 索引的起始位置,默认为0。
  • end  ——  索引的结束位置,默认为字符串的长度。
  • [star,end)

注:rindex()函数用法与index()函数相似,rindex()函数返回指定子字符串最后一次出现的位置,index()函数返回指定子字符串第一次出现的位置。

程序示例:

 
  1. str = "i love python python"

  2. print(str.rindex("p")) #默认索引整个字符串

  3. print(str.rindex("o",5)) #索引的范围为:e python python

  4. print(str.rindex("o",5,13)) #索引范围为:e python

  5. print(str.rindex("python")) #返回最后一次出现"python"的位置,即字母"p"最后一次出现的位置。

  6. print(str.rindex("k")) #索引字符串不存在,报错

  7. len(str),str[5:13]

程序运行结果:

 
  1. 14

  2. 18

  3. 11

  4. 14

  5. ---------------------------------------------------------------------------

  6. ValueError Traceback (most recent call last)

  7. <ipython-input-116-44cc5c1acea1> in <module>()

  8. 4 print(str.rindex("o",5,13)) #索引范围为:e python

  9. 5 print(str.rindex("python")) #返回最后一次出现"python"的位置,即字母"p"最后一次出现的位置。

  10. ----> 6 print(str.rindex("k"))

  11. 7 len(str),str[5:13]

  12. ValueError: substring not found

 

解决格式化输出问题:

19.0 format()函数

描述:返回一个格式化的字符串。

语法:str.format(*args, **kwargs) ——> str 返回字符串    [模板字符串].format(逗号分隔的参数) 

或  {参数序号:格式控制标记}.format(逗号分隔的参数) 

  • 它是通过{}和:来代替%。
  • 模板字符串是一个由槽(用大括号{}来表示)和字符串组成的字符串,用来控制字符串的显示效果。
  • 大括号{}对应着format()中逗号分隔的参数。

format()基本用法 :

语法:[模板字符串].format(逗号分隔的参数) 

 通过位置 

程序示例:

 
  1. print("用法一:")

  2. print("一日之计在于{}".format("晨"))

  3. #如果模板字符串有多个槽{},并且槽内没有指定的序号,则按照槽{}出现的顺序一一对应format()函数中的不同参数

  4. print("用法二:")

  5. print("{}之计在于{}".format("一日","晨"))

  6. #也可以通过在槽{}中指定format()函数中参数的序号来使用,参数是从0开始编号的。

  7. print("用法三:")

  8. print("{0}之计在于{1}".format("一日","晨"))

  9. print("{1}之计在于{0}".format("晨","一日"))

  10. # 如果想要在模板字符串中输出大括号("{}"),则使用{{ 来表示 { 用 }} 来表示 }

  11. print("用法四:")

  12. print("{0}说得好:{{一{1}之计在于晨 一{2}之计在于春}}".format("俗话","日","年"))

  13. #如果模板字符串中出现的槽{}和format()函数中参数个数不一致,

  14. #则必须要在槽{}中使用序号来指定参数的使用,否者会产生IndexError的错误。

  15. print("用法五:")

  16. print("{0}日之计在于晨, {0}年之计在于春".format("一"))

  17. print("{}日之计在于晨, {}年之计在于春".format("一")) #槽中没有指定参数序号,会报错。

程序运行结果:

 
  1. 用法一:

  2. 一日之计在于晨

  3. 用法二:

  4. 一日之计在于晨

  5. 用法三:

  6. 一日之计在于晨

  7. 一日之计在于晨

  8. 用法四:

  9. 俗话说得好:{一日之计在于晨 一年之计在于春}

  10. 用法五:

  11. 一日之计在于晨, 一年之计在于春

  12. ---------------------------------------------------------------------------

  13. IndexError Traceback (most recent call last)

  14. <ipython-input-20-5f7b4f063a3b> in <module>()

  15. 19 print("用法五:")

  16. 20 print("{0}日之计在于晨, {0}年之计在于春".format("一"))

  17. ---> 21 print("{}日之计在于晨, {}年之计在于春".format("一")) #槽中没有指定参数序号,会报错。

  18. IndexError: tuple index out of range

 通过关键字参数 

程序示例: 

print("{year}之计在于{season}".format(year="一年",season="春"))

程序运行结果:

一年之计在于春

通过列表  

程序示例:

 
  1. l = ["一日","晨","一年","春"]

  2. a = ["一日","晨"]

  3. b = ["一年","春"]

  4. print("{0[0]}之计在于{0[1]}, {0[2]}之计在于{0[3]}".format(l))

  5. #format()函数中的参数可以是一个或多个列表,但要注意槽中序号的差异。

  6. print("{0[0]}之计在于{0[1]}, {1[0]}之计在于{1[1]}".format(a,b))

程序运行结果:

 
  1. 一日之计在于晨, 一年之计在于春

  2. 一日之计在于晨, 一年之计在于春

通过字典

程序示例:

 
  1. d1 = {"year":"一年","season":"春"}

  2. print(" {year}之计在于{season}".format(**d1))

  3. d2 = {"time":["一日","一年"],"season":["晨","春"]}

  4. print("{time[0]}之计在于{season[0]},{time[1]}之计在于{season[1]}".format(**d2))

程序运行结果:

 
  1. 一年之计在于春

  2. 一日之计在于晨,一年之计在于春

format()函数格式控制方法:

语法:{参数序号:格式控制标记}.format(逗号分隔的参数) 

槽中格式控制标记规则
       :           [填充]   [对齐]   [宽度]               [,]              [.精度]            [类型]
引导符号要填充的单个字符

< 左对齐

> 右对齐

^ 居中对齐

设定槽的输出宽度

数字的千位分隔符

适用于整数和浮点数

用于控制浮点数小数部分

的精度(长度)

或字符串的最大输出长度

整数类型:b,c,d,o,x,X

浮点数类型:e,E,f,%

[填充]——只能填充单个字符。填充字符时,一定要选择对齐方式,否者会有 Invalid format specifier 的报错

[对齐]——默认对齐方式为左对齐。

[宽度]——指的是槽的输出宽度,当槽的实际宽度比槽的设定宽度大,则输出槽的实际宽度,否者按设定的宽度输出。

[类型]——解析如下表

整数和浮点数类型的输出格式
类型描述类型描述
b输出整数的二进制形式e输出浮点数对应的小写字母e的指数形式
c输出整数对应的Unicode字符E输出浮点数对应的大写字母E的指数形式
d输出整数的十进制形式f输出标准浮点数形式
o输出整数的八进制形式%输出浮点数的百分比形式
x输出整数的小写十六进制形式
X输出整数的大写写十六进制形式

格式控制标记规则:[填充], [对齐], [宽度], [,], [.精度], [类型]  这六个规则是可以任意组合使用的,但要按以上顺序使用。不过一般可以分为两组。

一组为:[填充] [对齐] [宽度]   主要用于规范字符串的显示格式。

程序示例:

 
  1. s = "厉害了,我的国"

  2. print("{0:30}".format(s)) #默认为左对齐,宽度为30,序号0可省

  3. print("{0:>30}".format(s)) #右对齐

  4. print("{0:*>30}".format(s)) #填充*字符,右对齐

  5. print("{0:*^30}".format(s)) #居中对齐

  6. print("{0:*30}".format(s)) #填充字符时,没有选择对齐方式,会有 Invalid format specifier 的报错

程序运行结果:

 
  1. 厉害了,我的国

  2. 厉害了,我的国

  3. ***********************厉害了,我的国

  4. ***********厉害了,我的国************

  5. ---------------------------------------------------------------------------

  6. ValueError Traceback (most recent call last)

  7. <ipython-input-86-959132fb938a> in <module>()

  8. 4 print("{0:*>30}".format(s)) #填充*字符,右对齐

  9. 5 print("{0:*^30}".format(s)) #居中对齐

  10. ----> 6 print("{0:*30}".format(s)) #填充字符时,没有选择对齐方式,会有 Invalid format specifier 的报错

  11. ValueError: Invalid format specifier

格式控制标记规则也可以用变量来表示,即用槽{}来指定对应的格式控制标记规则。

程序示例:

 
  1. s = "厉害了,我的国"

  2. a = "*"

  3. b = "^"

  4. c = 30

  5. d = ["<","^",">"]

  6. print("{0:{1}{2}{3}}".format(s,a,b,c)) #居中对齐,宽度为30,填充字符为*

  7. print("{0:{1}{2[2]}{3}}".format(s,a,d,c))#右对齐,用列表选择对齐方式。

  8. print("{0:{1}{2[0]}{3}}".format(s,a,d,c))

  程序运行结果:

 
  1. ***********厉害了,我的国************

  2. ***********************厉害了,我的国

  3. 厉害了,我的国***********************

 另一组为:[,]  [.精度]  [类型]   主要于规范数字的输出格式和控制字符串的输出长度。

程序示例:

 
  1. print("{0:,}".format(123456789)) # 千位分隔符

  2. print("{:,.3}".format(123456.123)) #保留3为有效数字

  3. print("{:.3}".format("厉害了,我的国")) # 输出前三个字符

  4. #输出整数类型的格式化规则:

  5. #print("输出整数的二进制形式:{0:b}\n输出整数对应的Unicode字符:{0:c}\n输出整数的十进制形式:{0:d}\n输出整数的八进制形式:{0:o}\n输出整数的小写十六进制形式:{0:x}\n输出整数的大写写十六进制形式:{0:X}".format(123456))

  6. # 等效于一下语句:

  7. print("输出整数的二进制形式: {:b}".format(123456))

  8. print("输出整数对应的Unicode字符: {:c}".format(123456))

  9. print("输出整数的十进制形式: {:d}".format(123456))

  10. print("输出整数的八进制形式: {:o}".format(123456))

  11. print("输出整数的小写十六进制形式: {:x}".format(123456))

  12. print("输出整数的大写写十六进制形式: {:X}".format(123456))

  13. #输出浮点数类型的格式化规则:

  14. print("输出浮点数对应的小写字母e的指数形式: {:e}".format(123456.123456))

  15. print("输出浮点数对应的大写字母E的指数形式: {:E}".format(123456.123456))

  16. print("输出标准浮点数形式: {:f}".format(123456.123456))

  17. print("输出浮点数的百分比形式: {:%}".format(123456.123456))

  18. #对比 [.精度]可以控制小数部分的输出长度

  19. print("输出浮点数对应的小写字母e的指数形式: {:.3e}".format(123456.123456))

  20. print("输出浮点数对应的大写字母E的指数形式: {:.3E}".format(123456.123456))

  21. print("输出标准浮点数形式: {:.3f}".format(123456.123456))

  22. print("输出浮点数的百分比形式: {:.3%}".format(123456.123456))

程序运行结果:

 
  1. 123,456,789

  2. 1.23e+05

  3. 厉害了

  4. 输出整数的二进制形式: 11110001001000000

  5. 输出整数对应的Unicode字符: ?

  6. 输出整数的十进制形式: 123456

  7. 输出整数的八进制形式: 361100

  8. 输出整数的小写十六进制形式: 1e240

  9. 输出整数的大写写十六进制形式: 1E240

  10. 输出浮点数对应的小写字母e的指数形式: 1.234561e+05

  11. 输出浮点数对应的大写字母E的指数形式: 1.234561E+05

  12. 输出标准浮点数形式: 123456.123456

  13. 输出浮点数的百分比形式: 12345612.345600%

  14. 输出浮点数对应的小写字母e的指数形式: 1.235e+05

  15. 输出浮点数对应的大写字母E的指数形式: 1.235E+05

  16. 输出标准浮点数形式: 123456.123

  17. 输出浮点数的百分比形式: 12345612.346%

综合运用实例:

程序示例:

 
  1. print("{:*^30,.2f}".format(123456.1235))#用*字符填充,居中对齐,宽度为30,千位分隔符,保留小数点后两位,输出标准浮点数

  2. s = "一年有:"

  3. a = 365.0000

  4. b = "天"

  5. print("{0:*>8}{1:,.1f}{2:*<5}".format(s,a,b))

程序运行结果:

 
  1. **********123,456.12**********

  2. ****一年有:365.0天****

20.0 format_map()函数

描述:返回字符串的格式化版本。

语法:str.format_map(mapping)  -> str 返回字符串

程序示例:

 
  1. student = {"name":["张三","李四"],"idcard":[1,2]}

  2. print("我的名字是{name[0]},我的学号是{idcard[0]}".format_map(student))

  3. print("我的名字是{name[0]},我的学号是{idcard[1]}".format_map(student))

  4. print(["我的名字是{},我的学号是{}".format(*x) for x in zip(student["name"],student["idcard"])]) #以列表的形式输出

  5. print("我的名字是{},我的学号是{}".format(*x) for x in zip(student["name"],student["idcard"]))

  6. print(["我的名字是{},我的学号是{}".format(*x) for x in zip(*map(student.get,["name","idcard"]))]) #以列表的形式输出

  7. print("我的名字是{},我的学号是{}".format(*x) for x in zip(*map(student.get,["name","idcard"])))

  8. for i in range(len(student)):

  9. print("我的名字是{{name[0]}},我的学号是{{idcard[0]}}".format(i).format_map(student))

  10. # {{ }} 等效于{ }

程序运行结果:

 
  1. 我的名字是张三,我的学号是1

  2. 我的名字是张三,我的学号是2

  3. ['我的名字是张三,我的学号是1', '我的名字是李四,我的学号是2']

  4. <generator object <genexpr> at 0x0000018F5E1CFF68>

  5. ['我的名字是张三,我的学号是1', '我的名字是李四,我的学号是2']

  6. <generator object <genexpr> at 0x0000018F5E1CF200>

  7. 我的名字是张三,我的学号是1

  8. 我的名字是张三,我的学号是1

注:使用format和format_map方法都可以进行字符串格式化,但format是一种所有情况都能使用的格式化方法,format_map仅使用于字符串格式中可变数据参数来源于字典等映射关系数据时才可以使用。format_map的参数不需传入“关键字=真实值”,而是直接传入真实的字典值。

student = {"name":["张三","李四"],"idcard":[1,2]}

print("我的名字是{name[0]},我的学号是{idcard[0]}".format_map(student))

等价于:

print("我的名字是{name[0]},我的学号是{idcard[0]}".format(**student))

 

 

解决判断问题(返回bool类型)

21.0 endswith()函数

描述:判断字符串是否以指定字符或子字符串结尾。

语法:str.endswith("suffix", start, end) 或

str[start,end].endswith("suffix")    用于判断字符串中某段字符串是否以指定字符或子字符串结尾。

—> bool    返回值为布尔类型(True,False)

  • suffix — 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略,常用于判断文件类型)。
  • start —索引字符串的起始位置。
  • end — 索引字符串的结束位置。
  • str.endswith(suffix)  star默认为0,end默认为字符串的长度len(str)

  注意:空字符的情况。返回值通常为True

程序示例:

 
  1. str = "i love python"

  2. print("1:",str.endswith("n"))

  3. print("2:",str.endswith("python"))

  4. print("3:",str.endswith("n",0,6))# 索引 i love 是否以“n”结尾。

  5. print("4:",str.endswith("")) #空字符

  6. print("5:",str[0:6].endswith("n")) # 只索引 i love

  7. print("6:",str[0:6].endswith("e"))

  8. print("7:",str[0:6].endswith(""))

  9. print("8:",str.endswith(("n","z")))#遍历元组的元素,存在即返回True,否者返回False

  10. print("9:",str.endswith(("k","m")))

  11. #元组案例

  12. file = "python.txt"

  13. if file.endswith("txt"):

  14. print("该文件是文本文件")

  15. elif file.endswith(("AVI","WMV","RM")):

  16. print("该文件为视频文件")

  17. else:

  18. print("文件格式未知")

程序运行结果:

 
  1. 1: True

  2. 2: True

  3. 3: False

  4. 4: True

  5. 5: False

  6. 6: True

  7. 7: True

  8. 8: True

  9. 9: False

  10. 该文件是文本文件

22.0 startswith()函数

描述:判断字符串是否以指定字符或子字符串开头。

语法:str.startwith("suffix", start, end) 或

str[start : end].startswith("suffix")    用于判断字符串中某段字符串是否以指定字符或子字符串结尾。

—> bool    返回值为布尔类型(True,False)

  • suffix — 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略)。
  • start —索引字符串的起始位置。
  • end — 索引字符串的结束位置。
  • str.startswith(suffix)  star默认为0,end默认为字符串的长度减一(len(str)-1)。

注意:空字符的情况。返回值通常也为True

程序示例:

 
  1. str = "hello,i love python"

  2. print("1:",str.startswith("h"))

  3. print("2:",str.startswith("l",2,10))# 索引 llo,i lo 是否以“n”结尾。

  4. print("3:",str.startswith("")) #空字符

  5. print("4:",str[0:6].startswith("h")) # 只索引 hello,

  6. print("5:",str[0:6].startswith("e"))

  7. print("6:",str[0:6].startswith(""))

  8. print("7:",str.startswith(("h","z")))#遍历元组的元素,存在即返回True,否者返回False

  9. print("8:",str.startswith(("k","m")))

程序运行结果:

 
  1. 1: True

  2. 2: True

  3. 3: True

  4. 4: True

  5. 5: False

  6. 6: True

  7. 7: True

  8. 8: False

23.0 isalnum()函数

描述:检测字符串是否全部由字母和数字组成。

语法:str.isalnum()  -> bool  返回值为布尔类型(True,False)

  • str中至少有一个字符且所有字符都是字母或数字则返回 True,否则返回 False

程序示例:

 
  1. str1 = "i love python 666" #有空格,不全是字母或数字

  2. str2 = "python" #全为字母

  3. str3 = "123" #全为数字

  4. str4 = "python666" #字母和数字的组合

  5. print(str1.isalnum())

  6. print(str2.isalnum())

  7. print(str3.isalnum())

  8. print(str4.isalnum())

程序运行结果:

 
  1. False

  2. True

  3. True

  4. True

24.0 isalpha()函数

描述:检测字符串是否只由字母组成(注:包括汉字也返回True)。

语法:str.isalpha()  -> bool  返回值为布尔类型(True,False)

  • 字符串中至少有一个字符且所有字符都是字母则返回 True,否则返回 False。

程序示例:

 
  1. str1 = "python" #全为字母

  2. str2 = " python" #存在空格

  3. str3 = "123" #全为数字

  4. str4 = "python666" #字母和数字的组合

  5. print(str1.isalpha())

  6. print(str2.isalpha())

  7. print(str3.isalpha())

  8. print(str4.isalpha()

程序运行结果:

 
  1. True

  2. False

  3. False

  4. False

25.0 isdecimal()函数

描述:检查字符串是否只包含十进制字符。该方法只存在于unicode对象中。

注意:定义一个十进制字符串,只需要在字符串前添加前缀 'u' 即可。

语法: str.isdecimal()  -> bool  返回值为布尔类型(True,False)

  • 字符串中若只包含十进制字符返回True,否则返回False。

程序示例:

 
  1. str1 = u"123456" # u代表unicode编码

  2. str2 = u"python666"

  3. str3 = "123456" # 默认是unicode编码

  4. str4 = "python666"

  5. print(str1.isdecimal())

  6. print(str2.isdecimal())

  7. print(str3.isdecimal())

  8. print(str4.isdecimal())

程序运行结果:

 
  1. True

  2. False

  3. True

  4. False

26.0 isdigit()函数

描述:检测字符串是否只由数字组成.

语法: str.isdigit()  -> bool  返回值为布尔类型(True,False)

  • 字符串中至少有一个字符且所有字符都是数字则返回 True,否则返回 False。
  • 注:能判断“①”,不能判断中文数字。但 isnumeric() 函数可以。

程序示例:

 
  1. str1 = "python" #全为字母

  2. str2 = " python" #存在空格

  3. str3 = "123" #全为数字

  4. str4 = "python666" #字母和数字的组合

  5. str5 = "一二三四五六七" #中文数字输出False

  6. str6 = "①"

  7. print(str1.isdigit())

  8. print(str2.isdigit())

  9. print(str3.isdigit())

  10. print(str4.isdigit())

  11. print(str5.isdigit())

  12. print(str6.isdigit())

程序运行结果:

 
  1. False

  2. False

  3. True

  4. False

  5. False

  6. True

27.0 isidentifier()函数

描述:判断str是否是有效的标识符。str为符合命名规则的变量,保留标识符则返回True,否者返回False。

标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。

语法:str.isidentifier()  -> bool  返回值为布尔类型(True,False)

程序示例:

 
  1. str1 = "123" #变量名为123

  2. str2 = "def" #变量名为保留字

  3. str3 = "_123" #变量名有下划线开头

  4. str4 = "student"#变量名由字母开端

  5. print(str1.isidentifier())

  6. print(str2.isidentifier())

  7. print(str3.isidentifier())

  8. print(str4.isidentifier())

程序运行结果:

 
  1. False

  2. True

  3. True

  4. True

28.0  islower()函数

描述:检测字符串中的字母是否全由小写字母组成。(注:字符串中可包含非字母字符)

语法:str.islower()  -> bool   返回值为布尔类型(True,False)

  • 字符串中包含至少一个区分大小写的字符,且所有这些区分大小写的字符都是小写,则返回 True,否则返回 False。

程序示例:

 
  1. str1 = "i love python" #字符串中的字母全为小写

  2. str2 = "我爱python!" #字符串中的字母全为小写,也存在非字母的字符

  3. str3 = "I love python" #字符串中有大写字符

  4. print(str1.islower())

  5. print(str2.islower())

  6. print(str3.islower())

程序运行结果:

 
  1. True

  2. True

  3. False

29.0 isupper()函数

描述:检测字符串中的字母是否全由大写字母组成。(字符串中可包含非字母字符)。

语法:str.isupper()  -> bool  返回值为布尔类型(True,False)

  • 字符串中包含至少一个区分大小写的字符,且所有这些区分大小写的字符都是大写,则返回 True,否则返回 False。

程序示例:

 
  1. str1 = "I LOVE PYTHON" #全为大写字母

  2. str2 = "i LOVE PYTHON" #存在小写字母

  3. str3 = "我爱PYTHON" #存在非字母的字符

  4. print(str1.isupper())

  5. print(str2.isupper())

  6. print(str3.isupper())

程序运行结果:

 
  1. True

  2. False

  3. True

30.0 isnumeric()函数

描述:测字符串是否只由数字组成。这种方法是只适用于unicode对象。

注:把一个字符串定义为Unicode,只需要在字符串前添加 前缀 'u' 

语法:str.isnumeric()  -> bool  返回值为布尔类型(True,False)

  • 字符串中只包含数字字符,则返回 True,否则返回 False。
  • 与isdigit()函数类似,但isnumeric()函数可以判断中文数字,功能更强大。

程序示例:

 
  1. str1 = u"123456" #全为数字

  2. str2 = "123456"

  3. str3 = "python666" #字母数字组合

  4. str4 = "一二三四五六" #中文数字

  5. str5 = "①"

  6. print(str1.isnumeric())

  7. print(str2.isnumeric())

  8. print(str3.isnumeric())

  9. print(str4.isnumeric())

  10. print(str5.isnumeric())

程序运行结果:

 
  1. True

  2. True

  3. False

  4. True

  5. True

31.0 isprintable()函数

描述:判断字符串中是否有打印后不可见的内容。如:\n \t  等字符。

语法:  str.isprintable()  -> bool 返回值为布尔类型(True,False)

  • 若字符串中不存在\n \t 等不可见的内容,则返回True,否者返回False。

程序示例:

 
  1. str1 = "i love python" #不存在用print()打印后不可见的内容

  2. str2 = "i love python \n" #存在用print()打印后不可见的内容 \n

  3. str3 = "i love \t python"

  4. print(str1.isprintable())

  5. print(str2.isprintable())

  6. print(str3.isprintable())

程序运行结果:

 
  1. True

  2. False

  3. False

32.0 isspace()函数

描述: 检测字符串是否只由空格组成。

语法:str.isspace()  -> bool   返回值为布尔类型(True,False)

  • 若字符串中只包含空格,则返回 True,否则返回 False。

程序示例:

 
  1. str1 = " "#空格

  2. str2 = "i love python"

  3. print(str1.isspace())

  4. print(str2.isspace())

  5. print(str2[1].isspace()) #字符串str2 的第二个字符为空格

程序运行结果:

 
  1. True

  2. False

  3. True

33.0 istitle()函数

描述:检测判断字符串中所有单词的首字母是否为大写,且其它字母是否为小写,字符串中可以存在其它非字母的字符。

语法:str.istitle()  -> bool  返回值为布尔类型(True,False)

  • 若字符串中所有单词的首字母为大写,且其它字母为小写,则返回 True,否则返回 False.

程序示例:

 
  1. str1 = "I Love Python" #各单词的首字母均为大写,其余字母为小写

  2. str2 = "I love python"

  3. str3 = "I LOVE PYTHON"

  4. str4 = "我爱Python" #存在其它非字母字符,

  5. print(str1.istitle())

  6. print(str2.istitle())

  7. print(str3.istitle())

  8. print(str4.istitle())

程序运行结果:

 
  1. True

  2. False

  3. False

  4. True

 

 

 

解决字符串两端:

34.0  strip()函数

描述:从字符串str中去掉在其左右两边chars中列出的字符。作为单字符处理,而不是一个整体去除。

注:chars传入的是一个字符数组,编译器去除两端所有相应的字符,直到出现第一个在chars中不匹配的字符。详看示例。

语法: str.strip(chars)  -> str 返回一个新的字符串

  • chars —— 要去除的字符  默认为空格或换行符。

程序示例:

 
  1. str = "123456789321"

  2. print(str.strip("123")) #除去123,对于字符串str右边,1 在 "123"中去除,2在"123"中去除,同理3也去除,但9不在"123"中,去除结束

  3. str1 = "my name is ymyyyy"

  4. print(str1.strip("my")) #"my" 无空格,字母n前的空格不去掉。

  5. print(str1.strip("my ")) #"my "有空格,所以str1左边字母n前的空格被去掉。

程序运行结果:

 
  1. 456789

  2. name is

  3. name is

35.0 lstrip()函数

描述:从字符串str中去掉在其左边chars中列出的字符。

注:chars传入的是一个字符数组,编译器去除两端所有相应的字符,直到出现第一个在chars中不匹配的字符。详看示例。

语法:str.lstrip(chars)  -> str 返回一个新的字符串

  • chars —— 要去除的字符  默认为空格或换行符。

程序示例:

 
  1. str1 = "bacjabck123kluabc"

  2. print(str1.lstrip("abc")) #只去掉左边的"bac",左边第4个字符j不在"abc"中,去除结束

  3. str2 = "12578asdfgh12"

  4. print(str2.lstrip("12")) #只去掉字符串str2左边的 12

程序运行结果:

 
  1. jabck123kluabc

  2. 578asdfgh12

36. rstrip()函数

描述:从字符串str中去掉在其右边chars中列出的字符。

注:chars传入的是一个字符数组,编译器去除两端所有相应的字符,直到出现第一个在chars中不匹配的字符。详看示例。

语法:str.rstrip(chars)  -> str 返回一个新的字符串

  • chars —— 要去除的字符  默认为空格或换行符。

程序示例:

 
  1. str1 = "abcjabck123kluabcca"

  2. print(str1.rstrip("abc")) #只去掉右边的"abcca",右边第6个字符u不在"abc"中,去除结束

  3. str2 = "12578asdfgh11112"

  4. print(str2.rstrip("12")) #只去掉字符串str2右边的 11112

程序运行结果:

 
  1. abcjabck123klu

  2. 12578asdfgh

 

解决 制表 翻译 问题:

37.0 maketrans()函数

描述:制作翻译表,删除表,常与translate()函数连用。 即:返回用于str.translate()函数翻译的的转换表。

语法:maketrans(x, y=None, z=None, /)  返回可用于str.translate()函数的转换表(即返回一个字典)

 
  1. str.maketrans(x,y,z) #返回的是Unicode映射的字典。

  2. bytes.maketrans(x,y) #返回的是bytes类型.

  3. bytearray.maketrans(x,y) #返回的是bytes类型。

  • 如果只有一个参数x,它必须是一个字典且为Unicode形式的映射。
  • 如果有两个参数x和y,它们必须是长度相等的字符串,并且在结果映射中,x中的每个字符都将映射到y中相同位置的字符(Unicode形式的映射)。
  • 如果有三个参数x,y和z.  x和y用法同上,z为指定要删除的字符串,其结果中的字符将一一映射为:None。
  • bytes.maketrans(x,y) 和  bytearray.maketrans(x,y) 必须要有x和y两个参数。
    注:z的长度可以和x和y不同。

str.maketrans(x,y,z)形式:

程序示例:

 
  1. s = "123456789"

  2. #只有参数x,且x为字典。

  3. map1 = str.maketrans({"1":"a","2":"b","3":"c"})

  4. #单字符"1" "2" "3"对应的Unicode编码值分别为:49,50,51

  5. #制作翻译表,将 字符串s 中的单字符"1"替换为单字符"a",单字符"2"替换为单字符"b",一一对应。

  6. print(map1,type(map1),ord("1"),ord("2"),ord("3")) #map1返回的是一个Unicode形式映射的字典

  7. #只有参数x和参数y

  8. map2 = str.maketrans("123","abc")

  9. #单字符"1" "2" "3"对应的Unicode编码值如上,单字符"a" "b" "c"对应的Unicode编码值分别为:97,98,99

  10. #制作翻译表,将字符串s中的单字符"1"替换为单字符"a",单字符"2"替换为单字符"b",一一对应

  11. print(map2,type(map2),ord("a"),ord("b"),ord("c"))#map2返回的也是一个Unicode形式映射的字典

  12. #有x,y,z三个参数

  13. map3 = str.maketrans("123","abc","56k")

  14. #字符串"123"和"abc"含义如上。字符串"567"为 字符串s 要删除的字符,即制作删除表。

  15. #单字符"5" "6" "k"对应的Unicode编码值分别为:53,54,107

  16. print(map3,type(map3),ord("5"),ord("6"),ord("k")) #map3返回的也是一个Unicode形式映射的字典

程序运行结果:

 
  1. 49: 'a', 50: 'b', 51: 'c'} <class 'dict'> 49 50 51

  2. {49: 97, 50: 98, 51: 99} <class 'dict'> 97 98 99

  3. {49: 97, 50: 98, 51: 99, 53: None, 54: None, 107: None} <class 'dict'> 53 54 107

  4. In [6]:

bytes.maketrans(x,y)形式:

程序示例:

 
  1. map4 = bytes.maketrans(b"123",b"abc")

  2. print(type(b"123"),type(b"abc"),type(map4),map4)

程序运行结果:

 
  1. <class 'bytes'> <class 'bytes'> <class 'bytes'>

  2. b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0abc456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'

bytearray.maketrans(x,y)形式:

程序示例:

 
  1. map5 = bytearray.maketrans(b"123",b"abc")

  2. print(type(b"123"),type(b"abc"),type(map5),map5)

程序运行结果:

 
  1. <class 'bytes'> <class 'bytes'> <class 'bytes'>

  2. b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0abc456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'

38.0 translate()函数

描述:过滤(删除),翻译字符串。即根据maketrans()函数给出的字符映射转换表来转换字符串中的字符。

注:translate()函数是先过滤(删除),再根据maketrans()函数返回的转换表来翻译。

语法:str.translate(table)  -> str 返回一个字符串

 
  1. str.translate(table)

  2. bytes.translate(table, deletechars)

  3. bytearray.translate(table, deletechars)

  • table —— 转换表,转换表是通过maketrans()函数转换而来。
  • deletechars —— 字符串中要过滤(删除)的字符。

程序示例:

 
  1. s = "123456789abc"

  2. s1 = b"123456789abc"

  3. #只有参数x,且x为字典。

  4. map1 = str.maketrans({"1":"a","2":"b","3":"c"})

  5. #单字符"1" "2" "3"对应的Unicode编码值分别为:49,50,51

  6. #制作翻译表,将 字符串s 中的单字符"1"替换为单字符"a",单字符"2"替换为单字符"b",一一对应。

  7. print(map1,type(map1),ord("1"),ord("2"),ord("3")) #map1返回的是一个Unicode形式映射的字典

  8. #只有参数x和参数y

  9. map2 = str.maketrans("123","abc")

  10. #单字符"1" "2" "3"对应的Unicode编码值如上,单字符"a" "b" "c"对应的Unicode编码值分别为:97,98,99

  11. #制作翻译表,将字符串s中的单字符"1"替换为单字符"a",单字符"2"替换为单字符"b",一一对应

  12. print(map2,type(map2),ord("a"),ord("b"),ord("c"))#map2返回的也是一个Unicode形式映射的字典

  13. #有x,y,z三个参数

  14. map3 = str.maketrans("123","abc","56k")

  15. #字符串"123"和"abc"含义如上。字符串"567"为 字符串s 要删除的字符,即制作删除表。

  16. #单字符"5" "6" "k"对应的Unicode编码值分别为:53,54,107

  17. print(map3,type(map3),ord("5"),ord("6"),ord("k")) #map3返回的也是一个Unicode形式映射的字典

  18. map4 = bytes.maketrans(b"123",b"abc")

  19. print(type(b"123"),type(b"abc"),type(map4),map4)

  20. print("\n")

  21. map5 = bytearray.maketrans(b"123",b"abc")

  22. print(type(b"123"),type(b"abc"),type(map5),map5)

  23. print("\n\n")

  24. print(s.translate(map1)) #将 字符串s 中的"123" 分别替换为 "abc"

  25. print(s.translate(map2)) #将 字符串s 中的"123" 分别替换为 "abc"

  26. print(s.translate(map3)) #先将 字符串s 中的字符 "5","6" ,"k"过滤(删除),再将 字符串s 中的"123" 分别翻译替换为 "abc"

  27. print(s1.translate(map4))

  28. print(s1.translate(map5))

  29. print(s1.translate(map4,b"78b")) #先将s1中的b"78b" 过滤(删除),再将 s1 中的b"123" 分别翻译替换为 b"abc"

  30. print(s1.translate(map5,b"9")) #先将s1中的b"9" 过滤(删除),再将 s1 中的b"123" 分别翻译替换为 b"abc"

程序运行结果:

 
  1. {49: 'a', 50: 'b', 51: 'c'} <class 'dict'> 49 50 51

  2. {49: 97, 50: 98, 51: 99} <class 'dict'> 97 98 99

  3. {49: 97, 50: 98, 51: 99, 53: None, 54: None, 107: None} <class 'dict'> 53 54 107

  4. <class 'bytes'> <class 'bytes'> <class 'bytes'> b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0abc456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'

  5. <class 'bytes'> <class 'bytes'> <class 'bytes'> b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0abc456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'

  6. abc456789abc

  7. abc456789abc

  8. abc4789abc

  9. b'abc456789abc'

  10. b'abc456789abc'

  11. b'abc4569ac'

  12. b'abc45678abc'

 

解决分割字符串问题:

39.0 partition()函数:

描述:根据指定的分隔符(sep)将字符串进行分割。从字符串左边开始索引分隔符sep,索引到则停止索引。

语法: str.partition(sep) -> (head, sep, tail)  返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。

  • sep —— 指定的分隔符。
  • 如果字符串包含指定的分隔符sep,则返回一个三元元组,第一个为分隔符sep左边的子字符串,第二个为分隔符sep本身,第三个为分隔符sep右边的子字符串。

  • 如果字符串不包含指定的分隔符sep,仍然返回一个三元元组,第一个元素为字符串本身,第二第三个元素为空字符串

程序示例:

 
  1. str = "https://www.baidu.com/"

  2. print(str.partition("://")) #字符串str中存在sep"://"

  3. print(str.partition(",")) #字符串str中不存在sep",",返回了两个空字符串。

  4. print(str.partition(".")) #字符串str中存在两个"." 但索引到www后的"." 停止索引。

  5. print(type(str.partition("://"))) #返回的是tuple类型, 即元组类型

程序运行结果:

 
  1. ('https', '://', 'www.baidu.com/')

  2. ('https://www.baidu.com/', '', '')

  3. ('https://www', '.', 'baidu.com/')

  4. <class 'tuple'>

40.0  rpartition()函数

描述:根据指定的分隔符(sep)将字符串进行分割。从字符串右边(末尾)开始索引分隔符sep,索引到则停止索引。

语法:str.rpartition(sep)  -> (head, sep, tail) 返回一个三元元组,head:分隔符sep前的字符串,sep:分隔符本身,tail:分隔符sep后的字符串。

  • sep —— 指定的分隔符。
  • 如果字符串包含指定的分隔符sep,则返回一个三元元组,第一个为分隔符sep左边的子字符串,第二个为分隔符sep本身,第三个为分隔符sep右边的子字符串。

  • 如果字符串不包含指定的分隔符sep,仍然返回一个三元元组,第一个元素为字符串本身,第二第三个元素为空字符串。

注:rpartition()函数与partition()函数用法相似,rpartition()函数从右边(末尾)开始索引,partition()函数从左边开始索引。

程序示例:

 
  1. str = "https://www.baidu.com/"

  2. print(str.rpartition("://")) #字符串str中存在sep"://"

  3. print(str.rpartition(",")) #字符串str中不存在sep",",返回了两个空字符串。

  4. print(str.rpartition(".")) #字符串str中存在两个"." 但索引是从右边(末尾)开始,索引到du后的"." 停止索引。

  5. print(type(str.partition("://"))) #返回的也是tuple类型, 即元组类型

程序运行结果:

 
  1. ('https', '://', 'www.baidu.com/')

  2. ('', '', 'https://www.baidu.com/')

  3. ('https://www.baidu', '.', 'com/')

  4. <class 'tuple'>

41.0  split()函数

描述:拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表。

语法: str.split(sep=None, maxsplit=-1)  -> list of strings  返回 字符串列表  或str.split(sep=None, maxsplit=-1)[n]  

  • sep —— 分隔符,默认为空格,但不能为空即(")。
  • maxsplit —— 最大分割参数,默认参数为-1。
  • [n] —— 返回列表中下标为n的元素。列表索引的用法。

程序示例:

 
  1. str1 = "i love python"

  2. str2 = "https://www.baidu.com"

  3. str3 = "script<i love python>script"

  4. str4 = "i \n love \n python"

  5. print(str1.split()) #默认空格分割。

  6. print(str2.split("."))#以"."为分隔符,maxsplit默认为-1

  7. print(str2.split(".",-1)) #maxsplit为-1

  8. print(str2.split(".",1)) #以"."为分隔符,分割一次。

  9. print(str2.split(".")[1]) #分割后,输出列表中下标为1的元素

  10. print(str3.split("<")[1].split(">")[0])

  11. print(str4.split("\n")) #可用于去掉字符串中的"\n" "\t"等

程序运行结果:

 
  1. ['i', 'love', 'python']

  2. ['https://www', 'baidu', 'com']

  3. ['https://www', 'baidu', 'com']

  4. ['https://www', 'baidu.com']

  5. baidu

  6. i love python

  7. ['i ', ' love ', ' python']

42.0  rsplit()函数

描述:拆分字符串。通过指定分隔符sep对字符串进行分割,并返回分割后的字符串列表,类似于split()函数,只不过 rsplit()函数是从字符串右边(末尾)开始分割。

语法: str.rsplit(sep=None, maxsplit=-1)  -> list of strings  返回 字符串列表  或str.rsplit(sep=None, maxsplit=-1)[n]  

  • sep —— 分隔符,默认为空格,但不能为空即(")。
  • maxsplit —— 最大分割参数,默认参数为-1。
  • [n] —— 返回列表中下标为n的元素。列表索引的用法。

程序示例:

 
  1. str = "https://www.baidu.com"

  2. print(str.rsplit()) #默认空格分割。

  3. print(str.rsplit(".")) #以"."为分隔符,maxsplit默认为-1

  4. print(str.rsplit(".",1)) #以"."为分隔符,分割一次。从字符串右边(末尾)开始分割。

  5. print(str.rsplit(".",1)[1]) #分割后,输出列表中下标为1的元素

程序运行结果:

 
  1. ['https://www.baidu.com']

  2. ['https://www', 'baidu', 'com']

  3. ['https://www.baidu', 'com']

  4. com

43.0 splitlines()函数

描述:按照('\n', '\r', \r\n'等)分隔,返回一个包含各行作为元素的列表,默认不包含换行符。

符号描述
\n换行符
\r回车符
\r\n回车+换行

语法:str.splitlines(keepends) -> list of strings  返回 字符串列表

  • keepends —— 默认参数为False ,译为 不保留换行符。参数为True , 译为 保留换行符。

程序示例:

 
  1. s1 = """i

  2. love

  3. python

  4. """

  5. s2 = "i\nlove\npython\n" #与s1等效。

  6. s3 = "123\n456\r789\r\nabc"

  7. print(s1.splitlines(True))

  8. print(s1.splitlines()) #keepends 默认为False

  9. print(s1.splitlines(False))

  10. print(s2.splitlines())

  11. print(s3.splitlines()) #遇到("\n" "\r" "\r\n"等)即分隔。

程序运行结果:

 
  1. ['i\n', 'love\n', 'python\n']

  2. ['i', 'love', 'python']

  3. ['i', 'love', 'python']

  4. ['i', 'love', 'python']

  5. ['123', '456', '789', 'abc']

44.0 join()函数

描述:将iterable变量的每一个元素后增加一个str字符串。

语法: str.join(iterable)  -> str  返回字符串 即:返回一个以str作为分隔符,将iterable中的各元素合并连接成一个新的字符串。

  • str——分隔符。可以为空。
  • iterable—— 要连接的变量 ,可以是 字符串,元组,字典,列表等。

程序示例:

 
  1. #对列表进行操作

  2. l = ["1","2","3"]

  3. print(" ".join(l)) #以空格为分隔符

  4. print(",".join(l)) #以逗号为分隔符

  5. #对字符串进行操作

  6. str = "python"

  7. print(" ".join(str)) #以空格为分隔符

  8. print(",".join(str)) #以逗号为分隔符

  9. #对字典进行操作

  10. d = {"a":1,"b":2,"c":3}

  11. print(" ".join(d)) #以空格为分隔符

  12. print(",".join(d)) #以逗号为分隔符

  13. #对元组进行操作

  14. s = ("1","2","3")

  15. print(" ".join(s)) #以空格为分隔符

  16. print(",".join(s)) #以逗号为分隔符

程序运行结果:

 
  1. 1 2 3

  2. 1,2,3

  3. p y t h o n

  4. p,y,t,h,o,n

  5. b c a

  6. b,c,a

  7. 1 2 3

  8. 1,2,3

 

解决替换问题:

45.0 replace()函数:

描述:返回字符串str的副本,所有old子字符串被替换为new字符串。

语法:str.replace(old, new, count) -> str 返回字符串str的副本

  • old —— 将被替换的子字符串。
  • new —— 新子字符串,用于替换old子字符串。
  • count —— 替换的次数,默认全部替换。

程序示例:

 
  1. s = "i love python python "

  2. print(s.replace("o","w")) #默认字符串中的全部"o" 全部替换为"w"

  3. print(s.replace("o","w",2)) #只替换掉前两个子字符串 "o"

  4. print(s.replace("python","c++")) #子字符串可以是多个字符。

  5. print(s.replace("python","c++",1))

程序运行结果:

 
  1. i lwve pythwn pythwn

  2. i lwve pythwn python

  3. i love c++ c++

  4. i love c++ python

相关文章:

python字符串函数用法大全

目录 1.0 capitalize()函数 2.0 title()函数 3.0 swapcase()函数 4.0 lower()函数 5.0 upper()函数 7.0 center()函数 8.0 ljust()函数 9.0 rjust()函数 10.0 zfill()函数 11.0 count(&#xff09;函数 13.0 decode()函数 14.0 expandtabs()函数 15.0 find()函数 16.0 rfind()…...

纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!

Stimulsoft 2025.1 新版发布&#xff0c;旨在增强您创建报告、仪表板和 PDF 表单的体验&#xff01;此最新版本为您带来了许多改进和新功能&#xff0c;使数据处理更加高效和用户友好。亮点包括对 .NET 9 的支持、Microsoft Analysis Services 的新数据适配器、发布向导中适用于…...

【蓝桥杯——物联网设计与开发】Part2:OLED

目录 一、OLED &#xff08;1&#xff09;资源介绍 &#x1f505;原理图 &#x1f505;驱动原理 &#xff08;2&#xff09;STM32CubeMX 软件配置 &#xff08;3&#xff09;代码编写 &#xff08;4&#xff09;实验现象 二、OLED接口函数封装 &#x1f7e1;️OLED_Wri…...

壁纸样机神器,这个工具适合专业设计师用吗?

壁纸样机神器在一定程度上适合专业设计师使用&#xff0c;但是否适合具体取决于设计师的需求和使用场景&#xff1a; 适合专业设计师的方面 快速实现设计想法&#xff1a;专业设计师在创作过程中&#xff0c;有时需要快速将设计想法变为可视化的效果图&#xff0c;以便进行初…...

Linux环境(CentOs7) 安装 Node环境

Linux环境&#xff08;CentOs7&#xff09; 安装 Node环境 使用NodeSource安装Node.js 1、清除缓存&#xff08;可选但推荐&#xff09; sudo yum clean all2、添加NodeSource仓库&#xff0c;根据你想要安装的Node.js版本&#xff0c;选择相应的NodeSource安装脚本。例如&am…...

【Springboot知识】Springboot集成assembly打包组件

assembly系统打包 概述一、项目结构二、配置Maven Assembly插件三、配置assembly.xml四、打包项目五、部署和使用六、注意事项 assembly配置文件说明一、assembly配置文件的基本结构二、assembly配置文件的关键元素三、assembly配置文件的示例四、assembly配置文件与Spring Boo…...

逻辑推理算法

为说明逻辑推理算法的用法&#xff0c;下面是一个简单的逻辑推理算法的伪代码示例&#xff0c;使用了命题逻辑的推理规则&#xff08;例如&#xff1a;命题逻辑中的合取、析取、否定等&#xff09;。代码实现了一个简单的推理引擎&#xff0c;可以根据已知的前提推导出新的结论…...

鸿蒙1.2:第一个应用

1、create Project&#xff0c;选择Empty Activity 2、配置项目 project name 为项目名称&#xff0c;建议使用驼峰型命名 Bundle name 为项目包名 Save location 为保存位置 Module name 为模块名称&#xff0c;即运行时需要选择的模块名称&#xff0c;见下图 查看模块名称&…...

数据结构考前一天

线性表&#xff1a;矩阵&#xff0c;链表&#xff08;单链表必考&#xff09; 栈和队列&#xff1a;出入判断&#xff0c;括号匹配&#xff0c;中缀转后缀 字符串数组&#xff1a;模式匹配next&#xff0c;nextval数组&#xff0c;数组寻址&#xff0c;三角矩阵对应一维数组k…...

【记录】Angr|Angr 标准库函数替换怎么看哪些库函数被Angr支持?

文章目录 前言分析什么是库函数替换?为什么需要库函数替换? 如何查找支持的库函数官方支持列表目录结构说明 常用的替换包括哪些&#xff1f;1. 字符串处理函数2. 内存管理函数3. 文件操作函数 高级技巧1. 自定义库函数实现2. 条件替换 常见问题与解决方案详解1. 找不到合适的…...

npx和npm和pnpm的异同

npx、npm 和 pnpm 都是用于管理和运行 JavaScript/Node.js 包的工具&#xff0c;但它们的功能和使用场景有所不同。以下是它们之间的异同点&#xff1a; 一、共同点 Node.js 包管理生态的一部分&#xff1a; 它们都围绕 Node.js 生态系统&#xff0c;提供包管理功能。 支持安装…...

【蓝桥杯比赛-C++组-经典题目汇总】

1. 最短路 题目描述&#xff1a; 如下图所示&#xff0c;G是一个无向图&#xff0c;其中蓝色边的长度是1、橘色边的长度是2、绿色边的长度是3。 则从 A 到 S 的最短距离是多少&#xff1f; #include <iostream> #include <cstring> using namespace std; const i…...

redis7基础篇2 redis的主从模式1

目录 一 主从模式 1.1 主从复制的作用 1.2 配置常用命令 1.3 主从复制常见问题 1.4 主从复制的缺点 1.5 redis主从复制原理 二 redis主从复制的搭建流程 2.1 注意事项 2.2 redis的主从复制架构图 2.3 以6379.conf配置文件配置为例 2.4 以6380.conf配置文件配置为例 …...

QT----------QT Data Visualzation

实现思路&#xff1a; 配置项目&#xff1a;在 .pro 文件中添加 QT datavisualization 以引入 QT Data Visualization 模块。创建主窗口&#xff1a;使用 QMainWindow 作为主窗口&#xff0c;添加 Q3DScatter、Q3DBars 和 Q3DSurface 等三维视图组件。初始化和创建三维图表&a…...

默认ip无法访问,利用dhcp功能获取ip进行访问的方法

应用场景&#xff1a; ac的默认ip如192.168.1.1在pc与ac的eth2以后网口直连无法ping通&#xff0c;而且pc改为dhcp自动获取ip也获取不到ip地址&#xff0c;无法进行web配置和命令行操作。 原因是ac或其他设备被修改了默认ip或者端口vlanid&#xff0c;现在的端口vlan对应子接…...

重学 Android 自定义 View 系列(十):带指针的渐变环形进度条

前言 该篇文章根据前面 重学 Android 自定义 View 系列(六)&#xff1a;环形进度条 拓展而来。 最终效果如下&#xff1a; 1. 扩展功能 支持进度顺时针或逆时针显示在进度条末尾添加自定义指针图片使用线性渐变为进度条添加颜色效果 2. 关键技术点解析 2.1 进度方向控制的…...

websocket在各主流浏览器中默认的请求头是如何设置的?

谷歌浏览器(Chrome) 在谷歌浏览器中,当创建一个 WebSocket 连接时,会自动添加一些标准的请求头。其中包括Sec - WebSocket - Key,这个是一个 Base64 - 编码的随机值,长度为 16 字节。它用于在服务器端进行安全验证,确保连接的合法性。例如,Sec - WebSocket - Key: dGhl…...

C++之map和set的模拟实现

目录 引言 红黑树迭代器实现 红黑树元素的插入 map模拟实现 set模拟实现 之前我们已经学习了map和set的基本使用&#xff0c;但是因为map和set的底层都是用红黑树进行封装实现的&#xff0c;上期我们已经学习了红黑树的模拟实现&#xff0c;所以本期我们在红黑树模拟实现…...

大学物理(2)期末复习笔记【1】

图片不知道咋回事居然不能直接复制上来&#xff0c;过段时间修改好再编辑一下 9. 振动 一、振动 def&#xff1a;某一物理量在某一数值附近做周期性变化 周期&#xff08;T&#xff09;&#xff1a;完成一次往复运动所需要的时间&#xff08;s&#xff09; 频率&#xff08;…...

25.1.3

java数组&#xff1a; dataType[] arrayRefVar //推荐写法 //int[] mylist //或 dataType arrayRefVar[] //int mylist[]创建数组对象&#xff1a; arrayRefVar new dataType[arraySize]; dataType[] arrayRefVar new dataType[arraySize];for-each循环&#xff1a; jav…...

数据库知识汇总2

一. 范式 定义&#xff1a;范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式&#xff1b; 一个低一级范式的关系模式&#xff0c;通过模式分解&#xff08;schema decomposition&#xff09;可以转换为若干个高一…...

SpringBoot:生成条形码的项目

在软件开发中&#xff0c;条形码和二维码的生成与解析是一项常见需求&#xff0c;特别是在商品管理、物流跟踪、支付验证等场景。Spring Boot 作为一个流行的微服务框架&#xff0c;提供了快速构建应用的能力。本文将介绍如何在 Spring Boot 项目中生成条形码&#xff0c;并提供…...

docker内外如何实现ROS通信

写在前面 在一台电脑上装有docker&#xff0c;docker内外均装有ROS系统&#xff0c;现在想要实现docker内外的ROS通信&#xff0c;怎么办呢&#xff1f; 首先&#xff0c;因为是同一台电脑的docker内外&#xff0c;所以IP本身是互通的&#xff0c;不需要在/etc/hosts中添加IP…...

leetcode 面试经典 150 题:多数元素

链接多数元素题序号169题型数组解法1. 排序法、2. Boyer-Moore投票算法难度简单熟练度✅✅✅✅✅ 题目 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的…...

SpringBoot返回文件让前端下载的几种方式

01 背景 在后端开发中&#xff0c;通常会有文件下载的需求&#xff0c;常用的解决方案有两种&#xff1a; 不通过后端应用&#xff0c;直接使用nginx直接转发文件地址下载&#xff08;适用于一些公开的文件&#xff0c;因为这里不需要授权&#xff09;通过后端进行下载&#…...

论述数据、数据库、数据库管理系统、数据库系统的概念。

数据是指描述事物特征的符号记录&#xff0c;可以是数字、文字、图像、音频等形式。数据在现代社会中广泛存在于各个领域&#xff0c;对于组织和管理数据&#xff0c;提供数据的可靠性、一致性和安全性至关重要。 数据库是一个有组织的数据集合&#xff0c;它存储在计算机系统…...

【深度学习基础之多尺度特征提取】多尺度卷积神经网络(MS-CNN)是如何在深度学习网络中提取多尺度特征的?附代码(二)

【深度学习基础之多尺度特征提取】多尺度卷积神经网络&#xff08;MS-CNN&#xff09;是如何在深度学习网络中提取多尺度特征的&#xff1f;附代码&#xff08;二&#xff09; 【深度学习基础之多尺度特征提取】多尺度卷积神经网络&#xff08;MS-CNN&#xff09;是如何在深度…...

企业AAA认证的好处

体系认证#ISO三体系认证 #三体系认证好处 #企业双软认证好处 #ISO体系认证有哪些#体系认证办理流程及费用#招投标#招投标必备资质 企业信用评级AAA认证 办理条件及流程! 一、企业申请3A认证好处有哪些&#xff1f; 1.提高企业信誉&#xff1a; 拥有3A企业信用等级证书意味…...

PyTorch AMP 混合精度中grad_scaler.py的scale函数解析

PyTorch AMP 混合精度中的 scale 函数解析 混合精度训练&#xff08;AMP, Automatic Mixed Precision&#xff09;是深度学习中常用的技术&#xff0c;用于提升训练效率并减少显存占用。在 PyTorch 的 AMP 模块中&#xff0c;GradScaler 类负责动态调整和管理损失缩放因子&…...

分数阶傅里叶变换代码 MATLAB实现

function Faf myfrft(f, a) %分数阶傅里叶变换函数 %输入参数&#xff1a; %f&#xff1a;原始信号 %a&#xff1a;阶数 %输出结果&#xff1a; %原始信号的a阶傅里叶变换N length(f);%总采样点数 shft rem((0:N-1)fix(N/2),N)1;%此项等同于fftshift(1:N)&#xff0c;起到翻…...

腾讯云OCR在制造业的应用:内存模组产品识别实战指南

腾讯云OCR在制造业的应用 一、 背景二、 腾讯云OCR技术概述三、 内存模组产品识别需求四、基于腾讯云OCR的内存模组产品识别4.1、准备工作4.2、API调用与代码实现 五、 代码示例六、 应用场景七、 总结 一、 背景 制造业在产品识别环节经历着前所未有的挑战。传统的依赖人工进…...

基于STM32F1的基本定时器的原理

一&#xff0c;基本定时器原理 1&#xff0c;进入数据手册&#xff0c;了解基本定时器的主要特征 2&#xff0c;看懂理解基本定时器框图 3&#xff0c;查阅2.3章中的存储器映像以及时钟树就可以知道定时器是挂载在哪个总线下&#xff0c;从而知道对应是时钟频率 4&#xff0c;…...

Adobe Acrobat Pro DC 2023 下载安装教程,附详细图文

简介&#xff1a; Adobe Acrobat Pro DC 2023 是由 Adobe 公司推出的一款全面的 PDF 编辑、查看和管理软件。这款软件无论是个人用户还是企业级用户&#xff0c;都可以凭借其强大的功能满足不同的需求。作为一款业内领先的 PDF 处理工具&#xff0c;Adobe Acrobat Pro DC 不仅…...

活动预告 |【Part1】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动&#xff0c;了解 Azure 如何为将工作负载…...

根据 el-dialog 的高度动态计算 el-table 的高度

根据 el-dialog 的高度动态计算 el-table 的高度&#xff0c;可以使用 Vue 的 ref 和生命周期钩子来实现。以下是一个实现方案&#xff1a; 首先&#xff0c;给 el-dialog 和 el-table 添加 ref&#xff1a; <el-dialogv-model"testInstrumentDialogVisible"tit…...

算法解析-经典150(双指针、滑动窗口)

文章目录 双指针1.验证回文串1.答案2.思路 2.判断子序列1.动态规划解法2.双指针 3.两数之和 II - 输入有序数组1.答案2.思路 4.盛最多水的容器1.答案2.思路 5.三数之和1.答案2.思路 滑动窗口1.长度最小的子数组1.答案2.思路 2.无重复字符的最长子串1.答案2.思路 3.最小覆盖子串…...

Postman[2] 入门——界面介绍

可参考官方 文档 Postman 导航 | Postman 官方帮助文档中文版Postman 拥有各种工具、视图和控件&#xff0c;帮助你管理 API 项目。本指南是对 Postman 主要界面区域的高级概述&#xff1a;https://postman.xiniushu.com/docs/getting-started/navigating-postman 1. Header&a…...

GAMES101学习笔记(一):Overview 计算机图形学概述

文章目录 关于计算机图形学本课程讨论的话题光栅化曲线和网格光线追踪动画/仿真 课程大纲CG vs CV图形学的依赖学科线性代数回顾 课程资源&#xff1a;GAMES101-现代计算机图形学入门-闫令琪 Lec1 ~ Lec2 学习笔记&#xff1a; Lecture 01 &#xff1a;Overview of Computer G…...

iOS 18手机不越狱玩MC java版---PojavLauncher

环境 手机&#xff1a; iPhone SE 3 iOS: 18.1.1 电脑操作系统&#xff1a;macOS Sequoia 15.1.1 步骤 电脑上安装altstore https://altstore.io/ 直接下载自己操作系统对应的版本即可。 安装altstore到手机 以下是我记忆中的步骤&#xff0c;关键步骤我提一下 手机连接…...

uni-app开发-习惯养成小程序/app介绍

目录 一:功能概述 二:功能部分代码和截图 一:功能概述 1 习惯目标生成 创建习惯:用户可以添加新的习惯目标,每个习惯可以包含名称、描述、图标、目标天数。 关联习惯完成:用户通过设定达成目标以后,生成习惯养成记录。 2 习惯打卡 简单快捷的打卡:提供一个直观的界面…...

服务器迁移中心——“工作组迁移”使用指南

简介 服务器迁移中心&#xff08;Server Migration Center&#xff0c;简称SMC&#xff09;是阿里云提供给您的迁移平台。专注于提供能力普惠、体验一致、效率至上的迁移服务&#xff0c;满足您在阿里云的迁移需求。 工作组迁移是SMC的一项功能&#xff0c;提供标准化迁移流程…...

下载离线的瓦片图是做了模糊处理嘛?

问题&#xff1a; 1.下载离线的瓦片图是做了模糊处理嘛&#xff1f; 2.怎么加载自己的离线瓦片图比实际图片模糊了很多&#xff1f;啊 3.同层级的图片都比实际的图片模糊 原因&#xff1a;https://zhuanlan.zhihu.com/p/389945647 可以尝试下略微优化下&#xff1a; 1.降低…...

日志聚类算法 Drain 的实践与改良

在现实场景中&#xff0c;业务程序输出的日志往往规模庞大并且类型纷繁复杂。我们在查询和查看这些日志时&#xff0c;平铺的日志列表会让我们目不暇接&#xff0c;难以快速聚焦找到重要的日志条目。 在观测云中&#xff0c;我们在日志页面提供了聚类分析功能&#xff0c;可以…...

git 问题解决记录

在用git上传文件到仓库中出现了2个问题 第一个问题&#xff1a; 需要修改git的代理端口与电脑自己的代理服务器设置中的端口和VPN的端口保持一致&#xff0c; 比如我的端口是7897&#xff0c;就设置 git config --global http.proxy http://127.0.0.1:7897 git config --glo…...

Node Exporter常用Prometheus指标

Node Exporter 是一个常用的 Prometheus 导出器&#xff0c;用于采集主机操作系统层面的指标。以下是 Node Exporter 中一些常用的指标分类和关键指标&#xff1a; 1. CPU 相关指标 常用指标&#xff1a; CPU 使用率 rate(node_cpu_seconds_total{mode!"idle"}[5m]…...

golang 编程规范 - 项目目录结构

原文&#xff1a;https://makeoptim.com/golang/standards/project-layout 目录结构 Go 目录 cmdinternalpkgvendor 服务端应用程序目录 api Web 应用程序目录 web 通用应用程序目录 buildconfigsdeploymentsinitscriptstest 其他目录 assetsdocsexamplesgithooksthird_par…...

【ArcGISPro/GeoScenePro】裁剪和打包栅格数据

检查并处理扫描地图 数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 使用标准相机或扫描仪创建的数字影像通常存储在 RGB 颜色模型中,这意味着这些影像将由红色、绿色和蓝色三个栅格组成。 此扫描地图在提供给您之前已在坐标系…...

数据库新建用户后(Host:%),报错:localhost无法连接

存在问题 在给数据库&#xff08;MySQL、MariaDB等&#xff09;创建了新的用户名&#xff08;eg&#xff1a;maxscale&#xff09;后&#xff0c;无法使用新用户名登录&#xff0c;并报如下错误&#xff1a;ERROR 1045 (28000): Access denied for user maxscalelocalhost (us…...

[文献阅读] Reducing the Dimensionality of Data with Neural Networks

文章目录 摘要Abstract:RBM自编码器深层自编码器初始化展开微调 实验总结 摘要 Reducing the Dimensionality of Data with Neural Networks Reducing the Dimensionality of Data with Neural Networks | Science 使用神经网络降低数据的维度 由Hinton在2006年于Science上发…...

Sublime Text4 4189 安装激活【 2025年1月3日 亲测可用】

-----------------测试时间2025年1月3日------------------- 下载地址 官方网址&#xff1a;https://www.sublimetext.com 更新日志&#xff1a;https://www.sublimetext.com/download V4189 64位&#xff1a;https://www.sublimetext.com/download_thanks?targetwin-x64 ....…...