06-2 数据类型—string

字符串是以单引号或双引号括起来的任意文本,比'abc'"123"等等。

一、创建字符串

str1 = 'Hello World!'       # '本身只是一种表示方式,不是字符串的一部分. 若'本身也是一个字符,需用""括起来,如:"I'm OK"包含I,',m,空格,OK这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 中的小写字母为大写

  

posted @ 2017-05-31 23:49  seaidler  阅读(135)  评论(0)    收藏  举报