自学python笔记9–字符串
今天学习的主要内容为Python字符串格式设置选项和方法。
一、设置字符串的格式
1. %s(转换说明符):指出了要将值插入什么地方
指定要设置其格式的值时,可使用单个值(如字符串或数字),可使用元组。s意味着将值视为字符串进行格式设置。如果指定的值不是字符串,将使用str将其转换为字符串。
2.字符串方法format
使用这种方法时,每个替换字段都用花括号括起,其中可能包含名称,还可能包含有关如何对相应的值进行转换和格式设置的信息。
3.基本转换
3.1
指定要在字段中包含的值后,就可添加有关如何设置其格式的指令了。首先,可以提供一个转换标志。
上述三个标志(s、r和a)指定分别使用str、repr和ascii进行转换。
3.2 宽度、精度和千位分隔符
3.2.1对齐
数字对齐:
(上述例子中表明,包括数字一共十位)
处于好奇试验如下:
字符串对齐:
3.2.2精度
精度也是使用整数指定的
3.2.3千位分隔符
可使用逗号来指出你要添加千位分隔符。
3.3符号、对齐和用 0 填充
3.3.1补0
3.3.2对齐
要指定左对齐、右对齐和居中,可分别使用<、>和^。
3.3.3填充
使用填充字符来扩充对齐说明符,这样将使用指定的字符而不是默认的空格来填充。
3.3.4符号
更具体的说明符=,它指定将填充字符放在符号和数字之间
如果要给正数加上符号,可使用说明符+(将其放在对齐说明符后面),而不是默认的-。如果将符号说明符指定为空格,会在正数前面加上空格而不是+。
对于二进制、八进制和十六进制转换,将加上一个前缀。
4.实例
# 根据指定的宽度打印格式良好的价格列表 35
width = int(input('Please enter width: '))
price_width = 10
item_width = width - price_width
header_fmt = '{{:{}}}{{:>{}}}'.format(item_width, price_width)
fmt = '{{:{}}}{{:>{}.2f}}'.format(item_width, price_width)
print('=' * width)
print(header_fmt.format('Item', 'Price'))
print('-' * width)
print(fmt.format('Apples', 0.4))
print(fmt.format('Pears', 0.5))
print(fmt.format('Cantaloupes', 1.92))
print(fmt.format('Dried Apricots (16 oz.)', 8))
print(fmt.format('Prunes (4 lbs.)', 12))
print('=' * width)
结果:
二、字符串方法
1.center
方法center通过在两边添加填充字符(默认为空格)让字符串居中。
#center
a="the middle by jimmy eat world."
print(a.center(39))
print(a.center(39,'*'))
结果为:
2.find
方法find在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1。
#find
b="with a moo-moo here,and a moo-moo there."
print(b.find('moo'))
结果为:
3.join
join是一个非常重要的字符串方法,其作用与split相反,用于合并序列的元素,所合并序列的元素必须都是字符串。
#join
seq=['1','2','3','4','5']
sep='+'
print(sep.join(seq))
print(seq)
结果为:
dirs=['','usr','bin','env']
print('/'.join(dirs))
print('D'+'\\'.join(dirs))
结果为:
4.lower
方法lower返回字符串的小写版本。
#lower
c='ABCDEFG'
print(c.lower())
结果为:
5.replace
方法replace将指定子串都替换为另一个字符串,并返回替换后的结果。
#replace
d='this is a test'
print(d.replace('is','are'))
结果为:
6.split
split是一个非常重要的字符串方法,其作用与join相反,用于将字符串拆分为序列。
#split
e='1+2+3+4+5'
print(e.split('+'))
f='using the default'
print(f.split())
结果为:
7.strip
方法strip将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。
#strip
g=' international interaction '
print(g.strip())
g1='*** ABCD ** EFG!!!**'
print(g1.strip('!*'))#一个字符串参数中指定要删除哪些字符
print(g1.strip('*!'))
结果为:
8.translate
使用translate前必须创建一个转换表。这个转换表指出了不同Unicode码点之间的转换关系。要创建转换表,可对字符串类型str调用方法maketrans,这个方法接受两个参数:两个长度相同的字符串,它们指定要将第一个字符串中的每个字符都替换为第二个字符串中的相应字符。
#translate
table=str.maketrans('cs','kz')#c->k,s->z
h='this is an incredible test'
print(h.translate(table))
结果为:
另,第三个参数指定要将哪些字母删除。
持续更新。