Python3 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号( " 或 " )来创建字符串。
var1 = "Hello World!"
var2 = "Runoob"
Python 访问字符串中的值
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号来截取字符串,
如下实例:
var1 = "Hello World!"
var2 = "Runoob"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])
输出:
var1[0]: H
var2[1:5]: unoo
Python字符串运算符
+字符串连接
*重复输出字符串
[]通过索引获取字符串中字符
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。
in成员运算符 - 如果字符串中包含给定的字符返回 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
f-string
f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。
name = "Runoob"
f"Hello {name}" # 替换变量
Unicode 字符串
在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。
在Python3中,所有的字符串都是Unicode字符串。
Python 的字符串内建函数
count(str, beg= 0,end=len(string))
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
count()方法语法:
str.count(sub, start= 0,end=len(string))
参数
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
实例:
str="www.runoob.com"
sub="o"
print ("str.count("o") : ", str.count(sub))
sub="run"
print ("str.count("run", 0, 10) : ", str.count(sub,0,10))
输出:
str.count("o") : 3
str.count("run", 0, 10) : 1
bytes.decode()、encode()
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是"ignore"或者"replace"
方法语法:
bytes.decode(encoding="utf-8", errors="strict")
str.encode(encoding="UTF-8",errors="strict")
参数
encoding -- 要使用的编码,如"UTF-8"。
errors -- 设置不同错误的处理方案。默认为 "strict",意为编码错误引起一个UnicodeError。 其他可能得值有 "ignore", "replace", "xmlcharrefreplace", "backslashreplace" 以及通过 codecs.register_error() 注册的任何值。
实例:
str = "菜鸟教程";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")
print(str)
print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)
print("UTF-8 解码:", str_utf8.decode("UTF-8","strict"))
print("GBK 解码:", str_gbk.decode("GBK","strict"))
输出:
菜鸟教程
UTF-8 编码: b"xe8x8fx9cxe9xb8x9fxe6x95x99xe7xa8x8b"
GBK 编码: b"xb2xcbxc4xf1xbdxccxb3xcc"
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程
endswith()、startswith()
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查
方法语法:
str.endswith(substr, beg=0,end=len(string)])
str.startswith(substr, beg=0,end=len(string));
参数
suffix -- 该参数可以是一个字符串或者是一个元素。
beg -- 字符串中的开始位置。
end -- 字符中结束位置。
Str="Runoob example....wow!!!"
suffix="run"
print (Str.endswith(suffix, 0, 19))
str = "this is string example....wow!!!"
print (str.startswith( "this", 2, 4 )) # 从第2个字符开始到第四个字符结束的字符串是否以 this 开头
输出:
False
False
find(str, beg=0, end=len(string))
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
find()方法语法:
str.find(str, beg=0, end=len(string))
参数
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
返回值
如果包含子字符串返回开始的索引值,否则返回-1。
实例:
str1 = "Runoob example....wow!!!"
str2 = "exam";
print (str1.find(str2))
print (str1.find(str2, 5))
print (str1.find(str2, 10))
输出:
7
7
-1
isalnum()
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
实例:
str = "runoob2016" # 字符串没有空格
print (str.isalnum())
str = "www.runoob.com"
print (str.isalnum())
输出:
True
False
isalpha()
如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
实例:
str = "runoob"
print (str.isalpha())
# 字母和中文文字
str = "runoob菜鸟教程"
print (str.isalpha())
str = "Runoob example....wow!!!"
print (str.isalpha())
输出:
True
True
False
isdigit()
如果字符串只包含数字则返回 True 否则返回 False..
isdigit()方法的实例:
#!/usr/bin/python3
str = "123456";
print (str.isdigit())
str = "Runoob example....wow!!!"
print (str.isdigit())
输出:
True
False
join(seq)
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
join()方法语法:
str.join(sequence)
参数
sequence -- 要连接的元素序列。
返回值
返回通过指定字符连接序列中元素后生成的新字符串。
实例:
s1 = "-"
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
输出:
r-u-n-o-o-b
len(string)
返回字符串长度
lstrip()、rstrip()
截掉字符串左边的空格或指定字符。
截掉字符串右边的空格或指定字符。
strip([chars])
在字符串上执行 lstrip()和 rstrip()
删除字符串字符串末尾的空格.
max(str)
返回字符串 str 中最大的字母。
min(str)
返回字符串 str 中最小的字母。
replace(old, new [, max])
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
replace()方法语法:
str.replace(old, new[, max])
参数
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次
实例:
str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))
输出:
thwas was string example....wow!!!
split(str="", num=string.count(str))
split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串
实例:
str = "this is string example....wow!!!"
print (str.split( )) # 以空格为分隔符
print (str.split("i",1)) # 以 i 为分隔符
print (str.split("w")) # 以 w 为分隔符
输出:
["this", "is", "string", "example....wow!!!"]
["th", "s is string example....wow!!!"]
["this is string example....", "o", "!!!"]
splitlines([keepends])
按照行("", "
",
")分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
实例:
>>> "ab c
de fgkl
".splitlines()
["ab c", "", "de fg", "kl"]
>>> "ab c
de fgkl
".splitlines(True)
["ab c
", "
", "de fg", "kl
"]
python3 菜鸟 python3.0菜鸟
转载文章标签 python3 菜鸟 python3 菜鸟教程 str 字符串 子字符串 Python 文章分类 Python 后端开发