孤荷凌寒自学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第十天序列之字符串的常用方法的更多相关文章

  1. 孤荷凌寒自学python第二十九天python的datetime.time模块

     孤荷凌寒自学python第二十九天python的datetime.time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.time模块是专门用来表示纯时间部分的类. ...

  2. 孤荷凌寒自学python第二十六天python的time模块的相关方法

    孤荷凌寒自学python第二十六天python的time模块的相关方法 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 要使用time模块的相关方法,必须在文件顶端引用: import tim ...

  3. 孤荷凌寒自学python第二十五天初识python的time模块

    孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操 ...

  4. 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘

    孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...

  5. 孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归

    孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python函数非常的灵活,今天学习了python函数的以 ...

  6. 孤荷凌寒自学python第十六天python的迭代对象

    孤荷凌寒自学python第十六天python的迭代对象 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 迭代也就是循环. python中的迭代对象有相关的如下几个术语: A容器 contrai ...

  7. 孤荷凌寒自学python第十五天python循环控制语句

    孤荷凌寒自学python第十五天python循环控制语句 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中只有两种循环控制语句 一.while循环 while 条件判断式 1: ...

  8. 孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式

    孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 在我学习过的所有语言中,对VB系的语言比较喜欢,而对C系和J系 ...

  9. 孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解

    孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解 (今天由于文中所阐述的原因没有进行屏幕录屏,见谅) 为了能够使用selenium模块进行真正的操作,今天主要大范围搜索资料进行 ...

随机推荐

  1. 【HHHOJ】ZJOI2019模拟赛(十三)03.10 解题报告

    点此进入比赛 得分: \(97+0+10=107\) 排名: \(Rank\ 3\) \(Rating\):\(+47\) \(T1\):[HHHOJ187]Hashit(点此看题面) 容易想到可以用 ...

  2. spring boot1.5.6 测试类1

    package com.example.demo; import org.junit.Before;import org.junit.Test; import org.junit.runner.Run ...

  3. AsyncDisplayKit技术分析

    转载请注明出处:http://xujim.github.io/ios/2014/12/07/AsyncDisplayKit_inside.html ,谢谢 前言 Facebook前段时间发布了其iOS ...

  4. 时间戳与QDateTime相互转换

    最近项目中需要将日期时间输出到Excel中,程序使用Qt开发,使用第三方库QtXlsx进行Excel读写操作.Excel中第一列为时间,时间间隔为1小时,如图所示. 赋值起始时间stDTime,则后续 ...

  5. 【主席树上二分】bzoj5361: [Lydsy1805月赛]对称数

    随机化选讲例题 题目大意 小 Q 认为,偶数具有对称美,而奇数则没有.给定一棵 n 个点的树,任意两点之间有且仅有一条直接或间接路径.这些点编号依次为 1 到 n,其中编号为 i 的点上有一个正整数 ...

  6. MySQL - Mac下安装MySQL

    1. 去官网下载dmg的安装文件. 2. 下载完成后,运行安装文件,按步骤进行安装,安装完成后会弹出一个框显示临时密码! 3. 编辑~/.bashrc文件,配置快速启动/停止/重启/cdhome/别名 ...

  7. 基于centos7实现的nfs

    NFS NFS(Network FileSystem,网络文件系统),最早由Sun公司所发展出来的,主要是通过网络让不同的主机.不同的操作系统,可以彼此分享个别档案,因此我们也可以简单把NFS看成是一 ...

  8. 获取父窗口元素或者获取iframe中的元素(相同域名下)

    jquery方法 在父窗口中获取iframe中的元素 //方法1 $("#iframe的ID").contents().find("iframe中的元素"); ...

  9. Java OOP——第七章 多线程

    1.进程:是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间): Eg:用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间.当用户再次点击左面的IE浏览器, ...

  10. python的多继承C3(mro)算法

    多继承的继承顺序按照C3算法进行顺序继承 例一 按照深度A类从左往右有三条可继承的"路" 先按照深度优先的算法,将每一路的每一个节点加到列表中 B = [B,D,F,H] C = ...