06-2 数据类型—string
字符串是以单引号或双引号括起来的任意文本,比'abc',"123"等等。
一、创建字符串
str1 = 'Hello World!' # '本身只是一种表示方式,不是字符串的一部分. 若'本身也是一个字符,需用""括起来,如:"I'm OK"包含I,',m,空格,O,K这6个字符。
str2 = str('Hello World!') # 通过实例化对象方式创建字符串
二、操作
字符串类似于是由单个字符组成的列表,list对象的很多操作同样适用于字符串。
'hello'*2 # 按指定次数重复输出字符串 'helloworld'[2:] # 通过索引获取字符串中字符,这里和列表的切片操作是相同的 'el' in 'hello' # 成员运算符,如果字符串中包含给定的字符返回 True a='123' b='abc' c='789' d1=a+b+c # 字符串拼接,效率低 print(d1) d2=''.join([a,b,c]) # 用join拼接效率高。将a、b、c拼接在一次,它们中间用''(空)隔开。 print(d2)
三、内置方法
string = 'my title'
string.capitalize() # 把字符串的第一个字符大写,不改变str,可将结果赋值给变量
string.center(width, fillchar=None) # 返回一个原字符串居中,并使用符号(第二参数中指定,默认为空格)填充至长度width的新字符串
string.count(sub, start=None, end=None) # 返回 sub(是substring的缩写) 在 string 里面出现的次数,如果 start 或者 end (可将len(string)传给end)指定则返回指定范围内 str 出现的次数
string.encode(encoding='UTF-8', errors='strict') # 以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
string.endswith(suffix, start=None, end=None) # 检查字符串是否以 suffix 结束,如果 start 或者 end 指定则检查指定的范围内是否以 suffix 结束,如果是,返回 True,否则返回 False.
string.expandtabs(tabsize=8) # 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。如"hello \t kitty".expandtabs(tabsize = 10)
string.find(sub, start=None, end=None) # 检测 sub 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果有返回开始的索引值,否则返回-1
string.format() # 格式化输入的方式
string.format_map() # 格式化输入的一种方式。如string.format_map({'name':'alex', 'age':30}).参数是字典
string.index(sub, start=None, end=None) # 跟find()方法一样,只不过如果 sub不在 string中会报一个异常.
string.isalnum() # 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
string.isalpha() # 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
string.isdecimal() # 如果 string 只包含十进制数字则返回 True 否则返回 False.
string.isdigit() # 如果 string 只包含数字则返回 True 否则返回 False.
string.isidentifier() # 检查这个字符串是否可以作为变量名,如过string为'123abc'会返回False,'abc123'会返回True.
string.islower() # 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
string.isnumeric() # 如果 string 中只包含数字字符,则返回 True,否则返回 False
string.isspace() # 如果 string 中只包含空格,则返回 True,否则返回 False.
string.istitle() # 如果 string 是标题化的(见 title(),单词的首字母大写)则返回 True,否则返回 False
string.isupper() # 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
string.join(seq) # 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
string.ljust(width) # 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.lower() # 转换 string 中所有大写字符为小写.
string.lstrip() # 截掉 string 左边的空格
string.maketrans(intab, outtab]) # maketrans()方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,参数1是字符串,表示需要转换的字符,参数2也是字符串表示转换的目标
max(str) # 返回字符串 str 中最大的字母。
min(str) # 返回字符串 str 中最小的字母。
string.partition(str) # 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把字符串分成一个3元素的元组 (string_pre_str,str,string_post_str)
string.replace(str1, str2, num=None) # 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次,要全部替换num可以赋值为string.count(str1).
string.rfind(str, start=None,end=None) # 类似于 find()函数,不过是从右边开始查找.
string.rindex( str, beg=0,end=len(string)) # 类似于 index(),不过是从右边开始.
string.rjust(width) # 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.rpartition(str) # 类似于 partition()函数,不过是从右边开始查找.
string.rsplit() # 类似于split(),不过是从右边开始分
string.rstrip() # 删除 string 字符串末尾的空格.
string.split(str="", num=string.count(str)) # 以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串.
string.splitlines(num=string.count('\n')) # 按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
string.startswith(prefix, start=None,end=None) # 检查字符串是否是以 prefix 开头,是则返回 True,否则返回 False。如果 start 和 end 指定值,则在指定范围内检查.
string.strip(chars=None) # 在 string 上执行 lstrip()和 rstrip(),去掉开头、结尾的空格、换行符 、制表符
string.swapcase() # 翻转 string 中的大小写
string.title() # 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
string.translate(str, del="") # 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
string.upper() # 转换 string 中的小写字母为大写
浙公网安备 33010602011771号