Python数据类型——字符串

    概论

  字符串顾名思义就是一串字符,由于Python中没有“字符”这种数据类型,所以单个的字符也依然是字符串类型的。字符串可以包含一切数据,无论是能从键盘上找到的,还是你根本都不认识的。与数一样,字符串也是值。字符串是不可变的类型。字符串用""双引号或者''单引号扩起,你可能会问,这有什么差别吗?其实没有任何差别。使用单双引号的输出结果完全相同。

  既然如此,为何同时支持单引号和双引号呢?因为你可能遇到如下情况:

  这里就体现出单双引号的作用,如果只使用单引号或者双引号,在执行如上其中一种情况的时候,解释器就会报错。

  除了单引号和双引号,三引号也是一个非常好用的定义方法,它的用法和三引号注释是相同的,也是可以支持将多行扩起,单引号和双引号只能定义在同一行内。

    str()方法

  字符串既是一个类型也是一个方法,str()就是一个工厂函数,它会把括号内的值转化成字符串,但是这个转化过程也不是什么都无脑转化,它遵循了字符串的一些方法。比如str()会自动识别字符串中的单引号或者双引号,以作为字符串结束的标志,而当str()找到换行符和制表符之后,也不会按照原样将它们输出。

比如说你想让解释器输出s\nb,小牛逼,然后str()识别到"\n"就作为换行符输出了,结果就变成了傻逼。。。一般情况下把\n作为换行符代替回车键是很方便的,但是当你真的想让解释器打出'\n'的时候就要用到特殊的方法了。

    反斜杠(\)

  反斜杠是让斜杠后面的一个可以让str()启动神秘功能的特殊字符失去特殊作用,变成一般的字符。它遵循从左到右的运算顺序。比如说我在"\n"前面加上反斜杠,"\n"也就不作为换行符被str()执行换行操作了,它会变成一般字符"\n"输出。

  值得注意的是,反斜杠出现在特殊字符前面会隐形,而出现在一般字符的前面会作为普通的字符输出。

  想要输出两个\的话,因为\本身也是特殊字符,所以"\\"的前面一个反斜杠会把后面的反斜杠作为特殊符号转义成一般符号,它自己则在输出的时候隐形了,如果想要输出两个反斜杠的话,要打三个或者四个反斜杠。

  一般使用反斜杠让制表符、换行符、反斜杠自己、单双引号的魔法失灵,从而作为普通字符来输出它们。

    原始字符串

  原始字符串就是告诉计算机,一切开始简单粗暴,我输入什么,就给我输出什么,但是要注意不要以反斜杠结尾,因为反斜杠会让最后一个引号失去标记结尾的作用,导致str()无法识别结尾,以至于报错。

   字符串内置方法

1.按索引取值

>>> s='string'
>>> s[0]
's'
>>> s[1]
't'
>>> s[-1]
'g'

-1是最后一位,索引支持从后往前取值。

2.切片

>>> s='string'
>>> s[1:3]
'tr'
>>> s[3:1:-1]
'ir'

切片是顾头不顾尾的,也就是取不到结尾索引的位置。永远在结尾索引的前一位就截止了。

切片最后一个参数是步长,可以为正也可以为负。

3.长度len

字符串元素的个数。

4.成员运算in和not in

判断一个子字符串是否存在于大字符串中

5.移除空白strip: 用来去除字符串左右两边的字符,不指定默认去除的是空格

>>> s='   string    '
>>> s.strip()
'string'
>>> s='  ***string***    '
>>> s.strip('*')
'  ***string***    '
# 当指定字符时,则不清楚空格\换行符,只清楚指定的字符。

6.切分split:针对有规律的字符串,按照某种分隔符切成列表

>>> s='a|b|c|d|e|f|g'
>>> s.split('|')
['a', 'b', 'c', 'd', 'e', 'f', 'g']

7.join:列表拼接成字符串

>>> '_'.join(['a', 'b', 'c', 'd', 'e', 'f', 'g'])
'a_b_c_d_e_f_g'

8.lower,upper大小写转化

>>> 'ABC'.lower()
'abc'
>>> 'abc'.upper()
'ABC'

9.startswith,endswith 判定字符串开头和结尾是否是某个子字符串

>>> 'abcaaaaa'.startswith('abc')
True
>>> 'abcaaaaa'.endswith('a')
True

10.format的三种玩法

  1.按位传参

  2.关键字传参

  3.按索引传参

11.replace(old,new)

Return a copy with all occurrences of substring old replaced by new.

12.isdigit等数字判别

isdigit  判定一个字符串是否是纯阿拉伯数字,可判定Unicode和Bytes编码

isdecimal 判定Unicode编码的阿拉伯数字

isnumberic 判定中文、罗马、阿拉伯数字

13.find 输出子字符串在字符串中第一个索引

>>> '123456'.find('56')
4

14.center,ljust,rjust,zfill 填充

15.captalize,swapcase,title

>>> 'abcdef dddddd'.capitalize()  # 句首字母大写
'Abcdef dddddd'
>>> 'abcAef dddddd'.swapcase()  # 大小写反转
'ABCaEF DDDDDD'
>>> 'abcAef dddddd'.title()  #单词首字母大写
'Abcaef Dddddd'

 

转载于:https://www.cnblogs.com/forcee/p/10629568.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值