基本数据类型
字符串的概念
字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。
单行字符串可以由一对单引号()或双引号(")作为边界来表示,单引号和双引号作用相同。当使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。
多行字符串可以由一对三单引号(")或三双引号(""")作为边界来表示,两者作用相同。
字符串的索引与切片
对字符串中某个子符的检索称为索引。索引的使用方式如下:
<字符串或字符串变量>[ N]
对字符串中某个子串或区间的检索称为切片。切片的使用方式如下:
<字符串或字符串变量>[ N:M]
切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。切片要求N和M都在字符串的索引区间,如果N大于等于M,则返回空字符串。如果N缺失,则默认将N设为0;如果M缺失,则默认表示到字符串结尾。
>>> "我爱python"[3]
'y'
>>> "我爱python"[3:5]
'yt'
转义符(\)
反斜杠字符()是个特殊字符,在 Python字符串中表示“转义”.即该字符与后面相邻的号个字符共同组成了新的含义。例如:
\n 表示换行
\\表示反斜杠
\"表示双引号
\'表示单引号
\t表示制表符(Tab)
等。如果在字符串中既需要出现单引号又需要出现双引号,则需使用转义符。
字符串类型的操作
操作符 | 描述 |
---|---|
x+y | 连接字符串x与y |
x * n 或 n * x | 复制n次字符串x |
x in s | 如果x是s的子串,返回 True,否则返回False |
字符串处理函数
函数 | 描述 |
---|---|
len(x) | 返回字符串x的长度,也可返回其他组合数据类型的元素个数 |
str(x) | 返回任意类型x所对应的字符串形式 |
chr(x) | 返回Unicode编码x对应的单字符 |
ord(x) | 返回单字符 x表示的Unicode编码 |
hex(x) | 返回整数x对应十六进制数的小写形式字符串 |
oct(x) | 返回整数x对应八进制数的小写形式字符串 |
运用chr()函数
>>> for i in range(12):
print(chr(9800+i),end="")
♈♉♊♋♌♍♎♏♐♑♒♓
字符串处理方法
“方法”是程序设计中的一个专有名词,属于面向对象程序设计领域。在Python解释器内部,所有数据类型都采用面向对象方式实现,因此,大部分数据类型都有一些处理方法。
方法也是一个函数,只是调用方式不同。函数采用func(x)方式调用,而方法则采用< a > .func(x)形式调用即A.B()形式。方法以前导对象< a >为输人。常用的处理方法如下:
方法 | 描述 |
---|---|
str.lower() | 返回字符串str的副本,全部字符小写 |
str. upper() | 返回字符串str的副本,全部字符大写 |
str.split(sep=None) | 返回一个列表,由str根据sep被分割的部分构成(省略sep默认以空格分隔) |
str.count(sub) | 返回sub子串出现的次数 |
str.replace(old,new) | 返回字符串str 的副本,所有old子串被替换为new |
str.center(width,fillchar) | 符串居中函数,fillchar参数可选 |
str.strip(chars) | 从字符串str 中去掉在其左侧和右侧chars中列出的字符 |
str.join(iter) | 将iter变量的每一个元素后增加一个str字符串 |
示例如下:
>>> a = "我爱python"
>>> b="A,B,C"
>>> a.upper()
'我爱PYTHON'
>>> a.lower()
'我爱python'
>>> b.split(",")
['A', 'B', 'C']
>>> a.count("y")
1
>>> a.replace("o","n")
'我爱pythnn'
>>> a.center(20,"~")
'~~~~~~我爱python~~~~~~'
>>> c = '~~~~~~我爱python~~~~~~'
>>> c.strip("~")
'我爱python'
>>> a.strip("n")
'我爱pytho'
>>> ",".join(a)
'我,爱,p,y,t,h,o,n'
format()方法的格式控制
>>> "{0:=^20}".format("PYTHON") # ^表示居中对齐 20表示输出宽度
'=======PYTHON======='
>>> "{0:*>20}".format("BIT") #>表示右对齐 20表示输出宽度
'*****************BIT'
>>> "{:10}".format("BIT")>>> #10表示输出宽度 默认左对齐
'BIT '
##{0:b}表示输出二进制、{0:c}表示输出Unicode编码、{0:d}表示输出十进制
##{0:o}表示输出八进制、{0:x}表示输出十六进制、{0:X}表示输出大写的十六进制
>>> print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))
110101001,Ʃ,425,651,1a9,1A9
##{0:e}以科学计数法e形式表示浮点数、{0:E}以科学计数法E形式表示浮点数
##{0:f}以通常的非科学计数法形式表示浮点数、{0:%}以%形式表示浮点数
>>> print("{0:e},{0:E},{0:f},{0:%}".format(3.14))
3.140000e+00,3.140000E+00,3.140000,314.000000%