一、字符串(str)

1.字符串在python2版本中为一个byte序列,在python3版本中为一个unicode序列,并且字符串是不可变的。

sr = str()

sr = 'string'

sr = str()
print(type(sr))
#结果:<class 'str'>

2.字符串也支持切片操作,所以与列表和元组一样。

sr = 'hello world'
print(sr[2:])
#结果:llo world

3.在python3版本中可以直接操作汉字,因为是一个unicode序列

sr = '你好 世界'
print(sr[0])
#结果:你

4.字符串的属性和方法

  • capitalize()方法将字符串的首字母大写。
  • title()方法是将所有单词的首字母大写。
  • lower()方法是将所有字母变成小写。
  • upper()方法是将所在字母变成大写。
  • swapcase()方法是将原来小写字母变成大写,原来大写字母变成小写。
  • center()方法按照指定的宽度居中字符串,默认用空格填充,也可以指定填充字符。
  • ljust()方法字符串左对齐,不足指定宽度时用指定字符填充(默认是空格填充)
sr = 'hello birld'
print(sr.ljust(80,'#')) #结果:hello birld#####################################################################
  • rjust()方法是将字符串右对齐,不足指定宽度时用指定字符填充(默认是空格填充)
  • zfill()方法指定字符串的宽度,不足时前导用0填充。
sr = 'hello birld'
print(sr.zfill(20)) #结果:000000000hello birld
  • strip()方法是删除首尾指定的字符(默认是空白字符)。
sr = 'ahello birlda'
print(sr.strip('a')) #结果:hello birld
  • lstrip()方法是删除左边指定的字符(默认是空白字符)。
  • rstrip()方法是删除右边指定的字符(默认是空白字符)。
  • startswith()方法指是否以指定字符串开始,返回一个bool值。也可以指定查找的索引范围。
sr = 'hello birlda'
print(sr.startswith('he')) #结果:True
  • endswith()方法指是否以指定字符串结尾,返回一个bool值。
  • count()方法指查找指定的子字符串在字符串的出现多少次。
  • find()方法指最近出现的索引位置。在字符串中查找不到时,返回-1
  • rfind()方法指从右向左最近出现的索引位置。
  • index()方法指最近出现的索引位置。在字符串中查找不到时,抛出一个ValueError异常。
  • replace()方法指用新子字符串替换指定的子字符串。也可以指定要替换的次数。
  • join()方法把一个可迭代对象进行连接。
lt = ['how', 'are', 'you']
print(' '.join(lt)) #结果:how are you
#python中可以用加号连接两个字符串,但这种效率很低,因为会生成一个新的字符串,所以不建议加号操作。
  • 字符串格式化

字符串在python中有两种格式化方式:

1.print

  1. %d、%i表示整数
  2. %u表示无符号整数
  3. %o表示八进制
  4. %x、%X表示十六进制
  5. %e、%E表示科学计数法
  6. %f、%F表示浮点数
  7. %c表示单个字符
  8. %s表示一个字符串,也可以是一个类的__str__方法
  9. %r表示一个字符串,也可以是一个类的__repr__方法
  10. %a转换为一个ASCII值
用元组形式格式化
print('How are you %s' %('orna',)) #当反复出现,或者格式化的内容很多时,可以用字典形式格式化
print('How are you %(name)s' %{'name':'orna'})
print('%(name)s say:How are you %(name1)s' %{'name':'orna','name1':'luscy'})

  

class A:
def __str__(self):
return 'str' def __repr__(self):
return 'repr' a = A() print('%r' % (a,))
#结果为:repr print('%s' % (a,)) #结果为:str

2.format

format方法接受多个可变位置参数和多个可变关键字参数。推荐使用此方法。

print('I am {}'.format('orna'))
#结果:I am orna
print('I am {0},age {1}'.format('orna',32))
#结果:I am orna,age 32
print('I am {1},age {0}'.format('orna',32))
#结果:I am 32,age orna
print('I am {name},age {age}'.format(name='orna',age=32))
#结果:I am orna,age 32

  

class A:
def __init__(self):
self.x = 1
self.y = 2 a = A() print('{0.x} {0.y}'.format(a))
#结果:1 2
print('{ob.x} {ob.y}'.format(ob=a))
#结果:1 2
li = [1, 2, 3]
print('{0[2]}'.format(li))
#结果:3
  • 字符串的分割

split()可以指定以具体内容进行分割,默认是用空格分割。并且可以指定一个整数来决定最多分割多少次。

sr = 'how are you'
print(sr.split()) #结果:['how', 'are', 'you']

rsplit()表示从右向左分割,和split功能一样并且有相同的参数。

splitlines()表示以行为单元进行分割,可以指定是否保留换行符splitlines(True)。

sr = '''how are you?
I am fine,
and you?
''' print(sr.splitlines()) #结果:['how are you?', 'I am fine,', 'and you?']

partition()表示返回一个三元组。

sr = 'how are you'
print(sr.partition(' ')) #结果:('how', ' ', 'are you')

rpartition()表示从右向左,功能与partition一样返回一个三元组。  

sr = 'how are you'
print(sr.rpartition(' ')) #结果:('how are', ' ', 'you')

二、bytes

python2中不区分bytes和string,只有在python3中在区分bytes和string。

bytes和string的区别在于bytes是byte的序列,而string是unicode的序列。

b = b'hello world' 

c ='你好世界!'.encode()   #也可能指定编码参数,如:encode('GBK')

  因此,string使用encode()方法转化为bytes,bytes通过decode转化为string。也可能指定编码参数,如:decode('GBK')

三、bytearrary

bytearray和bytes不一样的地方在于,bytearray是可变的。

