Python课堂14–字符串操作

  • Post author:
  • Post category:python


  1. 字符串截取
s = "hello"
print(s[0:3])#0到3左闭右开截取

截取全部字符

s = "hello"
print(s[:])
print(s)
  1. 取每隔一个排序

    1为起始,8为终点,左闭右开,2为步长

    默认从头到尾步长为1
s = "hellopython"
print(s[1:8:2])
  1. 去空格(只能去左右)

    消除字符串s左右两边的空白字符(包括’/t’,’/n’,’/r’,’’)
s = " he llo "
print(s.strip())
print(s.lstrip())#去左空格
print(s.rsplit())#去右空格
  1. 字符串复制
s = "hello"
s_copy = s
print(s_copy)
#查询id后发现结果相同,只是多了一个名,却指向同一地址
print(id(s))
print(id(s_copy))

我们再将被复制后的s进行修改,发现输出后的地址不再相同,因为将s进行修改后,会新建一个内存用来存储新的s,s_copy仍旧指向原来的s的地址,而s则断掉曾经的地址指向新的存储地址。

s = "hello"
s_copy = s
s = s.title()#将s改为标题
print(s)
print(s_copy)
print(id(s))
print(id(s_copy))
  1. 指定字符串长度输出

    0-2指下角标,左闭右开输出。
s = "hello"
s1 = s[0:2]
print(id(s1))

我们再对s进行修改和修改后复制,查询id结果不相同,得知指定长度输出是创建了新的存储地址。

s = "hello"
s1 = s[0:2]
s_copy = s[0:3]
print(id(s))
print(id(s1))
print(id(s_copy))
  1. 字符串拼接
s = "hello"
s1 = "python"
s2 = s + s1
print(s2)

或者导入operator包中的concat模块进行拼接

s = "hello"
s1 = "python"
import operator
s2 = operator.concat(s,s1)
print(s2)

我们还可以利用operator库对字符串进行排序(通过ASCII码比较)

lt(a,b)---小于
le(a,b)---小于等于
eq(a,b)---等于
ne(a,b)---不等于
ge(a,b)---大于等于
gt(a,b)---大于

例:

s = "hello"
s1 = "python"
import operator
b = operator.lt(s,s1)
print(b)#输出结果为bool类型
  1. 判断字符串长度
s = "hello"
s1 = "python"
print(len(s),len(s1))
  1. 求字符串中的最大字符最小字符

    通过ASCII码比较
s = "hello"
print(max(s))
print(min(s))
  1. 字符串大小写转换
s = "asdfQWEghj how are you"
print(s.upper())#转大写
print(s.lower())#转小写
print(s.title())#转标题,每个单词首字母大写
print(s.capitalize())#首字母大写
print(s.swapcase())#大写转小写,小写转大写
  1. 将字符串分割成列表

    用split()进行分割,按照括号内的值进行分割,默认是按照空格
s = "asdfoQWEghj how are you"
s1 = s.split()
#s1 = s.split(o)#按照字母o进行分割
print(s1)
  1. 字符串序列连接

    使用join(),将括号内的字符串拆开,每个字符后面都加入s2在连接
s = "how are you"
s1 = "789456"
s2 = s.join(s1)
print(s2)
#输出结果:7how are you8how are you9how are you4how are you5how are you6

这种序列连接我们通常用不到,所以我们通常运用到下面这种连接方法,同时可将列表转换成字符串。

a = ['helllo','word']
s = "-"
print(s.join(a))
#输出结果:helllo-word
  1. 字符串查找(find)

    查找第一个字符首次出现的下标。

    没有查到显示-1。

    0为起始位置,9为终止位置,默认从头到尾查找
s1 = 'today is a fun day'
index = s1.find("is",0,9)
#index = s1.find("is")
print(index)
  1. 字符串内替换

    用replace()进行替换,(准备替换的值,要替换的值,替换个数)
s = 'today is a fun day is is is is'
s1 = s.replace("is","are",2)
print(s1)
print(id(s))
print(id(s1))

分别查询id后发现不一样,说明替换是建立一个新的存储地址

  1. 字符串判断

    返回结果为布尔类型
#isdigit---检测字符串是否只由数字组成
#isalnum---检测字符串是否只由数字和字母组成
#isalpha---检测字符串是否只由字母组成
#islower--检测字符串是否只含有小写字母
#isupper---检测字符串是否只含有大写字母
#isspace---测字符串是否只含有空格
#istitle---检测字符串是否是标题(每个单词首字母大写,每个单词由单词之间的空格区别)

例:

#输入一个含有字母和空格的字符串
s = 'today is a fun day is is is is'
print(s.isalpha())
#输出结果:False



版权声明:本文为weixin_44362227原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。