《疯狂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允许指定转换后的字符串的最大字符数。这个标志被称为精度值,被放在最小宽度之后,中间用点(.)隔开。

 1 my_value = 3.001415926535
 2 # 最小宽度为8,小数点后保留3位
 3 print("my_value is: %8.3f" % my_value)
 4 # 最小宽度为8,小数点后保留3位,左边补0
 5 print("my_value is: %08.3f" % my_value)
 6 # 最小宽度为8,小数点后保留3位,左边补0,始终带符号
 7 print("my_value is: %+08.3f" % my_value)
 8 
 9 the_name = "Charlie"
10 # 只保留3个字符
11 print("the name is: %.3s" % the_name)
12 # 只保留2个字符,最小宽度为10
13 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():  将整个字符串改为大写

1 a = 'our domain is crazyit.org'
2 # 每个单词首字母大写
3 print(a.title())
4 # 每个字母小写
5 print(a.lower())
6 # 每个字母大写
7 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(): 将多个短语连接成字符串

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

 

posted @ 2020-09-18 15:19  luchildren  阅读(160)  评论(0)    收藏  举报