python基础(字符串方法[format])

字符串

操作:
1.String.center(self, width, fillchar=None) :返回以长度宽度为width,字符串在中心的字符串。填充使用指定的填充字符完成(默认为空格) ,如果width小于字符串的长度,则不截位,打印完整的字符串。
Eg:
String = “商品列表”
Print(String.center(19,”-”))
注解:”商品列表”占4位,使用center函数补充到19位,”商品列表”在中心,左右两边用”-”补充,因为19是单数,字符串“商品列表”为双数占4位,剩余15位,左边8位,右边7位
2.string.strip移除字符串头尾指定的字符(默认为空格)或字符序列,也可以删除/n, /r, /t, ’ ‘,指定一个或者多个字符
3.string. replace(self, old, new, count=None) 将原有字符替换成新字符
默认个数是全部替换,count的含义是替换几次,从左边开始
4. s.split(self, sep=None, maxsplit=-1)
sep:截取的对象 maxsplit:最多进行截取的次数
通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串,唯一返回值是一个列表(如果裁剪的对象不存在字符串中,则只把字符串转换成列表)
5.string.find(obj)找到obj对应的索引值,若不存在,返回-1
6.string.index(obj,start,end)返回第一个相同字符的索引,如果字符不存在则报错:ValueError: substring not found
补充:
1.
a = “abc\r123”
print(a)
实行结果:123
\r:将光标重新换到一开始,继续打印
2.
字符串格式化符号 %f 可指定小数点后的精度。
a = 19.129465
print("%.2f"%a)
实行结果:19.13
3.
%g 是自动选择输出格式的,在六位数的情况下就会以科学计数法方式输出,用于打印数据时,会去掉多余的零,至多保留六位有效数字。
4.
使用格式化符号进行进制转换
num = 10
print(‘十六进制:%#x’ % num) #使用%x将十进制num格式化为十六进制
print(‘二进制:’, bin(num)) #使用bin将十进制num格式化为二进制
print(‘八进制:%#o’ % num) #使用%o将十进制num格式化为八进制
实行结果:
十六进制:0xa
二进制: 0b1010
八进制:0o12
上面使用格式化符号进行进制转换中,多加入了一个#号,目的是在转换结果头部显示当前进制类型,如不需要,可将#号去除
5. 字符串的分割还有partition()这种方式

partition(sep) --> (head,sep,tail)
从左向右遇到分隔符把字符串分割成两部分,返回头、分割符、尾三部分的三元组。如果没有找到分割符,就返回头、尾两个空元素的三元组。
Eg:
s1 = “I’m a good sutdent.”
#以’good’为分割符,返回头、分割符、尾三部分。
s2 = s1.partition(‘good’)
#没有找到分割符’abc’,返回头、尾两个空元素的元组。
s3 = s1.partition(‘abc’)
print(s1)
print(s2)
print(s3)
实行结果:
I’m a good sutdent.
("I’m a ", ‘good’, ’ sutdent.’)
(“I’m a good sutdent.”, ‘’, ‘’)
6. 针对 Counter 的升级使用
#必须引用如下库
from collections import Counter
Counter (string):以字典的形式,输出每个字符串中出现的字符及其数量
7.通过切片来实现字符串的反转
String = string[::-1]
8.a = [1,2,3,4,5,6,7,8,9,10]
Str1 = “”.join(a)
实行结果:报错
atr = “”.join(a)
TypeError: sequence item 0: expected str instance, int found
原因:使用join函数时候,join的参数的元素必须是字符串
补充:
1我又来提问了——isdigit和isnumeric的区别
isdigit判断只包含数字,isnumeric判断只包含数字字符
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无

isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

2 ‘zip’函数
函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]

zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]

zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

  1. zfill(), 它会在数字的左边填充 0.
    ‘12’.zfill(5)
    ‘00012’

