前言
系列文章目录
[Python]目录
文章目录
- 前言
- 1. 字符串的常用操作
- 1.1 格式化输出
- 1.1.1 %
- 1.1.1.1 语法
- 1.1.1.2 字符串格式操作符(%)的格式化符号
- %c:以字符的形式格式化输出整数或长度为1的字符串
- %r:将数据格式化为供解释器读取的形式
- %s:将数据格式化为适于人阅读的形式
- %d %i:格式化为有符号十进制整数
- %u:格式化为无符号十进制整数
- %o:格式化为无符号八进制整数
- %x %X:格式化为无符号十六进制整数
- %e %E:格式化为科学计数法的形式输出数值
- %f %F:格式化为浮点数
- %g %G:%e和%f 或 %E和%F的简短写法
- %%:输出%
- 1.1.1.3 字符串格式化操作符指令
- *:指定宽度
- -:使用左对齐
- +:为正数使用加号
- #:根据是否使用 x 或 X,添加八进制前导零(0)或十六进制前导 0x 或 0X
- m.n:m 是最小总宽度,n 是小数点后面要显示的数字的位数(如果合适)
- 0:当格式化数字时使用零(而不是空格)填充
- `<sp>`:为正数使用空格填充
- (var):映射变量(字典参数)
- 1.1.2 {}
- 1.1.3 .format()
- 1.2 索引
- 1.2 切片
- 1.3 拼接
- 1.4 判断是否包含某个元素
- 1.6 操作字符串的方法
- 2. 内置方法
1. 字符串的常用操作
1.1 格式化输出
1.1.1 %
1.1.1.1 语法
# 格式化输出一个数据
'格式化符号' % 需要格式化输出的数据
# 格式化输出多个数据
'格式化符号1 格式化符号2 ...' % (数据1, 数据2, ...)
1.1.1.2 字符串格式操作符(%)的格式化符号
%c:以字符的形式格式化输出整数或长度为1的字符串
print('整数65以字符的形式格式化输出:%c' % 65)
# 注意:使用%c只能格式化输出长度为1的字符串
print("长度为1的字符串'a'以字符的形式格式化输出:%c" % 'a')
# 在一个字符串中格式化输出多个
print('第一个:%c 第二个:%c' % (65, 'a'))
# 使用%c格式化输出二进制数 八进制数 十六进制数对应的ASCII字符
print('二进制:%c 八进制:%c 十六进制:%c' % (0b111111, 0o111, 0x111) )
%r:将数据格式化为供解释器读取的形式
num = 11
str_ = 'abc'
dic = {
'name': 'zs',
'age': 12
}
l = [1, 'a']
t = (1, 2, 'b')
s = {1, 2, 'c'}
print('num: %r' % num)
print('str_: %r' % str_)
print('dic: %r' % dic)
print('l: %r' % l)
# 元组不能使用该格式化输出
# not all arguments converted during string formatting
# 并非所有参数都在字符串格式化期间转换
# 元组内的数据不可修改
# print('t: %r' % t)
print('s: %r' % s)
# 使用%r格式化输出十进制以外的数会先转化为十进制再采用字符串格式化输出
print('二进制:%r' % 0b011, type('二进制:%r' % 0b011))
print('八进制:%r' % 0o011, type('二进制:%r' % 0o011))
print('十六进制:%r' % 0x011, type('二进制:%r' % 0x011))
%s:将数据格式化为适于人阅读的形式
num = 11
str_ = 'abc'
dic = {
'name': 'zs',
'age': 12
}
l = [1, 'a']
t = (1, 2, 'b')
s = {1, 2, 'c'}
print('num: %s' % num)
print('str_: %s' % str_)
print('dic: %s' % dic)
print('l: %s' % l)
# 元组不能使用该格式化输出
# not all arguments converted during string formatting
# 并非所有参数都在字符串格式化期间转换
# 元组内的数据不可修改
# print('t: %s' % t)
print('s: %s' % s)
# 使用%s格式化输出十进制以外的数会先转化为十进制再采用字符串格式化输出
print('二进制:%s' % 0b011, type('二进制:%s' % 0b011))
print('八进制:%s' % 0o011, type('二进制:%s' % 0o011))
print('十六进制:%s' % 0x011, type('二进制:%s' % 0x011))
%d %i:格式化为有符号十进制整数
print('%d %i' % (-100, -100))
print('%d %i' % (100, 100))
# 对浮点数进行格式化输出,只会输出整数部分
print('%d %i' % (10.1, 10.1))
print('%d %i' % (10.5, 10.5))
# 不能使用%d %i格式化输出字符
# print('%d %i' % ('a','a'))
# 使用%d %i格式化输出十进制以外的数会自动转化为十进制再格式化输出
print('二进制:%d %i' % (0b011, 0b011))
print('八进制:%d %i' % (0o011, 0o011))
print('十六进制:%d %i' % (0x011, 0x011))
%u:格式化为无符号十进制整数
print('%u' % 123)
# 对浮点数进行格式化输出,只会输出整数部分
print('%u' % 123.12)
# 使用%u对负数进行格式化输出,会将负数格式化为有符号的字符串
print('%u' % -123, type('%u' % -123))
# 不能使用%u格式化输出字符
# print('%u' % 'a')
# 使用%d %i格式化输出十进制以外的数会自动转化为十进制再格式化输出
print('二进制:%u' % 0b011)
print('八进制:%u' % 0o011)
print('十六进制:%u' % 0x011)
%o:格式化为无符号八进制整数
print('%o' % 10)
print('%o' % 0b011)
print('%o' % 0x10)
# %o format: an integer is required, not float
# %o 只能将整数以八进制数的形式格式化输出
# print('%o' % 10.8)
# 对于负数 %o 返回的为一个有符号的字符串
print('%o' % -10)
%x %X:格式化为无符号十六进制整数
print('%x %X' % (10, 10))
print('%x %X' % (0b011, 0b011))
print('%x %X' % (0o10, 0o10))
# %x format: an integer is required, not float
# %x 只能将整数以十六进制数的形式格式化输出
# print('%x %X' % (10.8, 10.8))
# 对于负数 %x 返回的为一个有符号的字符串
print('%x %X' % (-10, -10))
%e %E:格式化为科学计数法的形式输出数值
print('%e %E' % (10, 10))
print('%e %E' % (-10, -10))
print('%e %E' % (10.8, 10.8))
print('%e %E' % (0b011, 0b011))
print('%e %E' % (0o10, 0o10))
print('%e %E' % (0x10, 0x10))
%f %F:格式化为浮点数
print('%f %F' % (10, 10))
print('%f %F' % (-10, -10))
print('%f %F' % (10.8, 10.8))
print('%f %F' % (0b011, 0b011))
print('%f %F' % (0o10, 0o10))
print('%f %F' % (0x10, 0x10))
%g %G:%e和%f 或 %E和%F的简短写法
print('%g %G' % (10, 10))
print('%g %G' % (-10, -10))
print('%g %G' % (10.8, 10.8))
print('%g %G' % (0b011, 0b011))
print('%g %G' % (0o10, 0o10))
print('%g %G' % (0x10, 0x10))
# %g %G 只有当数大于1000000时才使用科学计数法
print('%g %G ' % (999999, 1000000))
%%:输出%
# 一个 % 会被认为是字符串格式操作符
# 两个 % 输出%
print('%d%%' % 99)
1.1.1.3 字符串格式化操作符指令
*:指定宽度
# 进行格式化的数据长度小于指定的长度则使用空格在格式化数据的左侧填充使其达到指定的长度
# 如果格式化的数据长度大于指定的长度则不进行填充
# 可以用于实现打印的右对齐
print('%15c |' % 65)
print('%15r |' % 'abc')
print('%15s |' % 'abc')
print('%15d | %i' % (100, 100))
print('%15u |' % 100)
print('%15o |' % 100)
print('%15x | %X' % (100, 100))
print('%15e | %E' % (100, 100))
print('%15f | %F' % (100, 100))
print('%15g | %G' % (100, 100))
-:使用左对齐
# 进行格式化的数据长度小于指定的长度则使用空格在格式化数据的右侧填充使其左对齐
# 如果格式化的数据长度大于指定的长度则不进行填充
print('%-15c |' % 65)
print('%-15r |' % 'abc')
print('%-15s |' % 'abc')
print('%-15d | %i' % (100, 100))
print('%-15u |' % 100)
print('%-15o |' % 100)
print('%-15x | %X' % (100, 100))
print('%-15e | %E' % (100, 100))
print('%-15f | %F' % (100, 100))
print('%-15g | %G' % (100, 100))
+:为正数使用加号
# 左对齐 长度为15 且正数前显示+
print('%+-15d | %i' % (100, 100))
print('%+-15u |' % 100)
print('%+-15o |' % 100)
print('%+-15x | %X' % (100, 100))
print('%+-15e | %E' % (100, 100))
print('%+-15f | %F' % (100, 100))
print('%+-15g | %G' % (100, 100))
#:根据是否使用 x 或 X,添加八进制前导零(0)或十六进制前导 0x 或 0X
# 左对齐 长度为15 且正数前显示+ 八进制和十六进制前显示0x 0o
print('%+#-15u |' % 100)
print('%+#-15o |' % 100)
print('%+#-15x | %X' % (100, 100))
m.n:m 是最小总宽度,n 是小数点后面要显示的数字的位数(如果合适)
# 对于位数不足默认使用空格在左边填充即右对齐
# 如果数的位数大于m,不进行填充,只有小于m才进行填充
print('%10.2d %10.2i' % (12, -12))
# 会自动四舍五入保留相应的位数
print('%10.2f %10.2F' % (12.345, -12.345))
# 会自动四舍五入保留相应的位数
print('%10.2e %10.2E' % (12.3456, -12.3556))
0:当格式化数字时使用零(而不是空格)填充
# 对于位数不足使用 0 在左边填充 默认右对齐
# 只能在数的左边使用0进行填充,不支持使用0实现左对齐(在数的右边补0)
# 数的最小总宽度为10,其中小数位2位
print('%010.2d %10.2i' % (12, -12))
# 会自动四舍五入保留相应的位数
print('%010.2f %10.2F' % (12.345, -12.345))
# 会自动四舍五入保留相应的位数
print('%010.2e %10.2E' % (12.3456, -12.3556))