疯狂Python讲义之变量和简单类型--深入使用字符串笔记4
目录
1. 转义字符
2. 字符串格式化
3. 序列相关方法
4. 大小写相关方法
5. 查找、替换相关方法
6. 分割、连接方法
1. 转义字符
在字符串中可以使用反斜线进行转义;如果字符串本身包含反斜线,则需要使用 “\\” 表示,“\\” 就是转义字符。
s = 'Hello\n\world' print(s)2. 字符串格式化
Python 提供了“%”对各种类型的数据进行格式化输出
# 实例代码 price = 123 print("The book's price is %s" % price)这行代码中的print 函数包含三个部分,第一部分是格式化字符串(它相当于字符串模板),该格式化字符串中包含一个“ %s ”占位符,它会被第三部分的变量或表达式的值代替; 第二部分固定使用“%”作为分隔符。
格式化字符串中的“ %s ”被称为转换说明符( Conversion Specifier ),其作用相当于一个占位符, 它会被后面的变量或表达式的值代替。“ %s '’指定将变量或值使用str() 函数转换为字符串。
如果格式化字符串中包含多个“ %s ”占位符,第三部分也应该对应地提供多个变量,并且使用圆括号将这些变量括起来.
在默认情况下, 转换出来的字符串总是右对齐的,不够宽度时左边补充空格。Python 也允许在最小宽度之前添加一个标志来改变这种行为, Python 支持如下标志。
- : 指定左对齐。
- : 表示数值总要带着符号(正数带“+” ,负数带“ _,, )。
- :表示不补充空格, 而是补充0 。
对于转换浮点数, Python 还允许指定小数点后的数字位数:如果转换的是字符串, Python 允许指定转换后的字符串的最大字符数。这个标志被称为精度值,该精度值被放在最小宽度之后,中间用点( . )隔开。
price = 108 print("the book's price is %x" % price) user = "Charli" age = 8 # 格式化字符串有两个占位符,第三部分提供2个变量 print("%s is a %s years old boy" % (user , age)) 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) num2 = 30 # 最小宽度为0,左边补0 print("num2 is: %06d" % num2) # 最小宽度为6,左边补0,总带上符号 print("num2 is: %+06d" % num2) # 最小宽度为6,右对齐 print("num2 is: %-6d" % num2) 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) # 输出Cha # 只保留2个字符,最小宽度10 print("the name is: %10.2s" % the_name)3. 序列相关方法
字符串本质上就是由多个字符组成的,因此程序允许通过索引来操作字符。
Python 字符串直接在方括号( [])中使用索引即可获取对应的字符, 字符串中第一个字符的索引为0 、第二个字符的索引为1,后面各字符依此类推。此外, Python 也允许从后面开始计算索引,最后一个字符的索引为-1,倒数第二个字符的索引为-2······依此类推。
除可获取单个字符之外,也可在方括号中使用范围来获取字符串的中间“一段”(被称为子串)。
允许省略起始索引或结束索引。如果省略起始索引,相当于从字符串开始处开始截取;如果省略结束索引,相当于截取到字符串的结束处。
Python 字符串还支持用in 运算符判断是否包含某个子串。
如果要获取字符串的长度,则可调用Python 内置的len()函
使用全局内置的min()和max()函数获取字符串中最小字符和最大字符
s = 'crazyit.org is very good' # 获取s中索引2处的字符 print(s[2]) # 输出a # 获取s中从右边开始,索引4处的字符 print(s[-4]) # 输出g # 获取s中从索引3处到索引5处(不包含)的子串 print(s[3: 5]) # 输出zy # 获取s中从索引3处到倒数第5个字符的子串 print(s[3: -5]) # 输出zyit.org is very # 获取s中从倒数第6个字符到倒数第3个字符的子串 print(s[-6: -3]) # 输出y g # 获取s中从索引5处到结束的子串 print(s[5: ]) # 输出it.org is very good # 获取s中从倒数第6个字符到结束的子串 print(s[-6: ]) # 输出y good # 获取s中从开始到索引5处的子串 print(s[: 5]) # 输出crazy # 获取s中从开始到倒数第6个字符的子串 print(s[: -6]) #输出crazyit.org is ver # 判断s是否包含'very'子串 print('very' in s) # True print('fkit' in s) # False # 输出s的长度 print(len(s)) # 24 # 输出'test'的长度 print(len('test')) # 4 # 输出s字符串中最大的字符 print(max(s)) # z # 输出s字符串中最大的字符 print(min(s)) # 空格4. 大小写相关方法
Python 是“自带文档”的。此处需要读者简单掌握两个帮助函数。
- dir() : 列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)。
- help() : 查看某个函数或方法的帮助文档。
a = 'our domain is crazyit.org' # 每个单词首字母大写 print(a.title()) # 每个单词首字母小写 print(a.lower()) # 每个单词首字母大写 print(a.upper())
5. 删除空白
str 还提供了如下常用的方法来删除空白。
- strip () : 删除字符串前后的空白。
- lstrip() : 删除字符串前面(左边)的空白。
- rstrip () : 删除字符串后面(右边)的空白。
需要说明的是, Python 的str 是不可变的(不可变的意思是指,字符串一旦形成,它所包含的字符序列就不能发生任何改变),因此这三个方法只是返回字符串前面或后面空白被删除之后的副本, 并没有真正改变字符串本身。
lstrip () 方法默认删除字符串左边的空白,但如果为该方法传入指定参数,则可删除该字符串左边的指定字符。
s = ' this is a puppy ' # 删除左边的空白 print(s.lstrip()) # 删除右边的空白 print(s.rstrip()) # 删除两边的空白 print(s.strip()) # 再次输出s,将会看到s并没有改变 print(s) s2 = 'i think it is a scarecrow' # 删除左边的i、t、o、w字符 print(s2.lstrip('itow')) # 删除右边的i、t、o、w字符 print(s2.rstrip('itow')) # 删除两边的i、t、o、w字符 print(s2.strip('itow'))5. 查找、替换相关方法
str 还提供了如下常用的执行查找、替换等操作的方法。
- startswith():判断字符串是否以指定子串开头。
- endswith ():判断字符串是否以指定子串结尾。
- find (): 查找指定子串在字符串中出现的位置,如果没有找到指定子串,则返回- I 。
- index () : 查找指定子串在字符串中出现的位置,如果没有找到指定子串,则引发ValueError错误。
- replace(): 使用指定子串替换字符串中的目标子串。
- translate (): 使用指定的翻译映射表对字符串执行替换。
从上面程序可以看出, str 的trans l a te ()方法需要根据翻译映射表对字符串进行查找、替换。在上面程序中我们自己定义了一个翻译映射表,这种方式需要开发者能记住所有字符的编码,这显然不太可能。为此, Pyth on 为由类提供了一个maketra ns()方法,通过该方法可以非常方便地创建翻译映射表。
假如定义a -> 1 、b ->2、c->3 的映射, 程序只要将需要映射的所有字符作为maketrans () 方法的第一个参数,将所有映射的目标字符作为maketrans () 方法的第二个参数即可。
6. 分割、连接方法
Python 还为str 提供了分割和连接方法。
- split(): 将字符串按指定分割符分割成多个短语。
- join ():将多个短语连接成字符串。
str 的split()和join () 方法互为逆操作一 split () 方法用于将字符串分割成多个短语:而join () 方法则用于将多个短语连接成字符串。
s = 'crazyit.org is a good site' # 使用空白对字符串进行分割 print(s.split()) # 输出 ['crazyit.org', 'is', 'a', 'good', 'site'] # 使用空白对字符串进行分割,最多只分割前2个单词 print(s.split(None, 2)) # 输出 ['crazyit.org', 'is', 'a good site'] # 使用点进行分割 print(s.split('.')) # 输出 ['crazyit', 'org is a good site'] mylist = s.split() # 使用'/'为分割符,将mylist连接成字符串 print('/'.join(mylist)) # 输出 crazyit.org/is/a/good/site # 使用','为分割符,将mylist连接成字符串 print(','.join(mylist)) # 输出 crazyit.org,is,a,good,site
总结
以上是生活随笔为你收集整理的疯狂Python讲义之变量和简单类型--深入使用字符串笔记4的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 缅怀消逝的紫薇村
- 下一篇: 从Python到TensorFlow,差