python数据类型之字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据类型之字符串相关的知识,希望对你有一定的参考价值。

1、字符串概念

字符串:"abcd1234"

子字符串:"abc"


2、字符编码:ascii unicode utf8

python默认的文件编码是ascii,只能表示键盘上的数字,unicode是一个标准,能表示世界上所有的字符,utf8是Unicode的实现



3、字符串的len方法需注意字符的编码

>>> a = "1234"
>>> len(a)
4
>>> a ="我是中国人" #默认是ascii码,一个中文字符占用3个byte
>>> len(a)
15
>>> a=u"我是中国人" #u表示转换为Unicode码
>>> len(a)
5
>>> a="我是中国人"
>>> g=a.decode(‘utf-8‘) #转换为unicode码
>>> len(g)
5


4、转义符让文本更好处理


要转义的字符前面加个反斜杠

>>> print ‘abcd\‘‘
abcd‘


5、字符串前面的r是什么意思?

>>> print r‘\n‘ #表示反斜杠不要转移
\n



6、访问子字符串,序列的切片


成员有是有序排列的,可以通过下标偏移量访问到它的一个或者向个成员

s[start:end:+1step]

start:表示从哪个位置开始切片

end:表示到哪个为之结束,但是不包括这个位置,不是表示切的个数

+-step:表示步长,+表示从左边向右边切,-表示从右边向左边切

特殊的位置,0表示第一个原始,-1表示最后一个原始

s[:] 表示整个序列本身,s[:-1] 并不是表示整个序列,因为右边是开区间,是取不到的


>>> a = "abcde" #序列的下标从0开始
>>> a[0]
‘a‘
>>> a[1]
‘b‘
>>> a[-1]  #-1 表示序列的最后一个
‘e‘
>>> a[len(a)-1] #用len来最后一个元素
‘e‘
>>> a[0:] #:表示切片
‘abcde‘
>>> a[0:1]
‘a‘
>>> a[0:2]
‘ab‘
>>> a[0:2:1]
‘ab‘
>>> a[0:2:2]
‘a‘
>>> a[0:4:2]
‘ac‘
>>> a[1:3]
‘bc‘
>>> a[:-1] 
‘abcd‘




7.替换字符串

>>> a="abc";  #字符串一旦赋值,就不可改变,字符串是不能修改的,而是另外新建立了对象
>>> d=a.replace(‘a‘,‘cccc‘) #S.replace(old, new[, count]) -> string
>>> print a
abc
>>> print d
ccccbc
>>> id(a)
47131100681104
>>> id(d)
47131159552096



8、查找子字符串

>>> a ="this is wolrd"
>>> a.find("world")    # S.find(sub [,start [,end]]) -> int
-1                     #返回-1就是没有找到
>>> a.find("wolrd")    #返回的单词的起始位置index
8
>>> a[8:]
‘wolrd‘
>>> a="world,that,world,this,world is world"
>>> a.find("world")
0
>>> a.find("world",11) 
11




9、字符串拼接

9.1、用+,超级丑陋之千万别用,会生成多个字符串

>>> a ="abcdef"
>>> b="cde"
>>> print a+b
abcdefcde



9.2、可选方案之字符串模板

>>> s="my name is %s lilei" % "hamemei"
>>> print s
my name is hamemei lilei


%s 字符串占位符

%d 数字的占位符

>>> s= "my name is %s , my year is  %d"  % ("hameimei",20)
>>> print s
my name is hameimei , my year is  20
a = "this is  %s  %s" %  ("my","apple") # % 是一一对应的关系
a = "this is  {1}  {0}" .format ("my","apple") #位置从0开始
a = "this is  {whose}  {fruit}" .format (whose="my",fruite="apple")
a = "this is  %(whose)s  %(fruit)s " % {‘whose‘:‘my‘,‘fruit‘:‘apple‘} #这种方式要多写很多符合,较上面.format方法麻烦些


9.3、优秀的拼接方案,join

>>> a = "a"
>>> b = "abcd"
>>> c="2134556"
>>> "".join([a,b,c]) #join里面跟的是一个list
‘aabcd2134556‘
>>> ",".join([a,b,c])
‘a,abcd,2134556‘





本文出自 “小鱼的博客” 博客,谢绝转载!

以上是关于python数据类型之字符串的主要内容,如果未能解决你的问题,请参考以下文章

《Python学习之路 -- Python基础之切片》

GraphQL 响应类型/片段之争

python之模块和包

python基本数据类型之字符串

Python生涯之数据类型(字符串)

python基本数据类型之字符串