1、字符串的格式化输出
1.1、使用转换说明符%s(根据要转换的数据类型不同,有%d、%f等)
>>> format = "hello, %s"
>>> values = 'world'
>>> format % values
'hello, world'
1.2、使用字符串方法format
>>> "{}, {} and {}".format("one", "two", "three")
'one, two and three'
1.3、使用f字符串
>>> name = "Joker"
>>> f"I am {name}"
'I am Joker'
2、字符串方法
2.1、format
format方法可以按顺序、参数名对要替换的字段进行匹配,具体用法略,这里主要讲下格式的设置。
①设置浮点数格式的宽度、精度和千位分隔符
>>> "{name:10}".format(name="Bob") # 指定宽度
'Bob '
>>> "{num:.2f}".format(num=3.1415926) # 指定精度
'3.14'
>>> "I want RMB {:,}".format(10**9) # 给数字添加千位分隔符
'I want RMB 1,000,000,000'
②设置符号、对齐和用0填充
>>> "{:010}".format(3.14) # 使用0填充10位
'0000003.14'
>>> print("{0:<10}\n{0:^10}\n{0:>10}".format(3.14)) # < ^ >分别是左对齐、居中和右对齐
3.14
3.14
3.14
>>> "{:$^10}".format("Joker") # 使用符号$填充
'$$Joker$$$'
>>> print("{:10}\n{:10}".format(3.14, -3.14)) # 默认使用空格填充
3.14
-3.14
>>> print("{:10}\n{:=10}".format(3.14, -3.14)) # “=”指定将填充字符放在符号和数字之间
3.14
- 3.14
2.2、center:在两边填充字符(类似format的^)
>>> " Hello World ".center(30,"*") # 默认使用空格填充
'******** Hello World *********'
ljust:在后端填充字符
rjust:在前端填充字符
zfill:在字符串左边填充0(但将+/-移到开头)
2.3、find:在字符串中查找子串,找到返回字串的第一个字符的索引,找不到返回-1
>>> title = "You are so beautiful"
>>> title.find("so")
8
>>> title.find("cool")
-1
rfind:返回找到的最后一个字串的索引,没有找到字串返回-1
index:返回找到的第一个字串的索引,没找到抛出ValueError异常
rindex:返回找到的最后一个字串的索引,没找到抛出ValueError异常
count:计算字串出现的次数
startswith:检查字符串是否以指定的子串开头
endswith:检查字符串是否以指定的子串结尾
2.4、join:合并序列的元素
>>> "+".join(["a", "b", "c"])
'a+b+c'
2.5、split:将字符串拆分为序列
>>> 'a+b+c'.split("+")
['a', 'b', 'c']
partition:在字符串中搜索指定子串串,并返回元组(子串前部分、子串、子串后部分)
rpartition:与partition,但从右往左搜索
rsplit:与split相同,但从右往左
splitlines:返回一个列表,包含字符串中的所有行(如果参数keepends=True,将包含换行符)
2.6、replace:将指定子串替换为另一个字符串
>>> 'a+b+c'.replace("+","-")
'a-b-c'
2.7、strip:删除字符串开头和结尾的指定字符串(默认为空白),并返回删除后的结果
>>> " abc ".strip()
'abc'
lstrip:删除字符串开头的指定字符串(默认空白)
rstrip:删除字符串结尾的指定字符串(默认空白)
2.8、lower:返回字符串的小写版本
>>> "JOKER".lower()
'joker'
title:将字符串中所有单词的首字母大写,并返回结果
upper:将字符串中所有字母都转为大写,并返回结果
capitalize:返回字符串的副本,但将第一个字符大写
casefold:返回经过标准化的字符串(类似于转换为小写),但更适合用于对Unicode字符串进行不区分大小写的比较
swapcase:将字符串中所有字母的大小写都反转,并返回结果
translate:根据转换表(使用maketrans方法创建的)对字符串中的所有字符进行转换,并返回结果
2.9、判断字符串是否满足特定条件
isalnum:检查字符串中的所有字符是否都是字母或数字
isalpha:检查字符串中的所有字符是否都是字母
isdecimal:检查字符串中的所有字符是否都是十进制数
isdigit:检查字符串中的所有字符是否都是数字
isidentifier:检查字符串是否可用作Python标识符
isnumeric:检查字符串中的所有字符是否都是数字字符
isprintable:检查字符串中的所有字符是否都是可打印的
isspace:检查字符串中的所有字符是否都是空白字符
istitle:检查字符串中位于非字母后面的字母都是大写的,且其他所有字母都是小写的
isupper:检查字符串中的所有字符是否都是大写的
islower:检查字符串中的所有字符是否都是小写的