04.字符串
字符串str
创建
str = 'abc'
str = "abc"
str = '''abc''' 或 """abc"""
连接
# "+"将字符串连接在一起
str1 + str2
# join 将序列中的元素以指定的字符连接生成一个新的字符串
s1 = "-"
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join(seq))
# 输出结果为:
r-u-n-o-o-b
重复
str1 * 3
索引
str1[0] # 索引范围:[0, len(str1)-1]
# 字符串是不可变类型,不能通过索引值修改.
切片
str[atart:stop:step] # 不包含stop不存在越界问题
切割
print(str.split(',', 2)) # 以 , 为分隔符将str分成3个
翻转
str2 = str1[-1: :-1]
str2 = str1[ : : -1]
转义
在需要在字符中使用特殊字符时,python用反斜杠 \ 转义字符。
| \ | 续行符 |
|---|---|
| \\ | 反斜杠符 |
| \' | 单引号 |
| \" | 双引号 |
| \000 | 空 |
| \n | 换行 |
| \v | 纵向制表符 |
| \t | 横向制表符 |
| \newline | 代码太长时连续上一行 |
取消转义 r 在字符串前加 r 取消转义,表示原始字符.
常用方法
| 序号 | 方法及描述 |
|---|---|
| 1 | capitalize() |
| 2 | 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
| 3 | count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
| 4 | bytes.decode(encoding="utf-8", errors="strict") Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
| 5 | encode(encoding='UTF-8',errors='strict') 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
| 6 | endswith(suffix, beg=0, end=len(string)) |
| 7 | 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
| 8 | find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
| 9 | index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常. |
| 10 | 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
| 11 | 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
| 12 | 如果字符串只包含数字则返回 True 否则返回 False.. |
| 13 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
| 14 | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
| 15 | 如果字符串中只包含空白,则返回 True,否则返回 False. |
| 16 | 如果字符串是标题化的(见 title())则返回 True,否则返回 False |
| 17 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
| 18 | 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
| 19 | 返回字符串长度 |
| 20 | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
| 21 | 转换字符串中所有大写字符为小写. |
| 22 | 截掉字符串左边的空格或指定字符。 |
| 23 | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
| 24 | 返回字符串 str 中最大的字母。 |
| 25 | 返回字符串 str 中最小的字母。 |
| 26 | 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 |
| 27 | rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找. |
| 28 | rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始. |
| 29 | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
| 30 | 删除字符串字符串末尾的空格. |
| 31 | split(str="", num=string.count(str)) num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
| 32 | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
| 33 | startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
| 34 | 在字符串上执行 lstrip()和 rstrip() |
| 35 | 将字符串中大写转换为小写,小写转换为大写 |
| 36 | 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
| 37 | translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
| 38 | 转换字符串中的小写字母为大写 |
| 39 | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
| 40 | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
字符串格式化
| 符 号 | 描述 |
|---|---|
| %c | 格式化字符及其ASCII码 |
| %s | 格式化字符串 |
| %d | 格式化整数 |
| %u | 格式化无符号整型 |
| %o | 格式化无符号八进制数 |
| %x | 格式化无符号十六进制数 |
| %X | 格式化无符号十六进制数(大写) |
| %f | 格式化浮点数字,可指定小数点后的精度 |
| %e | 用科学计数法格式化浮点数 |
| %E | 作用同%e,用科学计数法格式化浮点数 |
| %g | %f和%e的简写 |
| %G | %f 和 %E 的简写 |
| %p | 用十六进制数格式化变量的地址 |
修饰 format
-
Python2.6 开始,新增了一种格式化字符串的函数 str.format()
-
它增强了字符串格式化的功能, 基本语法是通过 {} 和 : 来代替以前的 % 。
-
format 函数可以接受不限个参数,位置可以不按顺序。
实例
"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
"{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
"{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
也可以设置参数:
实例
print("网站名:{name}, 地址 {url}".format(name="百度", url="www.baidu.com"))
# 通过字典设置参数
site = {"name": "百度", "url": "www.baidu.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['百度', 'www.baidu.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的

浙公网安备 33010602011771号