第六章  字符串操作

1.字符串处理

  (1)字符串字

spam='Say hi to Bob\' s mother

面量

    python中输入字符串:以单引号开始和结束

   (2)双引号:字符串可以用双引号开始和结束,就像单引号一样,使用双引号的好处就是在字符串中可以使用单引号。但是如果字符串中既需要使用单引号又要用到双引号,那就要用到转义字符了

   单引号转义字符:\'

   双引号专业 \''

   制表符  \t

   换行符  \n

   倒斜杠  \\

在交互环境汇总输入代码:

>>> print('Hello threre! \nHow are you?\n i\' m doing fine')
Hello threre!
How are you?
i' m doing fine

  (3)原始字符串:在字符串开始的引号之前加上r,使其成为原始字符串。原始字符串完全忽略字符串中所有的倒斜杠。如:

>>> print(r'That is Carol\'s cat')
That is Carol\'s cat

  (4)用三重引号的多行字符串

  虽然可以用\n转义字符串将换行放入一个字符串,但是使用多行字符串更容易。

  多行字符串的起止是3个单引号或者3个双引号,3重引号之间的所有引号、制表符或者换行符,都被认为是字符串的一部分

  (5)多行注释

    #字符表示的是这一行的注释,但是多行字符串通常用作多行的注释

  (6)字符串下标和切片

    字符串和列表一样,使用下标和切片。可以将字符串'Hello world!'看成是一个列表,字符串中的每个字符都是一个表项。字符的统计包含了空格和感叹号,所以'Hello world!'有12个字符,H的下标是0,!的下标是11 

>>> spam='Hello world!'
>>> spam[]
'H'
>>> spam[]
'o'
>>> spam[-]
'!'
>>> spam[:]
'Hello'
>>> spam[:]
'world!'

  如果指定一个下标,将得到字符串在这个地方的字符;切片是一个下标和另外一个下标之间的范围,开始下标包含在内,结束下标不包含

  (7)字符串的in和not in 操作符

  用in或者not in 连接两个字符串的表达式,将求值为布尔值为True或者False。在交互式环境中可以表示

>>> 'Hello' in 'Hello World'
True
>>> 'World' in 'Hello'
False
>>> 'World' in 'Hello World'
True
>>> '' in 'spam'
True
>>> 'cats' not in 'cats and dogs'
False

  2.有用的字符串方法

   (1)字符串方法uppper()、lower()、isupper()和islower()

    upper()和lower()字符串方法返回一个新的字符串,其中原来字符串的所有字母都被相应的转换为大写或者小写。在字符串中的非字母部分保持不变。

>>> spam='Hello World!'
>>> spam=spam.upper()
>>> spam
'HELLO WORLD!'
>>> spam=spam.lower()
>>> spam
'hello world!'

   这些方法并没有改变字符串本身,而是返回一个新的字符串。如果要改变原来的字符串,就必须在该字符串上调用upper()或者lower(),然后将这个心字符串赋给保存原来字符串的变量。这就是为什么必须使用spam=spam.upper()才能改变spam中的字符串,而不是spam.upper()

    (2)isX字符串方法

    除了islower()和isupper(),还有几个字符串,他们的名字以is开始的。这些字符串是返回一个布尔值的,描述了一个字符串的特点。

    isalpha()返回True,如果字符串中只包含字母,并且非空;

    isalnum()返回True,如果字符串只包含字母和数字,并且为非空

    isdecimal()返回True,如果字符串只包含数字字符,并且非空

    isspace()返回True,如果字符串只包含空格,制表符和换行,并且非空;

    istitle()返回True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词

    交互式环境中代码如下

'hello world!'
>>> 'hello'.isalpha()
True
>>> 'hello123'.isalpha()
False
>>> 'hello123'.isalnum()
True
>>> 'hello'.isalnum()
True
>>> ''.isdecimal()
True
>>> ' '.isspace()
True
>>> 'This Is Title Case'.istitle()
True
>>> 'This Is Title Case 123'.istitle()
True

  (3)字符串方法startwith()和endwith()

   如果他们所调用的字符串以该方法传入的字符串开始或者结束,startwith()和endwith()方法就会返回True

>>> 'Hello world!'.startwith('Hello')
Traceback (most recent call last):
File "<stdin>", line , in <module>
AttributeError: 'str' object has no attribute 'startwith'
>>> 'Hello world!'.startswith('Hello')
True
>>> 'Hello world!'.endswith('world')
False
>>> 'Hello world!'.endswith('world!')
True

  (4)字符串方法join()和split()

  join()方法在一个字符串上进行调用,参数是一个字符串列表,返回一个字符串,返回的字符串由传入的列表中每个字符串连接而成

  这个地方注意调用join()方法的字符串,被插入到列表参数中的每个字符串的中间

