Python学习笔记-字符串
众望所归!
终于到了最想写的字符串!
Python中为字符串内建了许多函数,极大地方便了对该类型数据的处理。
本章主要介绍字符串的基本内容,以及对常用的内建函数进行简要的介绍。
字符串的基本内容
如何建立一个字符串
建立字符串请查找Python学习笔记-intro
一文。
字符串的运算
字符串可以进行加和乘运算(二元运算),本质上其实是进行了字符串拼接
。
-
字符串的
+
:前后运算数必须是字符串,结果值是将后面的字符串拼接到前面字符串的末尾而形成的字符串。a,b='hel','lo' print(a+b)
-
字符串的
*
:前运算数为字符串,后运算数为整型数n
,结果值是将前面的字符串重复n次而形成的字符串。注意,当n<=0时,结果值是空字符串。
a='h' print(a*3) print(a*0)
字符串的本质
和许多其他流行的编程语言一样,Python中的字符串本质上就是表示Unicode字符的字节数组。每个元素(字符)本质上是长度为1的字符串(由于Python中并没有像C语言中的char
字符类型)。可以利用类似C语言中访问数组元素的(下标索引)方式来访问字符串中的单个元素。
例如:
a = 'hello'
for i in range(0,len(a)):
print(a[i])
(本例子中的代码多此一举,由于Python中具有更好的迭代方式)
字符串数组的值不可以被修改
a = 'Hello'
a[0]='h'
# 报错信息为:'str' object does not support item assignment
当然,使用任何数组时,一定要注意不能越界!请思考下列代码(剪下字符串两端不必要的空格)错误的原因。
a = " "
while True:
if a=='': # 请注意本步的特判
break
elif a[0]==' ':
a=a[1:]
elif a[-1]==' ':
a=a[:len(a)-1]
else:
break
print(a)
字符串长度获取
使用len()
函数来获取字符串数组的长度,该函数的参数是任意合法的字符串,返回值是一个整型数。
print(len('Hello'))
“负”下标索引机制
异于C语言的是,Python中存在“负”下标索引机制。下标-1
代表该数组的倒数第一位,-2
代表该数组的倒数第二位,以此类推……
例如:
a = 'hello'
for i in range(1,len(a)+1):
print(a[-i])
又如:(借用该机制可以手动实现数组的反向遍历)
a = 'hello'
b = ''
for i in range(1,len(a)+1):
b+=a[-i]
print(b)
字符串切片
这又是Python的神操作。
使用切片操作来获取字符串的一部分,其语法如下:
str[开始索引:结束索引]
。
注意结束索引不包含在中,返回值是字符串的一部分组成的字符串。
a = 'experience'
print(a[0:3])
请注意,开始索引应在结束索引的”后面”,否则会返回空串。例如:
a = 'experience'
print(a[3:0])
这个规则仍然适用于使用负下标的情形(当然,你也可以正负下标混着用,只要你觉得这不影响代码的可读性)。例如:
a = ' experience'
print(a[1:-(len(a)-4)])
关于默认参数,开始索引不设置默认为0,结束索引不设置默认为len(str)+1。如果结束索引超过了字符串长度,则默认剪下尾部所有字符串。
灵活使用该函数可以对字符串进行多样操作。例如:剪下字符串两端不必要的空格。(当然,使用str.strip()
函数会更加方便)
a = " "
while True:
if a=='': # 请注意本步的特判
break
elif a[0]==' ':
a=a[1:]
elif a[-1]==' ':
a=a[:len(a)-1]
else:
break
print(a)
字符串的内建函数(方法)
下面介绍一些常用的字符串内建函数,来帮助大家更好地使用这种数据类型。
注意,以下的所有的函数都不会对原字符串的值进行改动!包括str.replace()
函数。
str.strip()
函数
str.strip()
函数可以方便地实现删除字符串开头和结尾的字符。其参数为任意合法的Python字符串,返回值为删除后生成的字符串。例如:
a,b,c = ' Hello ',' ',''
print(a.strip(),b.strip(),c.strip())
d = '000Hello000'
print(d.strip('0'))
str.upper()
、str.lower()
函数
str.upper()
、str.lower()
函数可以将字符串中的所有英文字母大写化/小写化。该函数不需要任何参数,返回值时大写化/小写化后的字符串。例如:
a,b = '你好,world','HELLO,世界'
print(a.upper(),b.lower())
str.replace()
函数
str.replace()
函数可以将被操作字符串的指定部分替换成提供的字符串。其语法为:
str.replace(old,new,max)
,其中old
指将被替换的字符串,new
指用于替换old的字符串,max
为可选参数,指替换最多不超过max次。例如:
a,b='hello','hellollo'
print(a.replace('l','L'),b.replace('l','L',3))
print(a,b)
此功能配合赋值语句能部分实现对字符串的修改操作(尽管并不建议这样使用)。
str.split()
函数
str.split()
函数可以将原字符串分隔成多段。其语法为:
str.split(div,num)
,其中div
指分割符,默认为' '
,num
指分割次数,默认为-1,即分割全部。
返回值为分割后的字符串组成的列表。
例如:
a = '1230234034504560567'
print(a.split('0',3))
借用该函数的功能还可以实现单行输入多值,详见有关输入输出的文章。
str.index()
函数
str.index()
函数可以在字符串中搜索特定的值并返回它的下标。其语法为:
str.index(value,start,end)
,其中,value
指要搜索的值,start
指搜索的开始索引,end
指搜索的结束索引。
返回值为value
在str中首次出现的位置(下标),如果是长串字符,则返回第一次出现中第一个字符的下标。
例如:
a = 'hello'
print(a.index('l',2,3))
b = 'hello Hello Hello'
print(b.index('Hello'))
注意,与find()
函数不同,如果str.index()
未能在指定区域找到该值,会引发错误。例如:
a = 'hello'
print(a.index('a'))
str.find()
函数
str.find()
函数的用法和str.index()
函数完全一致,两者唯一的区别是str.find()
函数在找不到值时默认返回-1
。
例如:
a = 'hello'
print(a.find('a'))
适用于字符串的Python通用内建函数/操作符
介绍内容如题。
in
操作符
使用in
操作符来查看该字符串中是否包含这个值。其语法如下:
value in str
,其中value
代表所要寻找的值。
返回值为一个布尔值。
例如:
a = 'hello'
if 'a' in a:
print('hello')
else:
print('hey')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。