《疯狂python讲义》-第二章 变量和简单类型-2.5 深入使用字符串

2.5.1 转义字符

price = 108
print("The book's price is %s" % price) 

运行结果:

The book's price is 108

上面第二行代码中,print函数包括三个部分,第一部分是格式化字符串(它相当于字符串模版),该格式化字符串中包含一个“%s”占位符,它会被第三部分的变量或表达式的值代替;第二部分固定使用“%”作为分隔符。格式转化符中的“%s”被称为转换说明符。

python支持的转义字符

转义字符 说明
\b 退格符
\n 换行符
\r 回车符
\t 制表符
\'' 双引号
\' 单引号
\\ 反斜线

2.5.2 字符串格式化

python 提供了"%"对各种类型的数据进行格式化输出
转换说明符

转换说明符 说明
d,i 转换为带符号的十进制形式的整数
o 转换为带符号的八进制形式的整数
x或X 转换为带符号的十六进制形式的整数
e或E 转换为科学计数法表示的浮点数
f,F 转换为十进制形式的浮点数
g 智能选择使用f或e格式
G 智能选择使用F或E格式
C 转换为单子符(只接受整数或单字符字符串)
r 使用repr()将变量或表达式转换为字符串
s 使用str()将变量或表达式转换为字符串

当使用上面的转换说明符时,可指定转换后的最小宽度。

num = -28
print("num is: %6i" % num)
print("num is: %6d" % num)
print("num is: %6o" % num)
print("num is: %6x" % num)
print("num is: %6X" % num)
print("num is: %6s" % num)

运行结果

num is:    -28
num is:    -28
num is:    -34
num is:    -1c
num is:    -1C
num is:    -28

 从上面的输出结果可以看出,此时指定了字符串的最小宽度为6,因此程序转换数值时总宽度为6,程序会自动在数值前补充了三个空格。

 python允许在最小宽度之前添加一个标志来改变这种行为,如下(这三个标志可以同时存在):

  • -:指定左对齐
  • +:表示数值总要带着符号(正数带“+”,负数带“-”)
  • 0:表示不补充空格,而是补充0

 python 允许指定小数点后的数字位数;如果转换的是字符串,python允许指定转换后的字符串的最大字符数。这个标志被称为精度值,被放在最小宽度之后,中间用点(.)隔开。

my_value = 3.001415926535
# 最小宽度为8,小数点后保留3位
print("my_value is: %8.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0
print("my_value is: %08.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0,始终带符号
print("my_value is: %+08.3f" % my_value)

the_name = "Charlie"
# 只保留3个字符
print("the name is: %.3s" % the_name)
# 只保留2个字符,最小宽度为10
print("the name is: %10.2s" % the_name)

运行结果:

1 my_value is:    3.001
2 my_value is: 0003.001
3 my_value is: +003.001
4 the name is: Cha
5 the name is:         Ch

2.5.3 序列相关方法

字符串本质上就是由多个字符组成的, 程序允许通过索引来操作字符

Python字符串直接在方括号[]中使用索引即可获得对应的字符:

  • 第一个索引是0,第二个索引是1,如s[0],s[1]。
  • 倒数第一个索引是-1,倒数第二个索引是-2, 如s[-1],s[-2].

通过方括号中使用范围来获取字符串的中间一段

  • s[3:5] ---索引3到索引5(不包含)的子串
  • s[3:-5] ---索引3到倒数第5个字符的字串
  • s[-6,-3] ---从倒数第6字符到倒数第3个字符的字串。

允许省略起始索引或结束索引:

  • s[5:] ---从索引5到结束
  • s[-6:]---从倒数第6到结束
  • s[:5]---从开始到索引5
  • s[:-6]---从开始到倒数第6

in 运算符判断是否包含某个字串 print('very' in s)
len()函数获取字符串长度 print(len(s))
min()、max()函数获取字符串中的最小最大字符 print(max(s)),print(min(s))

2.5.4 大小写相关方法

dir():列出指定类或模版包含的全部内容, 如dir(str)

help():查看某个函数或方法的帮助文档

在str类中与大小写相关的常用方法如下:

title():将每个单词的首字母改为大写

lower():将整个字符串改为小写

upper(): 将整个字符串改为大写

a = 'our domain is crazyit.org'
# 每个单词首字母大写
print(a.title())
# 每个字母小写
print(a.lower())
# 每个字母大写
print(a.upper())

运行结果:

Our Domain Is Crazyit.Org
our domain is crazyit.org
OUR DOMAIN IS CRAZYIT.ORG

2.5.5 删除空白

strip():删除字符串前后的空白

lstrip():删除字符串前面(左边)的空白

rstrip():删除字符串后面(右边)的空白

2.5.6 查找、替换相关方法

startswith():判断字符串是否以指定字串开头

endswith():判断字符串是否以指定字串结尾

find():查找指定字串在字符串中出现的位置,如果没有找到,则返回-1

index():查找指定字串在字符串中出现的位置,如果没有找到,则引发ValueError错误

replace():使用指定字符串替换字符串中的目标字串

translate():使用指定的翻译映射表对字符串执行替换

2.5.7 分隔、连接方法

split():将字符串按指定分隔符分隔成多个短语

join(): 将多个短语连接成字符串

s = 'crazyit.org is a good site'
# 使用空白对字符串进行分割
print(s.split())  # 结果:['crazyit.org', 'is', 'a', 'good', 'site']
# 使用空白对字符串进行分割,最多只分割前两个单词
print(s.split(None, 2))  # 结果:['crazyit.org', 'is', 'a good site']
# 使用点进行分割
print(s.split('.'))  # 结果:['crazyit', 'org is a good site']
my_list = s.split()
# 使用'/'作为分隔符,将my_list连接成字符串
print('/'.join(my_list))  # 结果:crazyit.org/is/a/good/site
# 使用'.'作为分隔符,将my_list连接成字符串
print('.'.join(my_list))  # 结果:crazyit.org.is.a.good.site

你可能感兴趣的:(《疯狂python讲义》-第二章 变量和简单类型-2.5 深入使用字符串)