孤荷凌寒自学python第十天序列之字符串的常用方法
孤荷凌寒自学python第十天序列之字符串的常用方法
(完整学习过程屏幕记录视频地址在文末,手写笔记在文末)
Python的字符串操作方法非常丰富,原生支持字符串的多种操作:
1 查找子字符串
string.find(str,[beg=0],[end=len(string)])
从字符串string中寻找str,可以指定从string的beg位置起开始找,直到string的end位置结束寻找。
参数beg和end是可选参数,如果不指定那么,默认从string的最开头,即index为0的位置开始找,直到string整个字符串都找完。
Str可以是单个字符,也可以是一个字符串。
此方法会返回一个int类型的对象值。表示str这个字符串的第一个字符位于string字符串中的index值。
例:
>>> strLong='孤荷凌寒的QQ号是:578652607'
>>> strShort='QQ'
>>> print(strLong.find(strShort)) #从strLong中寻找strShort,没有指定从strLong的起始index和结束index中去找,则默认寻找strLong的全部字符。
5
#返回值5表示strShort代表的值’QQ’在strLong 的index值的第5位开始。
>>> intTemp=strLong.find(strShort,4) #从strLong中寻找strShort,这一次指定了从strLong的index值为4的字符开始往后寻找,直到最后。
>>> print(intTemp)
5
#返回值仍然是5!!!表示strShort代表的值’QQ’在strLong 的index值的第5位开始。
>>> intTemp=strLong.find(strShort,6) #从strLong中寻找strShort,这一次指定了从strLong的index值为6的字符开始往后寻找,但因为从第6位字符开找是找不到的。
>>> print(intTemp)
-1
#返回值是-1。表示是没有找到的。
>>> intTemp=strLong.find(strShort,2,8) #从strLong中寻找strShort,这一次指定了从strLong的index值为4的字符开始往后寻找,也指定了要一直找到strLong的index值为8的字符处为止。
>>> print(intTemp)
5
#返回值仍然是5!!!表示strShort代表的值’QQ’在strLong 的index值的第5位开始。
2 将列表等对象连接成字符串
connetString.join(obj)
此处的连接成字符串是指将如列表等中的多个元素合并成一个字符串。而不是指将两个字符串连接起来。
connectString指的是连接字符或连接字符串,意思是要用哪个符号来间隔列表中的多个元素,使其作为连接字符将列表中的多个元素合并成一个字符串。
Obj是指如列表等需要合并其中元素为一个完整字符串的对象,可以为多种可以接受的对象。
此方法将返回合并后的字符串对象。
例:
>>> strLst='孤荷凌寒小时候家里很穷。'
>>> lstStr=list(strLst)
>>> print(lstStr)
['孤', '荷', '凌', '寒', '小', '时', '候', '家', '里', '很', '穷', '。']
>>> strConnect="-"
>>> strConnect.join(lstStr) #特别注意这儿的写法,此join方法是由连接字符或连接字符串发出的方法。
'孤-荷-凌-寒-小-时-候-家-里-很-穷-。'
>>> strEnd=strConnect.join(lstStr)
>>> print(strEnd)
孤-荷-凌-寒-小-时-候-家-里-很-穷-。
除了可以将列表的内容合并起来,其它非标准的序列也可以使用join方法。
>>> objA='','我','是','自','学','Python','的','孤','荷','凌','寒',''
>>> strConnect='=='
>>> strResult=strConnect.join(objA)
>>> print(strResult)
==我==是==自==学==Python==的==孤==荷==凌==寒==
3 将字符串的所有字符全部变成小写,只针对英文字符部分。
string.lower()
string是指要进行处理的字符串对象。
此方法并不将改变string对象本身,而是返回一个改变后的新的字符串。
例:
>>> strLs='孤荷凌寒的QQ号码是578652607'
>>> strResult=strLs.lower()
>>> print(strLs)
孤荷凌寒的QQ号码是578652607 #strLs本身的值并没有改变
>>> print(strResult)
孤荷凌寒的qq号码是578652607
4 将字符串的所有字符全部变成大写,只针对英文字符部分。
string.upper()
string是指要进行处理的字符串对象。
此方法并不将改变string对象本身,而是返回一个改变后的新的字符串。
例:
>>> strLs='孤荷凌寒的qq号码是578652607'
>>> strResult=strLs.upper()
>>> print(strLs)
孤荷凌寒的qq号码是578652607 #strLs本身的值并没有改变
>>> print(strResult)
孤荷凌寒的QQ号码是578652607
5 将字符串的所有英文字符进行大小写字母的反转,原来是大写字母的换成小写字母,原来是小写字母的,换成大写字母。
string.swapcase()
string是指要进行处理的字符串对象。
此方法并不将改变string对象本身,而是返回一个改变后的新的字符串。
例:
>>> strLs='孤荷凌寒的qq号码是578652607,这是QQ号码哦。'
>>> strResult=strLs.upper()
>>> print(strLs)
孤荷凌寒的qq号码是578652607,这是QQ号码哦。 #strLs本身的值并没有改变
>>> print(strResult)
孤荷凌寒的QQ号码是578652607,这是qq号码哦。
6 查找并替换字符串中的子字符或子字符串
String.replace(oldkey,newkey[,maxcount])
String是指要进行查找并替换操作的长字符串。
参数oldkey是指要查找的子字符串;
参数newkey是指要将查找到的子字符串替换成的新字符串;
可选参数maxcount是最多替换次数,是指如果在String中找到了多个oldkey,那么最多只替换前面maxcount个oldkey为newkey。
此方法并不改变String的值,而是返回一个新的替换操作完成后的新字符串对象。
例:
>>> strLong='孤荷凌寒小时候家里很穷。孤荷凌寒小时候最大的心愿就是能够考个大学。但家里实在太穷,甚至没有钱上高中,孤荷凌寒后来初中毕业后只好读了中等师范学校。'
>>> strOldKey='孤荷凌寒'
>>> strNewKey='我'
>>> strResult=strLong.replace(strOldKey,strNewKey,2) #本来有三个strOldKey,但只替换前面两个。
>>> print(strLong) #strLong本身的值并没有改变
孤荷凌寒小时候家里很穷。孤荷凌寒小时候最大的心愿就是能够考个大学。但家里实在太穷,甚至没有钱上高中,孤荷凌寒后来初中毕业后只好读了中等师范学校。
>>> print(strResult)
我小时候家里很穷。我小时候最大的心愿就是能够考个大学。但家里实在太穷,甚至没有钱上高中,孤荷凌寒后来初中毕业后只好读了中等师范学校。
7 将字符串按指定的分隔符号或分隔字符串切割开并成为列表。
String.split([strCutCharOrString][,maxcount=string.count(String)])
String是指要被切割的字符串。
可选参数 strCutCharOrString 表示分隔标识字符或字符串,如果 不指定,默认为空格。
可选参数 maxcount 表示最多切割几次,如果不指定,则默认在String中找到多少个strCutCharOrString就切割几次。
本方法返回一个列表对象。
例:
>>> strLong='1997年9月,孤荷凌寒进入中等师范学校学习,中等师范学校在过去是专门培养小学老师的学校,与中专一样,学制三年,可惜当时中等师范学校是不教习英语与计算机的,也没有高深的数学课程。'
>>> strCutChar=','
>>> intCutCount=5 #在strLong中本来有六个strCutChar,即中文逗号有六个,但只在前面五个地方进行切割。
>>> lstResult=strLong.split(strCutChar,intCutCount)
>>> print(lstResult)
['1997年9月', '孤荷凌寒进入中等师范学校学习', '中等师范学校在过去是专门培养小学老师的学校', '与中专一样', '学制三年', '可惜当时中等师范学校是不教习英语与计算机的,也没有高深的数学课程。']
8 删除一个字符串首和尾指定的字符
String.strip([charOrChars])
String是指要被删除首和尾指定字符的字符串。
可选参数charOrChars是指要删除的处于字符串String首和尾的哪个字符或哪些字符。
如果不指定charOrChars参数,则默认删除掉字符串String首和尾的空格字符。
charOrChars参数可以只传入单个字符;
charOrChars参数也可以传入一个字符串,则会将charOrChars参数字符串中的每一个字符都执行一次操作,而不是将charOrChars参数字符串整体执行一次操作。
此方法不对原字符串String的值进行任何修改,而是返回一个新的去除了首尾指定字符后的新字符串对象。
例:
>>> strTemp=' 孤 荷 凌 寒 '
>>> strR=strTemp.strip() #strip方法没有指定可选参数,则默认去除strTemp首尾的空格字符,注意并不会删除strTemp字符串中间的空格
>>> print(strTemp) #strTemp本身的值并没有被修改
孤 荷 凌 寒
>>> print(strR)
孤 荷 凌 寒
>>> print('---' + strTemp + '---') #在前后加上’---’方便看首尾空格是否还存在。 #strTemp本身的值并没有被修改
--- 孤 荷 凌 寒 ---
>>> print('---' + strR + '---') #在前后加上’---’方便看首尾空格是否还存在。
---孤 荷 凌 寒---
>>> strTemp='1234孤1荷2凌3寒4321'
>>> strR2=strTemp.strip('1') #这一次strip方法传入了可选参数‘1’,是一个单个字符,则只会去除strTemp首尾的字符1,而不会删除strTemp字符串中间的字符1
>>> strR3=strTemp.strip('1234') #这一次strip方法传入了可选参数‘1234’,是一个字符串,并不是说将删除strTemp字符串首尾的‘1234’,而是会分别删除strTemp字符串首尾的‘1’,‘2’,‘3’,‘4’,从下面的输出结果中就可以看到,虽然strTemp字符串尾巴的字符串是:’4321’,在此次执行strip方法时也被删除了。
>>> print(strTemp) #strTemp本身的值并没有被修改
1234孤1荷2凌3寒4321
>>> print(strR2)
234孤1荷2凌3寒432
>>> print(strR3)
孤1荷2凌3寒
9 指定一个对照表,将字符串中符合对照表中其中一行任意一个或多个关键字的字符更换成另一行中的关键字字符。
String.translate(table[,deletechars])
String是指要进行字符替换操作的字符串。
参数table是指一张二维字符对照表。
可选参数deletechars,用法不明。
此操作没有对原字符串String的内容作任何修改,
将返回一个替换完成后的新字符串对象。
例:
>>> strRow1='一二三四五六七八九十'
>>> strRow2='壹贰叁肆伍陆柒捌玖拾'
>>> tableTemp=str.maketrans(strRow1,strRow2) #将此表格的两行合并成一张二维对照表
>>> print(tableTemp) #打印时,显示的是对照字符的 编码 对照
{19968: 22777, 20108: 36144, 19977: 21441, 22235: 32902, 20116: 20237, 20845: 38470, 19971: 26578, 20843: 25420, 20061: 29590, 21313: 25342}
>>> strLong='孤荷凌寒的QQ号是五七八六五二六零七'
>>> strR=strLong.translate(tableTemp)
>>> print(strLong) #原字符串strLong的值没有发生变化
孤荷凌寒的QQ号是五七八六五二六零七
>>> print(strR)
孤荷凌寒的QQ号是伍柒捌陆伍贰陆零柒
——————————
今天整理的学习笔记完成,最后例行说明下我的自学思路:
根据过去多年我自学各种编程语言的经历,认为只有真正体验式,解决实际问题式的学习才会有真正的效果,即让学习实际发生。在2004年的时候我开始在一个乡村小学自学电脑 并学习vb6编程语言,没有学习同伴,也没有高师在上,甚至电脑都是孤岛(乡村那时还没有网络),有的只是一本旧书,在痛苦的自学摸索中,我找到适应自己零基础的学习方法:首先是每读书的一小节就作相应的手写笔记,第二步就是上机测试每一个笔记内容是否实现,其中会发现书中讲的其实有出入或错误,第三步就是在上机测试之后,将笔记改为电子版,形成最终的修订好的正确无误的学习笔记 。
通过反复尝试错误,在那个没有分享与交流的黑暗时期我摸黑学会了VB6,尔后接触了其它语言,也曾听过付费视频课程,结果发现也许自己学历果然太低,就算是零基础的入门课程,其实也难以跟上进度,讲师的教学多数出现对初学者的实际情况并不了解的情况,况且学习者的个体也存在差异呢?当然更可怕的是收费课程的价格往往是自己难以承受的。
于是我的所有编程学习都改为了自学,继续自己的三步学习笔记法的学习之路。
当然自学的最大问题是会走那么多的弯路,没有导师直接输入式的教学来得直接,好在网络给我们带来无限搜索的机会,大家在网络上的学习日志带给我们共享交流的机会,而QQ群等交流平台、网络社区的成立,我们可以一起自学,互相批评交流,也可以获得更有效,更自主的自学成果。
于是我以人生已过半的年龄,决定继续我的编程自学之路,开始学习python,只希望与大家共同交流,一个人的独行是可怕的,只有一群人的共同前进才是有希望的。
诚挚期待您的交流分享批评指点!欢迎联系我加入从零开始的自学联盟。
这个时代互联网成为了一种基础设施的存在,于是本来在孤独学习之路上的我们变得不再孤独,因为网络就是一个新的客厅,我们时刻都可以进行沙龙活动。
非常乐意能与大家一起交流自己自学心得和发现,更希望大家能够对我学习过程中的错误给予指点——是的,这样我就能有许多免费的高师了——这也是分享时代,社区时代带来的好福利,我相信大家会的,是吧!
根据完全共享的精神,开源互助的理念,我的个人自学录制过程是全部按4K高清视频录制的,从手写笔记到验证手写笔记的上机操作过程全程录制,但因为4K高清文件太大均超过5G以上,所以无法上传至网络,如有需要可联系我QQ578652607对传,乐意分享。上传分享到百度网盘的只是压缩后的720P的视频。
我的学习过程录像百度盘地址分享如下:(清晰度:1280x720)
链接:https://pan.baidu.com/s/1noO8wToR8OOmLvfQF0vvmw 密码:6kgy
Bilibili:
https://www.bilibili.com/video/av35774836/
喜马拉雅语音笔记:
https://www.ximalaya.com/keji/19103006/137361136
孤荷凌寒自学python第十天序列之字符串的常用方法的更多相关文章
- 孤荷凌寒自学python第二十九天python的datetime.time模块
孤荷凌寒自学python第二十九天python的datetime.time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.time模块是专门用来表示纯时间部分的类. ...
- 孤荷凌寒自学python第二十六天python的time模块的相关方法
孤荷凌寒自学python第二十六天python的time模块的相关方法 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 要使用time模块的相关方法,必须在文件顶端引用: import tim ...
- 孤荷凌寒自学python第二十五天初识python的time模块
孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操 ...
- 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘
孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...
- 孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归
孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python函数非常的灵活,今天学习了python函数的以 ...
- 孤荷凌寒自学python第十六天python的迭代对象
孤荷凌寒自学python第十六天python的迭代对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 迭代也就是循环. python中的迭代对象有相关的如下几个术语: A容器 contrai ...
- 孤荷凌寒自学python第十五天python循环控制语句
孤荷凌寒自学python第十五天python循环控制语句 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中只有两种循环控制语句 一.while循环 while 条件判断式 1: ...
- 孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式
孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 在我学习过的所有语言中,对VB系的语言比较喜欢,而对C系和J系 ...
- 孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解
孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解 (今天由于文中所阐述的原因没有进行屏幕录屏,见谅) 为了能够使用selenium模块进行真正的操作,今天主要大范围搜索资料进行 ...
随机推荐
- 剑指offer 35 第一个只出现一次的字符
错误写法 class Solution { public: int FirstNotRepeatingChar(string str) { int length = str.size(); ) ; ] ...
- Spring Security 实现记住我
开篇一张图,道理全靠悟. 示例如下: 1. 新建Maven项目 remember_me 2. pom.xml <project xmlns="http://maven.ap ...
- 旧文备份:对象字典0x1005和0x1006的理解
SYNC不一定由主站产生,因此,产生SYNC的节点,0x1005对象的值一般是0x40000080,第30位为1表示本节点产生 SYNC,而本节点的0x1006对象就是产生同步周期值了;而接收SYNC ...
- Python的socket编程
我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要 ...
- django中的auth模块以及分页器
1.auth模块 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证,和权限管理 auth可以和admin模块配合使用, 快速建立网站的管理系统 在INSTALLED_APPS中添 ...
- 控制元素的div属性
1.需求分析 改变元素的宽.高.颜色.显示.重置等属性. 2.技术分析 基础的css.html.js 3.详细分析 如图,单击按钮,改变元素属性: 3.1 HTML部分 根据视图不难发现,内容分两大不 ...
- (二)、Python 基础
Python入门 一.第一句Python 在 /home/dev/ 目录下创建 hello.py 文件,内容如下: print "hello,world" 执行 hello.py ...
- 6-1 md5加密
1.导入hashlib模块,使用它的md5方法进行加密 import hashlib # import md5 python2 s = 'admin123' # .将字符串类型转换成byte类型才能加 ...
- myeclipse从SVN上拉项目,各种报错,jar包没有引入
问:项目中myeclipse从SVN上拉项目,各种报错,jar包没有引入 答: 从SVN拉项目步骤一定不能出错,一有点差异就会出非常多的事情 1-右键项目checkout的时候 第一页选默认值就行 点 ...
- (转)Unity 和 Cocos2d-x 越渐流行,国内公司开发「自研游戏引擎」的意义何在?
分几个角度来说:一.我认为,Unity3D将无可挽回的,或者说,势在必得的,成为接下来很多年内,世界移动领域游戏引擎市场霸主.回顾历史,正如同咱们经历过一次又一次的互联网时代变革一样,x86,wind ...