Python数据类型(一)字符串
字符串
1.去空格及特殊符号
(1)rstrip()、lstrip()、strip()用法
s = ' -----abc123++++ '
# 删除两边空字符
print(s.strip())
# 删除左边空字符
print(s.rstrip())
# 删除右边空字符
print(s.lstrip())
# 删除两边 - + 和空字符
print(s.strip().strip('-+'))
输出结果:
-----abc123++++
-----abc123++++
-----abc123++++
abc123
(2)删除单个固定位置字符: 切片 + 拼接
s = 'abc:123'
# 字符串拼接方式去除冒号
new_s = s[:3] + s[4:]
print(new_s)
输出结果:
abc123
(3)删除任意位置字符同时删除多种不同字符:replace(), re.sub()
# 去除字符串中相同的字符
s = '\tabc\t123\tisk'
print(s.replace('\t', ''))
import re
# 去除\r\n\t字符
s = '\r\nabc\t123\nxyz'
print(re.sub('[\r\n\t]', '', s))
输出结果:
abc123isk
abc123xyz
(4)删除任意位置字符同时删除多种不同字符:replace(), re.sub()
# 去除字符串中相同的字符
s = '\tabc\t123\tisk'
print(s.replace('\t', ''))
import re
# 去除\r\n\t字符
s = '\r\nabc\t123\nxyz'
print(re.sub('[\r\n\t]', '', s))
输出结果:
abc123isk
abc123xyz
2.字符串链接
(1)用 ‘+’连接字符串
text1 = "Hello"
text2 = "World"
print(text1 + text2)
输出结果:
'HelloWorld'
(2)’,’连接成 tuple (元组)类型
text1 = "Hello"
text2 = "World"
print(text1, text2)
print(type((text1, text2)))
输出结果:
('Hello', 'World')
<type 'tuple'>
(3)%s 占位符连接
text1 = "Hello"
text2 = "World"
print("%s%s"%(text1,text2))
输出结果:
HelloWorld
(4)空格自动连接
print("Hello" "Nasus")
输出结果:
'HelloNasus'
值得注意的是,不能直接用参数代替具体的字符串,否则报错,代码如下:
text1="Hello"
text2="World"
print(text1 text2)
报错结果:
File "<ipython-input-16-6f33b75a33e4>", line 3
print(text1 text2)
^
SyntaxError: invalid syntax
(5)’*’ 连接
text1="nasus "
print(text1*4)
输出结果:
nasus nasus nasus nasus
(6)join 连接
list1 = ['P', 'y', 't', 'h', 'o', 'n']
print("".join(list1))
tuple1 = ('P', 'y', 't', 'h', 'o', 'n')
print("".join(tuple1))
输出结果:
Python
Python
提示:""可以加其他符号,加了则输出 Python
(7) 多行字符串拼接 ()
text = ('666'
'555'
'444'
'333')
print(text)
print (type(text))
输出结果:
666555444333
<type 'str'>
3.复制字符串
fstr = 'strcpy'
print(fstr)
sstr = fstr
print(sstr)
fstr = 'strcpy2'
print(fstr)
print(sstr)
输出结果:
strcpy
strcpy
strcpy2
strcpy
4.查找字符
Python 查找字符串使用 变量.find(“要查找的内容”[,开始位置,结束位置]),开始位置和结束位置,表示要查找的范围,为空则表示查找所有。查找到后会返回位置,位置从0开始算,如果每找到则返回-1。str.rfind(“从左边开始计算”)
str = 'a,hello,world'
print(str.find('hell'))
print(str.find('world'))
print(str.find('lleh'))
print(str.rfind('o'))
输出结果:
2
8
-1
9
5.比较字符串
is和==
(1)is
is 操作符是判断两个变量是否引用了同一个对象。
两个变量是否引用了同一个对象查看内存地址就知道是否相同。查看内存地址的方式id()函数
a = 10
b = 10
c = 20
d = 20
e = 257
f = 257
print(id(a))
print(id(b))
print(id(c))
print(id(d))
print(id(e))
print(id(f))
输出结果:
94373652747488
94373652747488
94373652747248
94373652747248
94373659813736
94373659813760
由于数值小的常用一直建立新的内存地址会有影响所以小的变量都归为一个内存地址(-5~256)都是同一个内存地址
a = 10
b = 10
c = 20
d = 20
e = 257
f = 257
print(a is b)
print(a is e)
输出结果:
True
False
相同就输出True反则False
(2)==
==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:
a = 'abcdef'
b = 'abcdef'
c = 'abcdfeg'
print(a == b)
print(a == c)
输出结果:
True
False
6.扫描字符串是否包含指定的字符
(1)使用成员操作符 in
str1 = "nihao,python"
str2 = "python"
result = str1 in str2
res = str2 in str1
print(result)
print(res)
输出结果:
False
True
7.字符串长度
str1 = "abcd123"
print(len(str1))
输出结果:
7
8.将字符串中的大小写转换
str = "i love python"
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
print(str.capitalize()) # 把第一个字母转化为大写字母,其余小写
print(str.title()) # 把每个单词的第一个字母转化为大写,其余小写
输出结果:
I LOVE PYTHON
i love python
I love python
I Love Python
9.追加指定长度的字符串
ljust(len,str)字符向左对齐,用str补齐长度
rjust(len,str)字符向右对齐,用str补齐长度
rjust(len,str)字符中间对齐,用str补齐长度
zfill(width)指定字符串长度,右对齐,前面补充0
print ('bbb'.ljust(10,'a'))
print ('bbb'.rjust(10,'a'))
print ('bbb'.center(10,'a'))
print ('2'.zfill(5))
输出结果:
bbbaaaaaaa
aaaaaaabbb
aaabbbaaaa
00002
10.字符串指定长度比较
import operator
sStr1 = '12345'
sStr2 = '123bc'
n = 3
print(operator.eq(sStr1[0:n],sStr2[0:n]))
输出结果:
True
11.复制指定长度的字符
sStr1 = ‘’
sStr2 = ‘12345’
n = 3
sStr1 = sStr2[0:n]
print (sStr1)
输出结果
123
12.将字符串前n个字符替换为指定的字符
sStr1 = '12345'
ch = 'r'
n = 3
sStr1 = n * ch + sStr1[3:]
print (sStr1)
输出结果:
rrr45
13.扫描字符串
sStr1 = 'cekjgdklab'
sStr2 = 'gka'
nPos = -1
for c in sStr1:
if c in sStr2:
nPos = sStr1.index(c)
break
print (nPos)
输出结果
2
14.翻转字符串
sStr1 = 'abcdefg'
sStr1 = sStr1[::-1]
print (sStr1)
输出结果:
gfedcba
15.查找字符串
sStr1 = ‘abcdefg’
sStr2 = ‘cde’
print (sStr1.find(sStr2))
输出结果:
2
16.分割字符串
sStr1 = 'ab,cde,fgh,ijk'
sStr2 = ','
sStr1 = sStr1[sStr1.find(sStr2) + 1:]
print (sStr1)
#或者
s = 'ab,cde,fgh,ijk'
print(s.split(','))
输出结果:
cde,fgh,ijk
['ab', 'cde', 'fgh', 'ijk']
17.连接字符串
delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print (delimiter.join(mylist))
输出结果:
Brazil,Russia,India,China