1.字符串类型
字符串的定义:
•第一种方式:
str1 = ‘our company is westos’
•第二种方式:
str2 = “our company is westos”
•第三种方式:
str3 = “”“our company is westos”“”
2.转义符号
一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
\n: 代表换行符 \”: 代表双引号本身
\t: 代表tab符 \’: 代表单引号本身
3.三重引号
• 块注释:多行代码注释
• 函数的doc文档:讲函数时会说到
• 字符串格式化
4.字符串操作预览
字符串属于序列,序列支持的操作如下:
• 索引 切片
• 判断子串(成员操作符) 重复
• 连接 计算长度
1) 索引
• 索引(s[i] ):获取特定偏移的元素
• 给出一个字符串,可输出任意一个字符,如果索引为负数,
就是相当于从后向前数。
索引理解
字符串 h e l l o \n
索引 0 1 2 3 4 5
索引 -6 -5 -4 -3 -2 -1
s = "hello"
s
Out[3]: 'hello'
s[1] ##索引从0开始
Out[4]: 'e'
s[0]
Out[5]: 'h'
s[-1] ##-1及为最后一个
Out[6]: 'o'
s[-2]
Out[7]: 'l'
s[-5]
Out[9]: 'h'
2) 切片
切片S[i:j]提取对应的部分作为一个序列:
•上边界并不包含在内;
•如果没有给出切片的边界,切片的下边界默认为
0,上边界为字符串的长度;
•扩展的切片S[i:j:k],其中i,j含义同上,k为递增步
长;
s[:]获取从偏移量为0到末尾之间的元素,是实现有效
拷贝的一种方法
s[0:5] ##相当于0-4
Out[10]: 'hello'
s[0:5:2]
Out[11]: 'hlo'
s[:] ##相当于所有
Out[12]: 'hello'
s[::-1] ##反向输出
Out[13]: 'olleh'
3) 判断子串
判断一个sub字符串是不是属于s字符串:
•sub in s
•sub not in s
'hello' in s
Out[14]: True ##判断是否存在
'hello' not in s
Out[15]: False ##判断是否不存在
4) 重复、连接及计算长度
'*'*10 ##重复
Out[17]: '**********'
'*'*10+'ATM'+'*'*10 ##连接符
Out[19]: '**********ATM**********'
len(s) ##计算长度
Out[20]: 5
5.字符串的类型转换
str(obj) 将其他类型内容转换为字符串
int(obj) 将字符串转换为为整数
float(obj) 将字符串转换为浮点型
long(obj) 将字符串转换为长整型
a=1
long(a)
Out[35]: 1L
complex(a)
Out[36]: (1+0j)
float(a)
Out[37]: 1.0
6.字符串常用操作:
1) str.capitalize()
- 将字符串首字母大写,并返回新的首字母大写
后的字符串;
s = "xiaomi hello"
print s.capitalize()
2) str.center(width[,fillchar])
- 返回一个长为width的新字符串,在新字符串
中原字符居中,其他部分用fillchar指定的符号填充,
未指定时通过空格填充。
s = ATM
s.center(50) ##用空格填充,共50个字符(左右)
s.center(50,'*') ##用*填充,共50个字符(左右)
s.ljust(40) ##用空格填充,共40个(左边)
s.rjust(40) ##用空格填充,共40个(右边)
3) str.count(sub[, start[, end]]) -> int
- 返回sub在str中出现的次数,如果start与end指定,
则返回指定范围内的sub出现次数。
s = "xiaomi hello"
print s.count("x") ##全文查询x个数
print s.count("x",0,5) ##0到5查询x个数
4) str.endswith(suffix[, start[, end]])
- 判断字符串是否以suffix结束,如果start和end指
定,则返回str中指定范围内str子串是否以suffix结尾,如果
是,返回True;否则返回False
str.startswith(prefix[, start[, end]])
5) str.find(sub[,start[,end]])
- 判断sub是否在str中,存在返回索引值,不存在返
回-1.
6) str.index(sub[,start[,end]])
- 与find方法函数功能相同,如果sub不存在时抛出
ValueError异常;
str.isalnum() //判断是否都是字母或数字
str.isalpha() //判断是否都是字母
str.isdigit() //判断是否都是数字
str.islower() //判断是否都是小写
str.isspace() //判断是否都是英文空格
str.istitle() //判断是不是都是标题(纯英文,首字母大写,其他小写)
str.isupper() //判断是不是都为大写字母
7) str.join(seq)
- 以str作为分隔符,将序列seq中的所有元素合并为
一个新的字符串。
print " ".join("hello") ##用空格连接每一个字符
8) str.replace(old,new[,count])
- 将str中的old字符串替换为new字符串,并将替换
后的新字符串返回,如果count指定,则只替换前count个
字符串
s = "h e l l o"
s.replace(" ","") ##将空格替换位空
9) str.split([sep[,maxsplit]])
- 以sep字符串作为分割符对str进行切割,默认为空
格; - maxsplit代表切割的此处
s = "hello xiaomi"
s.split() ##默认按空格进行分割
s.split("a") ##按a为分隔符进行分割
10) str.strip(“chars”)
- 返回一字符串,将str中首尾包含指定的chars字符
删除的字符串,未指定时,删除首尾的空格、\n、\t。
a = " hello "
print a.strip() ##删除两边的
b = " hello 123"
print b.strip("123")
s = " hello \n\t"
print s.strip()
s = " hello world 123"
print s.lstrip() ##删除左边的
print s.rstrip("123") ##删除右边的