Python字符串

一、首先我们得明白为什么要学习字符串?

字符串在编程语言中一直占据着非常重要的地位,就相当于人们说话一样,人想要把自己的意思表达出去就需要语言,而在Python中字符串就是理解为说话时的语言一样重要。这时候就会有人说那可以拿整型或者浮点型来表达呀?我的回答是,是可以,但是如果人们说话的时候只有冰冷的数字的话,好像就缺少了一点语言所带来的心灵上的美感了,就比如说我爱你,用夏目漱石的话说是今晚的月色真美呀!显得委婉而美感!

不论是在什么编程语言上字符串都是不可缺的一大重要元素。所以学习编程语言的话,不学字符串反而显得美好和灵活!!!

二、什么是字符串?

字符串顾名思义就是字母、数字和符号构成的一串文本数据类型。和上一篇博文说的容器一样也是一种容器,一种Python编程语言不可或缺的数据类型。

三、创建

那问题来了,这么厉害的字符串我们应该怎么创建呢?

方法很简单,一般字符串的创建有四种方法,分别是:英文的三引号 """、英文的双引号 "、英文的单引号 'str() 创建。

字符串名 = ‘元素1, 元素2, 元素3, …’
字符串名 = “元素1, 元素2, 元素3, …”
字符串名 = “”“元素1, 元素2, 元素3, …”"" #注意这个方法定义的字符串打印的时候是原来格式打印
字符串名 = str((元素1, 元素2, 元素3, …))

代码

str_1 = '元素1, 元素2, 元素3, ...'
str_2 = "元素1, 元素2, 元素3, ..."
str_3 = """
元素1, 
元素2, 
元素3, ...
"""
str_4 = str() 
str_5 = str("元素1, 元素2, 元素3")
print(str_1)	
print(type(str_1))
print(str_2)
print(type(str_2))
print(str_3)	
print(type(str_3))
print(str_4)	
print(type(str_4))
print(str_5)	
print(type(str_5))

显示结果
在这里插入图片描述
注意:尽量不要用str作为变量名,因为当str变成变量名的时候,str()方法将不能使用

四、访问字符串

厉害归厉害,得可以使用或者显示吧!没有反馈的东西好像没什么说服力,那么首先想要访问字符串,只需要输出字符串的字符串名就可以了。

访问字符串中的元素一般通过下标访问,和列表一样,因为本质就是序列,所以很多情况都差不多。

字符串名[下标]

代码

str_1 = "元素1, 元素2, 元素3, ..."
print(str_1)
print(str_1[2])

显示结果
在这里插入图片描述

四、方法

字符串的厉害之处在于有许多内置的方法,我们可以通过dir()这一全局函数知道字符串的所有内置方法。

内置方法:

['__add__', '__class__', '__contains__', '__delattr__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__','__getnewargs__', '__gt__', '__hash__','__init__',
'__init_subclass__', '__iter__', '__le__','__len__', '__lt__',
'__mod__', '__mul__', '__ne__','__new__','__reduce__',
'__reduce_ex__','__repr__', '__rmod__', '__rmul__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__','capitalize',
'casefold', 'center', 'count', 'encode', 'endswith',
'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum',
'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier',
'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle',
'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans',
'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition',
'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip',
'swapcase', 'title', 'translate', 'upper', 'zfill']

这里我们就不一一演示了,选几个比较常用的方法来分析就行!

['capitalize', 'center', 'count', 'encode', 'endswith', 'startswith',
 'find', 'rfind', 'index', 'rindex', 'format', 'join', 'strip',
 'rstrip', 'lower', 'upper', 'title', 'split', 'rsplit', 'replace',
 'istitle', 'isspace', 'islower', 'isupper', 'isalnum', 'isalpha',
 'isdigit']

1.capitalize方法

capitalize()方法是将字符串的首字母大小。

代码

str_1 = "this is python!"
print(str_1.capitalize())

显示结果
在这里插入图片描述

2.center方法

center(width, fillchar)是返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

代码

str_1 = "this is python!"
print(str_1.center(50, "#"))

显示结果
在这里插入图片描述

3.count方法

count(str, beg= 0,end=len(string))是返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数。

代码

str_1 = "this is python!"
print(str_1.count("s", 4, 10))

显示结果
在这里插入图片描述

4.encode方法

encode(encoding='UTF-8',errors='strict')是该方法就可以将字符串转换为字节,如果出错抛出异常。

建议进行编码转换的时候统一使用utf-8,与它对应的是字节的decode(解码)

注意:编码和解码一定要使用同一个标准!!!

代码

str_1 = "this is python!"
print(str_1.encode("utf-8"))

显示结果
在这里插入图片描述

5.endswith方法

endswith(suffix, beg=0, end=len(string))是检查字符串是否以指定子字符串 suffix结束,是,则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

代码

str_1 = "this is python!"
print(str_1.endswith("is", 2, 10))

显示结果
在这里插入图片描述

6.startswith方法

startswith(substr, beg=0,end=len(string))是检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

代码

str_1 = "this is python!"
print(str_1.startswith("th", 0, 10))

显示结果
在这里插入图片描述

7.find方法

find(str, beg=0, end=len(string))是检测 str 是否包含在字符串中,并返回str第一次出现的位置,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1。

代码

str_1 = "this is python!"
print(str_1.find("is", 0, 10))

显示结果
在这里插入图片描述

8.rfind方法

rfind(str, beg=0,end=len(string))是类似于 find()函数,不过是显示最后一次出现的位置。

代码

str_1 = "this is python!"
print(str_1.rfind("py"))

显示结果
在这里插入图片描述

9.index方法

index(str, beg=0, end=len(string))是跟find()方法一样,只不过如果str不在字符串中会报一个异常。

代码

str_1 = "this is python!"
print(str_1.index("s"))

显示结果
在这里插入图片描述

10.rindex方法

rindex( str, beg=0, end=len(string))是类似于 index(),不过是显示最后一次出现的位置。

代码

str_1 = "this is python!"
print(str_1.rindex("s"))

显示结果
在这里插入图片描述

11.format方法

format( *args, **kwargs)方法是python3推出新的一种格式化字符串的方式,就是转换格式的。这个方法使得python语言的字符串输出格式更灵活。

这里有一篇文章是详细介绍字符串格式及format方法的:链接在这里

代码

print("this {} python!".format("is"))

显示结果
在这里插入图片描述

12.join方法

join(seq)是以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串。

代码

str_1 = " ! "
print(str_1.join("cccc"))

显示结果
在这里插入图片描述

13.split方法

split(str="", num=string.count(str))是以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串。

代码

str_1 = "this is python!"
print(str_1.split("i", 1))

显示结果
在这里插入图片描述

14.rsplit方法

rsplit(str="", num=string.count(str))是与split方法相反,是用右边开始截取。

代码

str_1 = "this is python!"
print(str_1.rsplit("i", 1))

显示结果
在这里插入图片描述

15.lower方法

lower()是转换字符串中所有大写字符为小写。

代码

str_1 = "This Is Python!"
print(str_1.lower())

显示结果
在这里插入图片描述

16.upper方法

upper()是转换字符串中的小写字母为大写。

代码

str_1 = "This Is Python!"
print(str_1.upper())

显示结果
在这里插入图片描述

17.title方法

title()是返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写。

代码

str_1 = "this is python!"
print(str_1.title())

显示结果
在这里插入图片描述

18.lstrip方法

lstrip()是截掉字符串左边的空格或指定字符。

代码

str_1 = "   this is python!    "
print(str_1.lstrip())

显示结果
在这里插入图片描述

19.rstrip方法

rstrip()是删除字符串字符串末尾的空格。

代码

str_1 = "   this is python!    "
print(str_1.rstrip())

显示结果
在这里插入图片描述

20.strip方法

strip([chars])是在字符串上执行 lstrip()和 rstrip()。

代码

str_1 = "   this is python!    "
print(str_1.strip())

显示结果
在这里插入图片描述

21.replace方法

replace(old, new [, max])是把 将字符串中的old替换成字符串new,如果 max 指定,则替换不超过 max 次。

代码

str_1 = "   this is python!    "
print(str_1.replace("s","i", 1))

显示结果
在这里插入图片描述

22.istitle方法

istitle()是判断字符串是否标题化的,是,则返回 True,否则返回 False。

代码

str_1 = "   this is python!    "
print(str_1.istitle())

显示结果
在这里插入图片描述

23.isspace方法

isspace()是如果字符串中只包含空白,则返回 True,否则返回 False。

代码

str_1 = "   this is python!    "
print(str_1.isspace())

显示结果
在这里插入图片描述

24.islower

islower()是如果字符串中包含至少一个区分大小写的字符,并且所有这些区分大小写的字符都是小写,则返回 True,否则返回 False。

代码

str_1 = "   this is python!    "
print(str_1.islower())

显示结果
在这里插入图片描述

25.isupper方法

isupper()是如果字符串中包含至少一个区分大小写的字符,并且所有这些区分大小写的字符都是大写,则返回 True,否则返回 False。

代码

str_1 = "   this is python!    "
print(str_1.isupper())

显示结果
在这里插入图片描述

26.isalnum方法

isalnum()是如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False。

代码

str_1 = "   this is python!    "
print(str_1.isalnum())

显示结果
在这里插入图片描述

27.isalpha方法

isalpha()是如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False。

代码

str_1 = "this is python!"
print(str_1.isalpha())

显示结果
在这里插入图片描述

28.isdigit方法

isdigit()是如果字符串只包含数字则返回 True 否则返回 False。
代码

str_1 = "123456"
print(str_1.isdigit())

显示结果
在这里插入图片描述

五、切片操作

为什么要学习切片操作呢?这也是字符串的一个比较重要的特点。切片是Python为大家提供用来切割、分割、截取容器的方式,可以从某个对象中抽取部分值的情况,同时列表和元组也可以进行切片操作。

注意:切片是一个前闭后开的区间

格式

字符串[start: end: step] #start参数表示切片的开头,end参数表示切片的结尾,step参数表示切片的间隔

代码

str_1 = "This is Python!"
print(str_1[5])
print(str_1[:10])
print(str_1[1:15])
print(str_1[1:15:3])
print(str_1[-8:-1])

显示结果
在这里插入图片描述
这里推荐一篇关于切片操作的文章:链接在这里

六、其他

在字符串起那面通常我们会加入有些字母,比如:ubfr等。

字母作用
u后面字符串以Unicode格式进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码
b表示后面字符串是bytes 类型。
f在字符串内支持大括号内的python 表达式
r去掉\对特殊字符的转义,常用于正则表达式
#例子
print(r"这里不换行\n")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值