跟老齐学Python之玩转字符串(2)更新篇


Posted in Python onSeptember 28, 2014

上一章中已经讲到连接两个字符串的一种方法。复习一下:

>>> a= 'py'

>>> b= 'thon'

>>> a+b

'python'

既然这是一种方法,言外之意,还有另外一种方法。

连接字符串的方法2

在说方法2之前,先说明一下什么是占位符,此前在讲解变量(参数)的时候,提到了占位符,这里对占位符做一个比较严格的定义:

来自百度百科的定义:

顾名思义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号。
根据这个定义,在python里面规定了一些占位符,通过这些占位符来说明那个位置应该填写什么类型的东西,这里暂且了解两个占位符:%d——表示那个位置是整数,%s——表示那个位置应该是字符串。下面看一个具体实例:

>>> print "one is %d"%1

one is 1

要求打印(print)的内容中,有一个%d占位符,就是说那个位置应该放一个整数。在第二个%后面,跟着的就是那个位置应该放的东西。这里是一个整数1。我们做下面的操作,就可以更清楚了解了:

>>> a=1

>>> type(a)

<type 'int'>    #a是整数

>>> b="1"

>>> type(b)

<type 'str'>    #b是字符串

>>> print "one is %d"%a

one is 1

>>> print "one is %d"%b     #报错了,这个占位符的位置应该放整数,不应该放字符串。

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  TypeError: %d format: a number is required, not str

同样道理,%s对应的位置应该放字符串,但是,如果放了整数,也可以。只不过是已经转为字符串对待了。但是不赞成这么做。在将来,如果使用mysql(一种数据库)的时候,会要求都用%s做为占位符,这是后话,听听有这么回事即可。

>>> print "one is %s"%b

one is 1

>>> print "one is %s"%a     #字符串是包容的

one is 1

好了。??掳胩欤?嘉环?遣皇抢斫饬四兀肯旅嫖颐蔷陀谜嘉环?戳?幼址??J遣皇呛苡幸馑迹?/p>

>>> a = "py"

>>> b = "thon"

>>> print "%s%s"%(a,b)  #注

python

注:仔细观察,如果两个占位符,要向这两个位置放东西,代表的东西要写在一个圆括号内,并且中间用逗号(半角)隔开。

字符串复制

有一个变量,连接某个字符串,也想让另外一个变量,也连接这个字符串。一种方法是把字符串再写一边,这种方法有点笨拙,对于短的到无所谓了。但是长的就麻烦了。这里有一种字符串复制的方法:

>>> a = "My name is LaoQi. I like python and can teach you to learn it."

>>> print a

My name is LaoQi. I like python and can teach you to learn it.

>>> b = a

>>> print b

My name is LaoQi. I like python and can teach you to learn it.

>>> print a

My name is LaoQi. I like python and can teach you to learn it.

复制非常简单,类似与赋值一样。可以理解为那个字符串本来跟a连接着,通过b=a,a从自己手里分处一股绳子给了b,这样两者都可以指向那个字符串了。

字符串长度

要向知道一个字符串有多少个字符,一种方法是从头开始,盯着屏幕数一数。哦,这不是计算机在干活,是键客在干活。键客,不是剑客。剑客是以剑为武器的侠客;而键客是以键盘为武器的侠客。当然,还有贱客,那是贱人的最高境界,贱到大侠的程度,比如岳不群之流。

键客这样来数字符串长度:

>>> a="hello"

>>> len(a)

5

使用的是一个函数len(object)。得到的结果就是该字符串长度。

>>> m = len(a)  #把结果返回后赋值给一个变量

>>> m

5

>>> type(m)     #这个返回值(变量)是一个整数型

<type 'int'>

字符大小写的转换

对于英文,有时候要用到大小写转换。最有名驼峰命名,里面就有一些大写和小写的参合。如果有兴趣,可以来这里看自动将字符串转化为驼峰命名形式的方法。

在python中有下面一堆内建函数,用来实现各种类型的大小写转化

S.upper() #S中的字母大写
S.lower() #S中的字母小写
S.capitalize() #首字母大写
S.istitle() #是否单词首字母大写的,且其它为小写,注网友白羽毛指出,这里表述不准确。非常感谢他。为了让看官对这些大小写问题有更深刻理解,我从新写下面的例子,请看官审查。再次感谢白羽毛。
S.isupper() #S中的字母是否全是大写
S.islower() #S中的字母是否全是小写
看例子:

>>> a = "qiwsir,python" 

>>> a.upper()       #将小写字母完全变成大写字母

'QIWSIR,PYTHON'

>>> a               #原数据对象并没有改变

'qiwsir,python'

>>> b = a.upper()

>>> b

'QIWSIR,PYTHON'

>>> c = b.lower()   #将所有的小写字母编程大写字母

>>> c

'qiwsir,python'
>>> a

'qiwsir,python'

>>> a.capitalize()  #把字符串的第一个字母变成大写

'Qiwsir,python'

>>> a               #原数据对象没有改变

'qiwsir,python'

>>> b = a.capitalize() #新建立了一个

>>> b

'Qiwsir,python'
>>> a = "qiwsir,github"    #这里的问题就是网友白羽毛指出的,非常感谢他。

>>> a.istitle()

False

>>> a = "QIWSIR"        #当全是大写的时候,返回False

>>> a.istitle()

False

>>> a = "qIWSIR"

>>> a.istitle()

False

>>> a = "Qiwsir,github"  #如果这样,也返回False

>>> a.istitle()

False

>>> a = "Qiwsir"        #这样是True

>>> a.istitle()

True

>>> a = 'Qiwsir,Github' #这样也是True

>>> a.istitle()

True
>>> a = "Qiwsir"

>>> a.isupper()

False

>>> a.upper().isupper()

True

>>> a.islower()

False

>>> a.lower().islower()

True

顺着白羽毛网友指出的,再探究一下,可以这么做:

>>> a = "This is a Book"

>>> a.istitle()

False

>>> b = a.title()     #这样就把所有单词的第一个字母转化为大写

>>> b

'This Is A Book'

>>> a.istitle()       #判断每个单词的第一个字母是否为大写

False

字符串问题,看来本讲还不能结束。下一讲继续。有看官可能要问了,上面这些在实战中怎么用?我正想为你的,请键客设计一种实战情景,能不能用上所学。

Python 相关文章推荐
Python中的进程分支fork和exec详解
Apr 11 Python
python3.5使用tkinter制作记事本
Jun 20 Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 Python
解析Python的缩进规则的使用
Jan 16 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
Django项目后台不挂断运行的方法
Aug 31 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 Python
跟老齐学Python之不要红头文件(2)
Sep 28 #Python
跟老齐学Python之不要红头文件(1)
Sep 28 #Python
python自动化测试之连接几组测试包实例
Sep 28 #Python
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 #Python
跟老齐学Python之有容乃大的list(4)
Sep 28 #Python
跟老齐学Python之做一个小游戏
Sep 28 #Python
跟老齐学Python之坑爹的字符编码
Sep 28 #Python
You might like
PHP的简易冒泡法代码分享
2012/08/28 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
Yii清理缓存的方法
2016/01/06 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
JS中数组重排序方法
2016/11/11 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Python 文件管理实例详解
2015/11/10 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
计算机应用与科学个人的自我评价
2013/11/15 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
项目经理聘任书
2014/03/29 职场文书
手术室护士个人总结
2015/02/13 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技