微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python学习笔记-字符串

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 举报,一经查实,本站将立刻删除。

相关推荐