sr = '你好 世界!'
b = sr.encode()
print(b)
#结果:b'\xe4\xbd\xa0\xe5\xa5\xbd \xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'

  

sr = '你好 世界!'
b = bytearray(sr.encode())
#结果:b'\xe4\xbd\xa0\xe5\xa5\xbd \xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81' print(b.decode())

四、作业

1.对两个数字列表进行合并,并按升序排列。

l1 = [1, 2, 3, 4]
l2 = [2, 3, 7, 9] l1.extend(l2)
l3 = l1.sort()
print(l1) #结果:[1, 2, 2, 3, 3, 4, 7, 9]

2.对一个字符串进行反转。

sr = 'I love python!'

sr1 = sr[::-1]
print(sr1) #结果:!nohtyp evol I

内置数据结构(str)的更多相关文章

  1. Python第五章-内置数据结构05-集合

    Python内置数据结构 五.集合(set) python 还提供了另外一种数据类型:set. set用于包含一组无序的不重复对象.所以set中的元素有点像dict的key.这是set与 list的最 ...

  2. Python第五章-内置数据结构01-字符串

    Python 内置的数据结构 ​ 到目前为止,我们如果想保存一些数据,只能通过变量.但是如果遇到较多的数据要保存,这个时候时候用变量就变的不太现实. ​ 我们需要能够保存大量数据的类似变量的东东,这种 ...

  3. Python的内置数据结构

    Python内置数据结构一共有6类: 数字 字符串 列表 元组 字典 文件 一.数字 数字类型就没什么好说的了,大家自行理解 二.字符串 1.字符串的特性(重要): 序列化特性:字符串具有一个很重要的 ...

  4. 【Redis源代码剖析】 - Redis内置数据结构之压缩字典zipmap

    原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51111230 今天为大家带来Redis中zipmap数据结构的分析,该结构定义在 ...

  5. Python的4个内置数据结构

    Python提供了4个内置数据结构(内置指可以直接使用,无需先导入),可以保存任何对象集合,分别是列表.元组.字典和集合. 一.列表有序的可变对象集合. 1.列表的创建例子 list1 = []lis ...

  6. python面试总结4(算法与内置数据结构)

    算法与内置数据结构 常用算法和数据结构 sorted dict/list/set/tuple 分析时间/空间复杂度 实现常见数据结构和算法 数据结构/算法 语言内置 内置库 线性结构 list(列表) ...

  7. python的四种内置数据结构

    对于每种编程语言一般都会规定一些容器来保存某些数据,就像java的集合和数组一样python也同样有这样的结构 而对于python他有四个这样的内置容器来存储数据,他们都是python语言的一部分可以 ...

  8. Python内置数据结构之字符串str

    1. 数据结构回顾 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但是字符串是不可变序列,因此所有的元素赋值和切片赋值都是非法的. >>> ...

  9. Python内置数据结构--列表

    本节内容: 列表 元组 字符串 集合 字典 本节先介绍列表. 一.列表 一种容器类型.列表可以包含任何种类的对象,比如说数字.子串.嵌套其他列表.嵌套元组. 任意对象的有序集合,通过索引访问其中的元素 ...

随机推荐

  1. <思考的技术>简记

    1.查看资料及背景,将导出的结论.主张列成一张表:2.把表上的结论.主张根据主题的类似性作分类:3.将同一类型的结论.主张按顺序区分:这个时候,把有因果关系的主张或结论分别放好,原因放在下面,结果放在 ...

  2. Head First Python学习笔记3——持久存储

    经过上几章的学习,完成如下任务:读取一个文本文件里的内容,将每一行的内容按“:”分割成两部分,根据分割出第一项判断并分别放入两个列表里,去除首尾空白,在屏幕上打印. # 两个列表用于存储数据man=[ ...

  3. Sqlserver 还原

    --完整还原 RESTORE DATABASE demoData FROM DISK=N'D:\Backup\demoData.bak'; RESTORE DATABASE { database_na ...

  4. 使用Spring自定义注解实现任务路由的方法

    在Spring mvc的开发中,我们可以通过RequestMapping来配,当前方法用于处理哪一个URL的请求.同样我们现在有一个需求,有一个任务调度器,可以按照不同的任务类型路由到不同的任务执行器 ...

  5. 比较ArrayList和LinkedList的异同

    1.ArrayList是实现了基于动态数组的数据结构,而LinkedList是基于链表的数据结构: 2.对于随机访问get和set,ArrayList要优于LinkedList; 3.对于添加和删除操 ...

  6. [js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法

    环境准备: 全局安装jade: npm install jade -g 初始化项目package.json: npm init --yes 安装完成之后,可以使用 jade --help 查看jade ...

  7. python 字符串居中

    下面的代码可以让字符串居中,左对齐和右对齐,字符串长度设置为50,居中后左右补充空格,右对齐会在左侧补充空格 string1 = "Now I am here." print( s ...

  8. 在php中怎么利用js把参数传递给弹窗

    1.在php页面中经常用到把参数传递给弹窗页面,在弹窗页面中操作 2.两种方式,截图为一种 3.最常见的就是利用hideen隐藏域,点击按钮的时候把要传递的参数值传递给隐藏域,需要的时候在弹窗中获取. ...

  9. 转:Jquery的parent和parents(找到某一特定的祖先元素)

    Jquery的parent和parents(找到某一特定的祖先元素) 关于Jquery的parent和parents parent是指取得一个包含着所有匹配元素的唯一父元素的元素集合.parents则 ...

  10. NodeJs -- express 快速建站

    直接上干货 1.新建一个目录来存放我们即将要做的东西: 2.win+R打开小黑框:进入到我们的目录下: 3.首先我们要全局安装Express框架:**在这一步之前要确保你本机上安装了node:** n ...