Python字符串

认识字符串

字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

a = 'hello world'
b = "abcdefg"
print(type(a))
print(type(b))
  • 控制台显示结果为<class 'str'>, 即数据类型为str(字符串)。
字符串特征
一对引号字符串
  • ' '" "
  • 双引号内可包含单引号,单引号内可包含双引号
  • 双引号内若要有双引号,需要\"转义
  • 单引号内若要有单引号,需要\'转义
name="Lily"
age='17'
words="Lily just said \"Hi,I'm Lily\""
speak='Lily just said "Hi,I\'m Lily"'
print(name)
print(age)
print(words)
print(speak)

在这里插入图片描述

三引号字符串
  • 内部支持换行
a = ''' I am Jack, 
        nice to meet you! '''

b = """ I am Rose, 
        nice to meet you! """

print(a)
print(b)

在这里插入图片描述

下标索引
获取字符串长度

len(str)

返回字符串str的长度(length)

下标
  • “下标”又叫“索引”(index),就是编号。比如火车座位号,座位号的作用:按照编号快速找到对应的座位。同理,下标的作用即是通过下标快速找到对应的数据。
  • 字符串下标从0开始计数,即0代表第一个字符,依次对应,直到length-1,对应最后一个字符。
  • 字符串下标也可以为负,-1代表最后一个元素,以此类推
  • 索引符号:[]
s="abcd"
print(s[0],s[1],s[2],s[3],s[-1],s[-2],s[-3],s[-4],sep=" ")

在这里插入图片描述

切片
  • 切片(slice)是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
语法
string[begin:end:step]
  • 依次取以begin(包含)到end(不包含end)间以step为步长的下标所对应的字符
  • step可为负
  • begin,end,step均可舍去不写,分别默认为0/-1,length-1,1,但要保留第一个冒号
  • 返回一个新字符串
s="abcdefgh"
print(s[1:7:2])
print(s[5:1:-1])
print(s[1:4])
print(s[:])

在这里插入图片描述

常用操作方法

字符串的常用操作方法有查找、修改和判断三大类。

查找

所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数。

find()
  • 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。

  • 语法

string.find(substring, begin, end)
  • 开始和结束位置下标可以省略,表示在整个字符串序列中查找。

  • string="aghshmoneyjsjsjsjj"
    print(string.find("money"))
    print(string.find("money",6,17))
    

在这里插入图片描述

index()
  • 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。
  • 语法
string.index(substring, begin, end)
  • 开始和结束位置下标可以省略,表示在整个字符串序列中查找。

在这里插入图片描述

rfind()
  • 和find()功能相同,但查找方向为右侧开始。
rindex()
  • index()功能相同,但查找方向为右侧开始。
count()
  • 返回某个子串在字符串中出现的次数

  • 语法

string.count(substring,begin, end)
  • 开始和结束位置下标可以省略,表示在整个字符串序列中查找。
string="111666666666666111"
print(string.count("6"))
print(string.count("6",4,11))
print(string.count("0"))

在这里插入图片描述

修改
  • 所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。因为字符串是不可变序列,所以不能通过索引切片赋值的方式来改变字符串内的子串。
replace()
  • 替换字符串中的子串

  • 返回一个新字符串,原字符串不发生改变

  • 语法

string.replace(old_substring, new_substring, max_times)

max_times为最多替换的次数

如:

string="我恨学习,我爱摆烂"
print(string.replace("爱","恨"))
print(string.replace("恨","爱"))
print(string.replace("爱","恨").replace("恨","爱"))
print(string.replace("爱","恨").replace("恨","爱",1))
print(string)

在这里插入图片描述

split()
  • 按照指定字符分割字符串,并返回一个字符串列表。
  • 语法
string.split(sep, max_times)

sep为分割字符,max_times为最多分割的次数
  • 分割后,sep会在分割返回的字符串数组中消失

如:

s="111-222-333-4"
print(s.split("-"))
print(s.split("-",2))

在这里插入图片描述

join()
  • 用一个字符或子串合并字符串序列(如split()形成的列表),即是将多个字符串合并为一个新的字符串。

  • 语法

sep.join(strings)
  • split()的反操作

如:

s="111-222-333-4"
print(s)
s1=s.split("-")
print(s1)
print("*".join(s1))

在这里插入图片描述

capitalize()
string.capitalize()
  • 将字符串第一个字符转换成大写。
  • 其他字符转化为小写
title()
string.title()
  • 将字符串每个单词首字母转换成大写。
lower()
string.lower()
  • 将字符串中大写转小写。
upper()
string.lower
  • 将字符串中小写转大写。
lstrip()
string.lstrip()
  • 删除字符串左侧空白字符。
rstrip()
string.rstrip()
  • 删除字符串右侧空白字符。
strip()
string.strip()
  • 删除字符串两侧空白字符。
ljust()
string.ljust(width, fillchar)
  • 返回一个左对齐,并使用指定字符fillchar(默认空格)填充至对应长度(width)的新字符串
rjust()
string.rjust(width, fillchar)
  • 返回一个右对齐,并使用指定字符(默认空格)填充至对应长度 的新字符串
center()
string.center(width, fillchar)
  • 返回一个居中对齐,并使用指定字符(默认空格)填充至对应长度 的新字符串
判断
  • 所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。
startswith()
  • 检查字符串是否是以指定子串开头,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。

  • 语法

string.startswith(substring, begin, end)
endswith()
  • 检查字符串是否是以指定子串结尾,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。

  • 语法

string.endswith(substring, begin, end)
isalpha()
string.isalpha()
  • 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False。
isdigit()
string.isdight()
  • 如果字符串只包含数字则返回 True 否则返回 False。
isalnum()
string.isalnum()
  • 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False。
isspace()
string.isspace()
  • 如果字符串中只包含空白,则返回 True,否则返回 False。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子希卡利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值