1.字符串的定义
双引号或者单引号中的数据,就是字符串。
‘’‘内容‘’‘:使用三个单引号可保持原内容的格式。
2.字符串的下标
字符串:name = 'abcdef',在内存中的实际存储和列表一样。
可通过下标得到。
#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Runoob"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
var1[0]:H
var2[1:5]:ytho
3.字符串格式化
name = '老王'
age = 20
info = '名字=%s,年龄=%s,16进制=%x'%(name,age,age)
print(info)
name="code" class="python">名字=老王,年龄=20,16进制=14
4.字符串运算符
下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 |
>>>
a
+
b
'
HelloPython
'
|
* | 重复输出字符串 |
>>>
a
*
2
'
HelloHello
'
|
[] | 通过索引获取字符串中字符 |
>>>
a
[
1
]
'
e
'
|
[ : ] | 截取字符串中的一部分 |
>>>
a
[
1
:
4
]
'
ell
'
|
in | 成员运算符 - 如果字符串中包含给定的字符返回 True |
>>>
"
H
"
in
a
True
|
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True |
>>>
"
M
"
not
in
a
True
|
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 |
>>>
print
r
'
\n
'
\
n
>>>
print
R
'
\n
'
\
n
|
% | 格式字符串 |
5.方法
1.查找:
string。find(str, beg=0, end=len(string)):检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引 值,否则返回-1
string.rfind(str, beg=0, end=len(string)):类似于 find()函数,不过是从右边开始查找
string.index(str, beg=0, end=len(string)) :类似于 find()函数,但是找不到报异常.
string.rindex(str, beg=0, end=len(string)):类似于 rfind()函数,但是找不到报异常.
2.统计:
string.count(str, beg=0, end=len(string)):检测 str 是否包含在 string 中出现的次数,如果 beg 和 end 指定范围,则检查是否包含在指定范围内
3.分隔:
string.split(str='',num) : 以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串 string.splitlines([keepends]) : 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
string.partition(str) : 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 (string_pre_str,str,string_post_str),
如果 string 中不包含str 则 string_pre_str == string.
string.rpartition(str) : 类似于 partition()函数,不过是从右边开始.
4.判断:
string.startswith(obj=0,end=len(string)) : 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.string.endswith(obj=0,end=len(string)) : 检查字符串是否是以 obj 结尾,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.isalnum() : 字符串都是字母或数字则返回 True,否则返回 False,也包括汉字
string.isalpha() : 所有字符都是字母包括汉字则返回 True,否则返回 False
string.isdigit() : 所有字符都是数字则返回 True,否则返回 False
string.isupper() : 所有字符都是大写则返回 True,否则返回 False
string.islower() : 所有字符都是小写则返回 True,否则返回 False
string.isspace() : 只包含空格则返回 True,否则返回 False5.大小写
string.capitalize() : 把字符串的第一个字符大写string.lower() : 转换 string 中的小写字母为大写
string.upper(): 转换 string 中的小写字母为大写
6.对齐
string.ljust(width): 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width): 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width):返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
7.裁剪
string.scrip([obj]):删除 string 字符串前后的的obj,如果不传参数,删除前后空格string.lstrip([obj]):删除 string 字符串左面的obj,如果不传参数,删除左面空格
string.rstrip([obj]):删除 string 字符串右面的obj,如果不传参数,删除右面空格
8.合并
string.join(seq):以 string 作为分隔符,将 seq 中所有的元素(字符串表示)合并为一个新的字符串
9.编码和解码
string.encode(encoding='UTF-8', errors='strict'):以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的'ignore'或者'replace'
bytes.decode(encoding='UTF-8', errors='strict'):解码