Python字符串目录
- 一、首先我们得明白为什么要学习字符串?
- 二、什么是字符串?
- 三、创建
- 四、访问字符串
- 四、方法
- 1.capitalize方法
- 2.center方法
- 3.count方法
- 4.encode方法
- 5.endswith方法
- 6.startswith方法
- 7.find方法
- 8.rfind方法
- 9.index方法
- 10.rindex方法
- 11.format方法
- 12.join方法
- 13.split方法
- 14.rsplit方法
- 15.lower方法
- 16.upper方法
- 17.title方法
- 18.lstrip方法
- 19.rstrip方法
- 20.strip方法
- 21.replace方法
- 22.istitle方法
- 23.isspace方法
- 24.islower
- 25.isupper方法
- 26.isalnum方法
- 27.isalpha方法
- 28.isdigit方法
- 五、切片操作
- 六、其他
一、首先我们得明白为什么要学习字符串?
字符串在编程语言中一直占据着非常重要的地位,就相当于人们说话一样,人想要把自己的意思表达出去就需要语言,而在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])
显示结果
这里推荐一篇关于切片操作的文章:链接在这里
六、其他
在字符串起那面通常我们会加入有些字母,比如:u
,b
,f
,r
等。
字母 | 作用 |
---|---|
u | 后面字符串以Unicode 格式进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码 |
b | 表示后面字符串是bytes 类型。 |
f | 在字符串内支持大括号内的python 表达式 |
r | 去掉\ 对特殊字符的转义,常用于正则表达式 |
#例子
print(r"这里不换行\n")