字符串类型的操作
操作符 | 描述 |
---|---|
x + y | 连接两个字符串 x 与 y |
x * n 或 n * x | 复制 n 次字符串 x |
x in y | 如果 x 是 s 的子串,返回 Ture,否则返回 False |
>>> "aaa"+"bbb"
'aaabbb'
>>> 12+24
36
>>> "aaa"+24
Traceback (most recent call last):
File "<pyshell#71>", line 1, in <module>
"aaa"+24
TypeError: Can't convert 'int' object to str implicitly
>>> "abc"*2
'abcabc'
>>> "555"*2
'555555'
>>> 555*2
1110
>>> "ab"in"abcd"
True
字符串处理函数
函数 | 描述 |
---|---|
len() | 返回字符串 x 的长度,也可返回其他组合数据类型的元素个数 |
str() | 返回任意类型 x 所对应的字符串形式 |
chr() | 返回 Unicode 编码 x 对应的单字符 |
ord() | 返回单字符 x 表示的 Unicode 编码 |
hex() | 返回整数 x 对应十六进制数的小写形式字符串 |
oct() | 返回整数 x 对应八进制数的小写形式字符串 |
>>> a="Hello"
>>> len(a)
5
>>> len("Hello世界")
7
>>> str(123)
'123'
>>> chr(65)
'A'
>>> ord("A")
65
>>> hex(17)
'0x11'
>>> oct(9)
'0o11'
字符串处理方法
方法也是一个函数,只是调用方式不同。函数采用 fun() 方式调用,而方法则采用 <a>.fun(x) 形式调用。方法仅作用于前导对象<a>。
方法 | 描述 |
---|---|
str.lower() | 返回字符串 str 的副本,全部字符小写 |
str.upper() | 返回字符串 str 的副本,全部字符大写 |
str.split(sep=None) | 返回一个列表,由 str 根据 sep 被分割的部分构成,省略 sep 默认以空格分隔 |
str.count(sub) | 返回sub子串出现的次数 |
str.replace(old,new) | 返回字符串 str 的副本,所有 old 子串被替换为 new |
str.center(width,fillchar) | 字符串居中函数,fillchar 参数可选 |
str.strip(chars) | 从字符串 str 中去掉在其左侧和右侧 chars 中列出的字符 |
str.join(iter) | 将 iter 变量的每一个元素后增加一个 str 字符串 |
>>> a="ABD"
>>> a.lower()
'abd'
>>> "ACD".lower()
'acd'
>>> a #返回值为副本,不改变原始参数
'ABD'
>>> a="ab cd ek"
>>> a.split() #默认分隔
['ab', 'cd', 'ek'] # []表示列表型数据
>>> a
'ab cd ek'
>>> a.split("d") #从"d"处分隔
['ab c', ' ek']
>>> type(a)
<class 'str'> #类型发生改变
>>> type(a.split())
<class 'list'>
>>> "abbcabdd455".count("ab")
2 #"ab"的出现次数
>>> "abcdefgx".replace("cd","**")
'ab**efgx' #"**"替换"cd"
>>> "ab".center(10)
' ab ' #ab前后各四个空格,总的十个字符
>>> "abcdab".strip("ab")
'cd'
>>> "abcabdab".strip("ab")
'cabd' #删除左侧或右侧的字符串,中间的需要先分隔,再删除
>>> "abc".join("*")
'*'
>>> "*".join("abcd")
'a*b*c*d' #顺序不能反
【真题】下面代码的输出结果是
s="The python language is a cross platform language."
print(s.find("language",30))
A:系统报错
B:10
C:11
√ D:40
>>> s="The python language is a cross platform language."
>>> print(s.find("language",30))
40
# find:查找。
#在s里边查找language的出现位置。30:从第30个字符开始数。
>>> print(s.find("language"))
11
#str.find()查询子串在大串中的位置
>>> "abcde".find("c")
2
【真题】下面代码的输出结果是
s="The python language is a multimodel language."
print(s.split( ))
A:系统报错
B:The python language is a multimodel language.
C:Thepythonlanguageisamultimodellanguage.
√ D:['The', 'python', 'language', 'is', 'a', 'multimodel', 'language.']
【真题】下面代码的输出结果是
str1='mysqlsqlserverPostgresQL'
str2='sql'
ncount=str1.count(str2)
print(ncount)
A:3
B:4
√ C:2
D:5
(注:str2在str1中出现的次数)
ASCII值不相等:A=65,a=97→A≠a