Python字符串的使用:
1、 Python的字符串是不可以改变的。但是你可以操作字符串以形成新的字符串。
2、 字符串中删除一个字串。没有直接提供这个方法,但是replace可以实现:
"abc def".replace(" ", "")
同样的功能还有一个方法:translate。它的原有作用是将字符串中的某个字符替换为另外一个字符,注意,不是字符串。它的第一个参数是一个转换表。第二个参数是要删除的字符串。我们可以利用第二个参数del,实现这个功能。同时,第一个参数设置为None。
translate可能更高效一点。另外,它的第二个参数可以使一个字符串,含有多个字符,这样就会删除多个。
注意:translate方法不会对这个字符串操作,而是返回一个新的字符串。
3、 strip方法:去除字符串两侧的空格,返回新的字符串。这个功能非常有用。
4、 str中有一个函数,format,非常强大,有时间一定要看一下。
5、 endswitch:检查字符串是否已某字符串结尾。startswith:检查是否已某字符串开头。
6、 partition:它将字符串按指定的字符串分为三个部分,返回一个元组。第一个是指定字符串前面内容,第二个是指定字符串,第三个是指定字符串后面的内容。用于字符串解析非常好用。
7、 split:将字符串按照某指定字符串分割成多个子字符串,返回一个分割后的列表。
8、 join:将一个字符串列表中的各个字符串连接起来,中间插入指定的字符串。
9、 find的返回值不是false和true,所以不可以直接用于if判断。需要判断if s.find(‘’) >= 0:
10、 基于字典的格式化:
a) sh = '''
b) python -m compileall -fl ../src;
c) python -m compileall -fl ../src/micbase;
d) mkdir %(packname)s;
e) mdkir %(packname)s;
f) ''' % {'packname':sys.argv[1], }
g) print(sh)
h)
内建函数:
string.capitalize() |
把字符串的第一个字符大写 |
string.center(width) |
返回一个原字符串居中,并使用空格填充至长度 width 的新串 |
string.count(str, beg=0, end=len(string)) |
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指返回指定范围内 str 出现的次数 |
string.decode(encoding='UTF-8', errors='strict') |
以 encoding 指定的编码格式解码 string,如果出错默认报ValueError 的异常,除非 errors 指定的是'ignore'或'replace' |
string.encode(encoding='UTF-8', errors='strict') |
以 encoding 指定的编码格式编码 string,如果出错默认报ValueError的异常, 除非errors指定的是'ignore'或者'repl |
string.endswith(obj, beg=0, end=len(string)) |
检查字符串是否以 obj 结束,如果 beg 或者 end 指定则检定的范围内是否以 obj 结束, 如果是, 返回True,否则返回Fa |
string.expandtabs(tabsize=8) |
把字符串 string 中的 tab 符号转为空格, 默认格数 tabsize 是 8. |
string.find(str, beg=0, end=len(string)) |
检测 str 是否包含在 string 中,如果 beg 和 end 指定范则检查是否包含在指定范围内,如果是返回开始的索引值,返回-1 |
string.index(str, beg=0, end=len(string)) |
跟find()方法一样, 只不过如果str不在string中会报一个异 |
string.isalnum() |
a, b, c R如果string至少有一个字符并且所有字符都是字母或数字回 True,否则返回 False |
string.isalpha() |
a, b, c 如果string至少有一个字符并且所有字符都是字母则返回T否则返回 False |
string.isdecimal() |
b, c, d 如果 string 只包含十进制数字则返回 True 否则返回 False. |
string.isdigit() |
b, c 如果 string 只包含数字则返回 True 否则返回 False. |
string.islower() |
b, c 如果 string 中包含至少一个区分大小写的字符,并且所有这些(大小写的)字符都是小写,则返回 True,否则返回 False |
string.isnumeric() |
b, c, d 如果 string 中只包含数字字符,则返回 True,否则返回 False |
string.isspace() |
b, c 如果 string 中只包含空格,则返回 True,否则返回 False. |
string.istitle() |
b, c 如果 string 是标题化的(见 title())则返回 True,否则返回 False |
string.isupper() |
b, c 如果 string 中包含至少一个区分大小写的字符, 并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
string.join(seq) |
Merges (concatenates)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
string.ljust(width) |
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 |
string.lower() |
转换 string 中所有大写字符为小写. |
string.lstrip() |
截掉 string 左边的空格 |
string.partition(str) |
e 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string. |
string.replace(str1, str2, num=string.count(str1)) |
把 string 中的 str1 替换成 str2,如果 num 指定, 则替换不超过 num 次. |
string.rfind(str, beg=0,end=len(string)) |
类似于 find()函数,不过是从右边开始查找. |
string.rindex( str, beg=0,end=len(string)) |
类似于 index(), 不过是从右边开始. |
string.rjust(width) |
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 |
string.rpartition(str) |
e 类似于 partition()函数,不过是从右边开始查找. |
string.rstrip() |
删除 string 字符串末尾的空格. |
string.split(str="", num=string.count(str)) |
以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串 |
string.splitlines(num=string.count('\n')) |
b, c按照行分隔, 返回一个包含各行作为元素的列表, 如果 num 指定则仅切片 num 个行. |
string.startswith(obj, beg=0,end=len(string)) |
b, e检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查. |
string.strip([obj]) |
在 string 上执行 lstrip()和 rstrip() |
string.swapcase() |
翻转 string 中的大小写 |
string.title() |
b, c 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
string.translate(str, del="") |
根据str给出的表(包含256个字符)转换string的字符,要过滤掉的字符放到 del 参数中 |
string.upper() |
转换 string 中的小写字母为大写 |
string.zfill(width) |
返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0
|