Python字符串相关知识整理(持续更新)

字符串类型的表示

字符串

字符串由0个或多个字符组成的有序字符序列

  • 字符串由一对单引号或一对双引号表示

“请输入带有符号的温度值:” 或者 ‘C’

  • 由一对三单引号或三双引号表示,可表示多行字符串

‘’‘Python
_______________语言’’’`

字符编码

在这里插入图片描述

ASCII

ASCII(American Standard Code for Information Interchange),是一种单字节的编码。计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号。

ASCII码表

在这里插入图片描述

基本ASCII码字符的内容

字符 ASCII编码 十进制值
控制字符 0000,0000——0001,1111和0111,1111
0——9 0011,0000——0011,1001 48——57
A——Z 0100,0001——0101,1010 65——90
a——z 0110,0001——0110,1010 97——122
符号 其余

比较字符ASCII码值的大小

在这里插入图片描述

Unicode

太多编码导致世界变得过于复杂了,于是大家坐在一起拍脑袋想出来一个方法:所有语言的字符都用同一种字符集来表示,这就是Unicode。

  • 统一字符编码,即覆盖几乎所有字符的编码方式
  • 从0到1114111 (0x10FFFF)空间,每个编码对应一个字符
  • Python字符串中每个字符都是Unicode编码字符
函数及使用 描述
chr(u) x为Unicode编码,返回其对应的字符
ord(x) x为字符,返回其对应的Unicode编码

在这里插入图片描述

>>> "1 + 1 = 2 " + chr(10004) 
'1 + 1 = 2 √ '
>>> "这个字符♉的Unicode值是:" + str(ord(♉))
'这个字符♉的Unicode值是: 9801'
>>> for i in range (12):
			print(char(9800 + i) , end = "")
♈♉♊♋♌♎♏♐♑♓♒♍

更详细的点这里哦

字符串操作符

操作符及使用 描述
x + y 连接两个字符串x和y
n * x 或 x * n 复制n次字符串x
X in S 如果X是S的子串,返回True,否则返回False

字符串类型的格式化

为什么会有字符串类型的格式化问题呢?例如,一个程序希望输出如下内容:

在这里插入图片描述

  • 其中,下划线内容可能会变化,需要由特定函数运算结果进行填充,最终形成上述格式字符串作为输出结果。字符串格式化用于解决字符串和变量同时输出时的格式安排

format()方法的基本使用

  • 字符串format()方法的基本使用格式是:

<模板字符串>.format(<逗号分隔的参数>)

  • <模板字符串>由一系列的组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法的<逗号分隔的参数>中的参数按照序号关系替换到<模板字符串>的槽中。槽用大括号{}表示,如果大括号中没有序号,则按照出现顺序替换。

  • 如果大括号中指定了使用参数的序号,按照序号对应参数替换,调用format()方法后会返回一个新的字符串,参数从0开始编号。
    在这里插入图片描述
    在这里插入图片描述

>>>"{}:计算机{}的CPU占用率为{}%。".format("2016-12-31","PYTHON",10)
'2016-12-31 : 计算机PYTHON的CPU占用率为10%。'
  • format()方法可以非常方便地连接不同类型的变量和内容,如果需要输出大括号,采用{{表示{,}}表示},例如:
>>>"{}{}{}".format("圆周率是",3.1415926,"...")
'圆周率是3.1415926...'
>>>"圆周率{{{1}{2}}}是{0}"format("无理数",3.145926,"...")
'圆周率{3.1415926...}是无理数‘’
>>>s = "圆周率{{{1}{2}}}是{0}"
>>>s
'圆周率{{{1}{2}}}是{0}'
>>>s.format("无理数",3.1415926,"...")  ## 当调用format()时解析
'圆周率{3.1415926...}是无理数'

format()方法的格式控制

  • format()方法中<模板字符串>的除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式如下:

{<参数序号>:<格式控制标记>}

  • 其中,<格式控制标记>用来控制参数显示时的格式,格式内容如下:
    在这里插入图片描述

格式控制标记

  • <格式控制标记>包括:<填充><对齐><宽度>,<.精度><类型>6个字段、这些字段都是可选的,可以组合使用,这里按照使用方式逐一介绍
  • **<填充><对齐><宽度>**是三个相关字段。

<宽度>

  • <宽度>是指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度。如果该值的实际数小于指定宽度,则位数将被默认以空格字符补充。

<对齐>

  • <对齐>指参数在<宽度>内输出时的对齐方式,分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。

<填充>

  • <填充>指<宽度>内除了参数外的字符采用什么方式表示,默认采用空格,可以通过<填充>更换.
>>> s = "PYTHON"
>>> "{0:30}".format(s)
'PYTHON                       '
>>>"{0:>30}".format(s)
'                       PYTHON'
>>>"{0:*^30}".format(s)
'***********PYTHON***********'
>>>"{0:-^30}".format(s)
'-------------PYTHON------------'
>>>"{0:3}".format(s)
'PYTHON'

<.精度>

  • **<.精度>**表示两个含义,由小数点(.)开头。
  • 对于浮点数,精度表示输出的有效位数。
  • 对于字符串,精度表示输出的最大长度
>>>"{0:.2f}".format(12345.67890)
'12345.68'
>>>"{0:H^20.3f}".format(12345.67890)
'HHHHH12345.679HHHHHH'
>>>"{0:.4}".format("PYTHON")
'PYTH'

<类型>

  • <类型>表示输出整数和浮点数类型的格式规则。
    ➢b: 输出整数的二进制方式;
    ➢c: 输出整数对应的Unicode字符;
    ➢d: 输出整数的十进制方式;
    ➢o: 输出整数的/ (进制方式;
    ➢x: 输出整数的小写十六进制方式;
    ➢X:输出整数的大写十六进制方式;

  • 对于浮点数类型,输出格式包括4种:
    ➢e: 输出浮点数对应的小写字母e的指数形式;
    ➢E: 输出浮点数对应的大写字母E的指数形式;
    ➢f: 输出浮点数的标准浮点形式;
    ➢%:输出浮点数的百分形式。
    浮点数输出时尽量使用**<.精度>**表示小数部分的宽度,有助于更好控制输出格式。

>>>a = "I love Python."
>>>b = "*"
>>>c = "^"
>>>print("{0:{1}^25}".format(a,b))
>>>print("{0:{1}^{2}}".format(a,b,25))
>>>print("{0:{1}{3}{2}}".format(a,b,25,c))
*****I love Python.******
*****I love Python.******
*****I love Python.******

字符串的特殊字符

  1. 转义符
    转义符表达特定字符的本意:
    在这里插入图片描述
    转义符形成一些组合,表达一些不可打印的含义:
转义符类型 描述
“\b” 回退
“\n” 换行(光标移动到下行首)
“\r” 回车(光标移动到本行首)

猜你喜欢

转载自blog.csdn.net/syd_de_blog/article/details/88753418