第一节 format基本使用(字符串的格式化方法)
格式:str.format(<逗号分隔的参数>)
例:a="{1}计算机{0}的CPU占用率为{2}%".format("2018-10-10","c",10)
print(a)
输出:
c计算机2018-10-10的CPU占用率为10%
第二节 format方法格式控制(槽内部对格式化的配置方式)
槽内部格式:{<参数序号:<格式控制标记>}
注:在槽的内部,参数序号一般默认为空的,因为一般都默认序号
格式控制标记(用的顺序也是一样的,后三个是数字类型特有的) | 描述 |
---|---|
填充 | 用于填充的字符 |
对齐 | <:左对齐,>:右对齐,^:居中对齐 |
宽度 | 设定槽的输出宽度 |
<,> | 数字的千位分隔符,适用于整数和浮点数类型 |
<.精度> | 表示浮点数小数部分的精度(要和类型中的f连用,不然会报错)或字符串的最大输出长度,格式为<.n> |
类型 | 整数类型:b:二进制格式 c:整数所对应的字符 d:十进制格式,槽默认为十进制 o:八进制格式 x:十六进制小写 X:十六进制大写 浮点数类型:e/E:采用科学计数法e/E表示浮点数 f:单独使用时,输出浮点数的标准浮点数形式,即保留六位小数 %:以百分数形式表示 |
注:
- 填充和对齐要同时使用,不然会报错,浮点数的精度与类型中的f也是一样
- 槽内部中控制标记的顺序是从上到下,且前三个对数据类型没有要求,后三个对数据类型有要求
'{:=^20,.3f}'.format(3486.092738)
输出:
‘=3,486.093==’
第三节 字符串类型的操作(字符串操作符)
操作符及使用 | 描述 |
---|---|
X + Y | 连接两个字符串X和Y() |
n * X / X * n | 复制n次字符串X |
X in S | 如果X是S的子串,返回True,否则返回False |
X="hello"
Y="word"
print(X+" "+Y)
print(4*X)
Y in X
输出:
hello word
hellohellohellohello
False
第四节 数字和字符串函数(字符串处理函数和数字转换函数)
函数及使用 | 描述 |
---|---|
len(X) | 返回字符串的长度或其他组合类型的元素个数 |
str(X) | 将任意数据类型转换为所对应的字符串形式 |
int(x) | 将x变为整数 |
float(x) | 将x变为浮点数 |
complex(x) | 将x变为复数 |
hex(x)/oct(x)/bin(x) | 将整数X的十六/八/二进制小写形式转换为字符串 |
chr(u) | u为编码,即数字,返回所对应的字符 |
ord(x) | x为字符,返回所对应的编码,即返回数字 |
注:宽度大的数字转换函数可以将内容为小宽度的数字类型的字符串转换成功。但小宽度数字类型转换函数不能转换内容为大宽度数字类型的字符串。
print(len(X))
print(str(34499))
print(chr(10004))
输出:
5
34499
✔
第五节 常用的字符串处理方法
方法及使用 | 描述 |
---|---|
str.title()/lower()/upper() | 以首字母大写/所有字母小写/所有字母大写 的方式显示每个单词 |
str.split() | 返回由被括号中的字符分隔字符串作为元素的列表,默认字符为空格/换行 |
str.count(sub) | 返回子串sub在字符串中出现的次数 |
str.replace(old,new) | 返回一个字符串,所有old子串已被new子串所替换的字符串 |
str.center(width,fillchar) | 字符串根据设置的宽度(width)居中,fillchar为填充字符 |
str.strip()/lstrip()/rstrip() | 删除字符串两边/最左面/最右面 的出现在括号里面的字符,默认字符为空格 |
str.join(iter) | 返回为一个字符串(在iter变量(只能是字符串和列表类型)除最后一个元素外,每个元素后增加一个str的字符串) |
print("首字母大写{},所有字母小写{},所有字母大写{}".format(X.title(),X.lower(),X.upper()))
print(X.split('e'))
print(X.count('l'))
print(X.replace('l','v'))
print(X.center(20,'='))
a=' sdf '
print('删两边空格{},删前面空格{},删后面空格{}'.format(a.strip(),a.lstrip(),a.rstrip()))
a='@'
print(a.join('hello word'))
输出:
首字母大写Hello,所有字母小写hello,所有字母大写HELLO
['h', 'llo']
2
hevvo
=======hello========
删两边空格sdf,删前面空格sdf ,删后面空格 sdf
h@e@l@l@o@ @w@o@r@d
关于字符串大小比较的补充
- 两个字符串的大小与字符的编码有关,编码越大,字符串越大
- 只有一个字符的字符串比较:哪个字符串的编码的大,字符串就大
- 多个字符的字符串比较:从第一个字符比,按只有一个字符的规则,若平局则继续往下比,直到比较的两个字符编码不同结束
- 可以通过ord()函数得到字符编码
- 不只是字母可以相互比较,字符内容为数字,汉字,特殊字符的字符串相互之间都可以进行比较
'a'<'b'
True
'abc'>'abd'
False
'a'<'abc'
True #因为'abc'的第二位是“b”编码为98,而字符串'a'没有第二位
'男'<'女'
False
'男'>'p'
True