3.字符串的format运用
字符串类型格式化采用format()方法,基本使用格式是:
<模板字符串>.format(<逗号分隔的参数>)
调用format()方法后会返回一个新的字符串,参数从0 开始编号。

  1. “{}:计算机{}的CPU 占用率为{}%。”.format(“2016-12-31”,“PYTHON”,10)
  2. Out[10]: ‘2016-12-31:计算机PYTHON的CPU 占用率为10%。’
    format()方法可以非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用{{表示{,}}表示},例如:
  3. “{}{}{}”.format(“圆周率是”,3.1415926,"…")
  4. Out[11]: ‘圆周率是3.1415926…’
  5. “圆周率{{{1}{2}}}是{0}”.format(“无理数”,3.1415926,"…")
  6. Out[12]: ‘圆周率{3.1415926…}是无理数’
  7. s=“圆周率{{{1}{2}}}是{0}” #大括号本身是字符串的一部分
  8. s
  9. Out[14]: ‘圆周率{{{1}{2}}}是{0}’
  10. s.format(“无理数”,3.1415926,"…") #当调用format()时解析大括号
  11. Out[15]: ‘圆周率{3.1415926…}是无理数’
  12. 格式控制信息
    format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式如下:
    {<参数序号>: <格式控制标记>}
    其中,<格式控制标记>用来控制参数显示时的格式,包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,这些字段都是可选的,可以组合使用,逐一介绍如下。
    <宽度>
    指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充。
    <对齐>
    指参数在<宽度>内输出时的对齐方式,分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。
    <填充>
    指<宽度>内除了参数外
    的字符采用什么方式表示,默认采用空格,可以通过<填充>更换。
  13. s = “PYTHON”
  14. “{0:30}”.format(s)
  15. Out[17]: 'PYTHON ’
  16. “{0:>30}”.format(s)
  17. Out[18]: ’ PYTHON’
  18. “{0:*^30}”.format(s)
  19. Out[19]: ‘PYTHON
  20. “{0:-^30}”.format(s)
  21. Out[20]: ‘------------PYTHON------------’
  22. “{0:3}”.format(s)
  23. Out[21]: ‘PYTHON’
    逗号(,)
    <格式控制标记>中逗号(,)用于显示数字的千位分隔符,例如:
  24. “{0:-^20,}”.format(1234567890)
  25. Out[24]: ‘—1,234,567,890----’
  26. “{0:-^20}”.format(1234567890) #对比输出
  27. Out[25]: ‘-----1234567890-----’
  28. “{0:-^20,}”.format(12345.67890)
  29. Out[26]: ‘----12,345.6789-----’
    <.精度>
    表示两个含义,由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。
  30. “{0:.2f}”.format(12345.67890)
  31. Out[29]: ‘12345.68’
  32. “{0:H^20.3f}”.format(12345.67890)
  33. Out[30]: ‘HHHHH12345.679HHHHHH’
  34. “{0:.4}”.format(“PYTHON”)
  35. Out[31]: ‘PYTH’
    <类型>
    表示输出整数和浮点数类型的格式规则。对于整数类型,输出格式包括6 种:
    • b: 输出整数的二进制方式;
    • c: 输出整数对应的 Unicode 字符;
    • d: 输出整数的十进制方式;
    • o: 输出整数的八进制方式;
    • x: 输出整数的小写十六进制方式;
    • X: 输出整数的大写十六进制方式;
  36. “{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}”.format(425)
  37. Out[32]: ‘110101001,Ʃ,425,651,1a9,1A9’
    对于浮点数类型,输出格式包括4 种:
    • e: 输出浮点数对应的小写字母 e 的指数形式;
    • E: 输出浮点数对应的大写字母 E 的指数形式;
    • f: 输出浮点数的标准浮点形式;
    • %: 输出浮点数的百分形式。
    浮点数输出时尽量使用<.精度>表示小数部分的宽度,有助于更好控制输出格式。
  38. “{0:e},{0:E},{0:f},{0:%}”.format(3.14)
  39. Out[33]: ‘3.140000e+00,3.140000E+00,3.140000,314.000000%’
  40. “{0:.2e},{0:.2E},{0:.2f},{0:.2%}”.format(3.14)
  41. Out[34]: ‘3.14e+00,3.14E+00,3.14,314.00%’
  42. ‘!a’ (使用 ascii()), ‘!s’ (使用 str()) 和 ‘!r’ (使用 repr()) 可以用于在格式化某个值之前对其进行转化:
  43. import math

  44. print(‘常量 PI 的值近似为: {}。’.format(math.pi))

  45. 常量 PI 的值近似为: 3.141592653589793。
  46. print(‘常量 PI 的值近似为: {!r}。’.format(math.pi))

  47. 常量 PI 的值近似为: 3.141592653589793。
    print(’{0:20}’.format(2))
    print(’{0:20}’.format(“2”)
    实行结果:
    2
    2
    print("{:.0%}".format(0.12))
    实行结果: 12%
  48. exit()的用法
    1.sys.exit(n) 退出程序引发SystemExit异常,可以捕获异常执行些清理工作。n默认值为0,表示正常退出,其他都是非正常退出。还可以sys.exit(“sorry, goodbye!”); 一般主程序中使用此退出。

2.os._exit(n), 直接退出, 不抛异常, 不执行相关清理工作。常用在子进程的退出。

3.exit()/quit(),跑出SystemExit异常。一般在交互式shell中退出时使用。

4.exit(0) 有什么功能?
在很多类型的操作系统里,exit(0) 可以中断某个程序,而其中的数字参数则用来表示程序是否是碰到错误而中断。exit(1) 表示发生了错误,而 exit(0) 则表示程序是正常退出的。这和我们学的布尔逻辑 0==False 正好相反,不过你可以用不一样的数字表示不同的错误结果。比如你可以用exit(100) 来表示另一种和 exit(2)或 exit(1) 不同的错误。
5. 尽量使用join()链接字符串,因为’+’号连接n个字符串需要申请n-1次内存,使用join()需要申请1次内存。
6. 固定长度分割字符串
import re
s = ‘1234567890’
a = re.findall(r’.{1,3}’,s)
print(a)
实行结果:
[‘123’, ‘456’, ‘789’, ‘0’]
语法解释:’.’任意字符
‘1,3’匹配前一个字符,1-3次
Re.findall 按照模式进行寻找,找到的情况下返回列表类型

maketrans() 和 translate()
maketrans()
功能:制作用于字符串替换的映射表
格式: 字符串.maketrans(‘查找字符’,‘替换字符’) 两个字符必须长度相等
返回值:字典

translate
功能:进行字符串替换操作
格式:字符串.translate(映射表)
返回值:替换之后的字符串

猜你喜欢

转载自blog.csdn.net/weixin_42970234/article/details/84060108