>>> ','.join(['cats','rats','bats'])
'cats,rats,bats'
>>> ' '.join(['My','name','is','Stone'])
'My name is Stone'
>>> 'ABC'.join(['My','name','is','Stone'])
'MyABCnameABCisABCStone'

  注意:join()方法是针对一个字符串而调用的额,并且传入一个列表值;split()方法刚还相反:针对一个字符串进行调用,返回的是一个字符串的列表

 join()方法是针对一个字符串而调用的额,并且传入一个列表值;split()方法刚还相反:针对一个字符串进行调用,返回的是一个字符串的列表

  (5)用rjust()、ljust()和center()方法对齐文本

rjust()和ljust()字符串方法返回调用他们的字符串的填充版本,通过插入空格来对齐文本,这两个方法第一个参数是整数的长度,用于对齐字符串

>>> 'Hello'.rjust()  #希个字符,所以坐标会加上5个空格,希望右对齐,将'Hello'放在一个长度为10的字符串中,‘Hello’有5个空格,得到10个字符的字符串,实现‘Hello’的右对齐
' Hello
>>> 'Hello'.rjust()
' Hello'
>>> 'Hello World'.rjust()
' Hello World'
>>> 'Hello'.ljust()
'Hello '

rjust()和ljust()方法的第二个可选参数将指定一个填充字符串,来取代空格。

>>> 'Hello'.rjust(,'*')
'***************Hello'
>>> 'Hello'.ljust(,'-')
'Hello---------------'

文本居中对齐center()

>>> 'Hello'.center(,'-')
'-------Hello--------'

(6)用strip()、rstrip()和lstrip()删除空白字符

  有时候希望删除字符串左边、右边或者两边的空白字符(空格、制表符和换行符)

  strip()字符串将返回一个新的字符串,它的开头或者末尾都没有空白字符

  lstrip()和rstrip()方法相应的删除左边或者右边你的空白字符

>>> spam='      Hello Wworld'
>>> spam.strip()
'Hello Wworld'
>>> spam
' Hello Wworld'
>>> spam.lstrip()
'Hello Wworld'
>>> spam
' Hello Wworld'
>>> spam.rstrip()
' Hello Wworld'

python学习笔记(4)的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  3. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  4. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  5. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  6. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  7. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  8. Pythoner | 你像从前一样的Python学习笔记

    Pythoner | 你像从前一样的Python学习笔记 Pythoner

  9. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  10. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

随机推荐

  1. UVa 1343 The Rotation Game (状态空间搜索 && IDA*)

    题意:有个#字型的棋盘,2行2列,一共24个格. 如图:每个格子是1或2或3,一共8个1,8个2,8个3. 有A~H一共8种合法操作,比如A代表把A这一列向上移动一个,最上面的格会补到最下面. 求:使 ...

  2. Zookeeper简介及安装(一)

    1 Zookeeper入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景提供的服务包括:统一命名服务 ...

  3. Spotlight_on_windows 安装和监控

    一.下载 1.下载并安装Spotlight_on_windows 2.填写注册码 Authorization Key:295713336449229168750 Site Message:Bergel ...

  4. ElasticSearch的介绍

    1.ELK 1.1 集中式日志系统 日志,对于任何系统来说都是及其重要的组成部分.在计算机系统里面,更是如此.但是由于现在的计算机系统大多比较复杂,很多系统都不是在一个地方,甚至都是跨国界的:即使是在 ...

  5. 关于如何解决TeamViewer限制时间问题

    最近在弄一个项目,我们是乙方,甲方离我们比较远,所以需要用到远程操作软件.也就是TeamViewer. 这个软件一开始运行还行,后来时间用久了,很容易被限制时间.在网上查了大部分资料,都是一些修改MA ...

  6. WebView:是应用程序打开web网页的UI控件前台

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  7. Ajax监测开始执行及结束执行

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  8. 在linux下搭建go环境

    这几天小Jerry开始接触Go语言了,因为小Jerry学个东西必须要从最基础的开始弄懂,不然~她理解不了<hahaha> 所以,今天就来讲最基础,却也很容易让小Jerry这样的菜鸟感到困扰 ...

  9. 1450:【例 3】Knight Moves

    1450:[例 3]Knight Moves  题解 这道题可以用双向宽度搜索优化(总介绍在  BFS ) 给定了起始状态和结束状态,求最少步数,显然是用BFS,为了节省时间,选择双向BFS. 双向B ...

  10. 六、IDEA-SpringBoot项目设置热部署

    啥是热部署!???(不要去查了,,同学) 根据上面的提示,我们已经完成了Spring Boot项目的创建和运行,但是有一个问题就是,每次修改代码之后都需要重新启动调试,代码才能生效,比较麻烦,那有没有 ...