前言
前面提到了Python中的数值型内置数据类型,接下来呢我们就着重介绍一下字符串类型。在Python中字符串是一个有序的字符集合,没有独立的字符数据类型,当字符串长度为1时就可以认为其是字符。Python的内置数据类型str用于字符串处理。str对象的值为字符系列字符串是不可变序列。
一、字符串的外观
1.字符串字面量
顾名思义字符串就是有一串字符所组成的东西 而为了这串东西的安全,要将其放进单引号、双引号、三单引号、三双引号其中之一中。 要一一对应,不可以拿单引号配三引号。【单引号、双引号创造的字符串不可以换行】
'Hello World' "Hello World" '''Hello World''' """Hello World"""
玛丽震场
''' Hello World ******** ************ ####....#. #..###.....##.... ###.......###### ### ### ### ### ........... #...# #...# #...# #...# ##*####### #.#.# #.#.# #.#.# #.#.# ####*******###### #.#.# #.#.# #.#.# #.#.# ...#***.****.*###.... #...# #...# #...# #...# ....**********##..... ### ### ### ### ....**** *****.... #### #### ###### ###### ############################################################## ################################## #...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------# ###########################################------------------# ###############------------------# #..#....#....##..#....#....##..#....#....##################### #..#....#....##################### ########################################## #----------# ############## #----------# #.....#......##.....#......##.....#......# #----------# #.....#......# #----------# ########################################## #----------# ############## #----------# #.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------# ########################################## ############ ############## ############ '''
2.字符串与多行注释
在Python中单行注释使用的是#,对于多行注释可以使用三个双引号,也可以使用三个单引号。
#我是单行注释 ''' 我是一行注释 ''' """ 我也是一行注释 """
3.字符串编码方式
在Python2中支持的是ASCII编码,Python3中使用的是Unicode,支持中文。 内置函数ord()与chr()可以进行编码与字符之间的转换。 例如:
二、字符串对象
1.str
str(object=‘’)#创建空字符串【当然这个object对象可以指向任意对象】
str()返回一个字符串对象通过str()可以将任意对象转换为str对象
如果被转换对象实现了__str__()方法,则转换为指定的str对象,否
则转换为repr(object),repr()是Python另一个内置的函数,该函
数返回一个对象的
更精确的字符串表示形式。
2.str实现原理
str对象是不可变对象,所以使用str方法生成的新的str对象都是一个新的对象。
字符串通常会在常量池中存在,并且一个字符串只有一个这样的机制极大的节
约了空间与时间称为【字符串驻留机制】
代码如下:
a='asd' b='asd' # 两个字符串对象地址相同 print(id(a),id(b))
3.str中的内置方法
①匹配子串
''' 参数对象在初始对象中的位置 ''' p='asdqweasdwr' print('----------------------------------------------------') # 找到打印,找不到抛出异常 # 找出字串第一次出现的位置 # print('asd'.index(p)) print(p.index('asd')) # 找出子串最后一次出现的位置 print(p.rindex('asd')) # 找子串,找不到不抛出异常打印-1 print('asd'.find(p)) print(p.find('asd')) print(p.rfind('asd'))
②字符串的大小写转换
''' 大写转小写,小写转大写,每个单词开头转大写,每段开头转大写 转换函数都是字符串对象的函数 ''' print('----------------------------------------------------') # 小写转大写 print('asd asd qwe'.upper()) # 大写转小写 print('aSd Asd Qwe'.lower()) # 大小写互换 print('AsD SsE qwe'.swapcase()) # 开头转成小写 print('asd asd qwe'.capitalize()) # 每个单词开头转大写 print('asd asd qwe'.title())
③字符串中的内容对齐方法
''' 字符串对齐,只有指定的宽度大于字符串长度才会进行对齐,否则没有效果 ''' print('----------------------------------------------------') # 居中 print('qwe'.center(20,'*')) # 左对齐 print('asd'.ljust(20,'@')) # 右对齐 print('ert'.rjust(20,'$')) # 零填充 print('-8750'.zfill(10))
④拆解字符串
''' 从字符串左边开始劈分,默认以空格为间隔,劈分的结果是一个列表 sep指定分劈的字符,maxsplit指定分劈的次数 ''' print('----------------------------------------------------') # 默认从左开始劈 l='hello234234234sds World kity'.split(sep='2',maxsplit=5) print(l) # 默认从右开始劈 ll='hello234234234sds World kity'.rsplit() print(ll)
⑤判断字符串类型
''' 通过函数判断字符串内含有的字符类型 ''' print('----------------------------------------------------') # 判断字符串是不是合法的标识符 print('asdqwew.,.123'.isidentifier()) # 判断字符串是否全部由空白字符组成(回车、换行、水平制表符) print('\n\t'.isspace()) #判断字符串是否全部由字母组成 print('asdqwewqxas'.isalpha()) # 判断字符串是否全部由十进制数字组成 print('hello234234234sds World kity'.isdecimal()) # 判断字符串是否全由数字组成 print('hello234234234sds World kity'.isnumeric()) # 判断字符串是否全由字母和数字组成 print('hello234234234sdsWorldkit'.isalnum())
⑥字符串的替代与合并
''' 字符串的费空间拼接,以及字符串的不费空间拼接 ''' print('----------------------------------------------------') # 字符串子串的替换 # 字符串的替换,替换后原来的字符串不发生变化,返回新产生的字符串 # 参数依次是被替换的子串,新的子串,以及最大替换次数 print('asd,asdqweasdkasdjklnlhihasdnjasd'.replace('asd','qwe',2)) print() # 字符串的拼接 # 费空间(产生字符串碎片) a='qwe' a=a+'asd' # 节约空间(不产生字符串碎片) q='qwe' q.join('asd') print('---------------------------------')
⑦字符串的格式化
''' 有两种方式一种是占位符,另一种是花括号 ''' name='小朱佩奇' age=20 print('-------------------------------') # 字符串格式化 print('我叫%s,今年%d岁了' %(name,age)) print('我叫{0},今年{1}岁了'.format(name,age)) # 小数格式化 # 一共十位,小数三位算上小数点 print('%10.3f' %3.14159265) # 一共10位,数字占3位 print('{0:10.3}'.format(3.14159265))
⑧字符串编码
sql='为人民服务' # GBK中中文字符占有两位 print(sql.encode('GBK')) # UTF-8中中文字符占有3位 print(sql.encode('UTF-8')) # 字符串转为字节码 # 编码 by1=b'hello' by2='hello'.encode() # 解码 print(str(b'hello')) print(by2.decode())
4.字符串切片
代码如下
''' 字符串切片后会产生新的字符串 ''' print('--------------------------------') a='Hello World' print(a[3:]) print(a[:5]) print(a[1:8:2]) print(a[:-6]) print(a[-6:])
结果
总结
上面就是今日分享的关于Python中字符串对象的所有内容啦。在Python中字符串语法简单但是方法的作用十分的复杂并且实用,由于东西较多想要完全掌握还是比较难滴。还望我们多多努力啦。