零基础如何使用python处理字符串?
摘要:Python的普遍使用场景是自动化测试、爬取网页数据、科学分析之类,这其中都涉及到了对数据的处理,而数据的表现形式很多,今天我们来讲讲字符串的操作。
字符串是作为任意一门编程语言的基础,在Python中的关键字叫做str。而本文对字符串的操作都是建立在数据是字符串而言,可以通过内置函数type()来测试一组数据是否是字符串。

官方标准库有一个独立的文件叫string.py,对字符串的一些常量和方法进行了定义。新手不用去查阅,应先知其然,不用知其所以然,否则学习的动力瞬间烟消云散,深奥晦涩的术语直接让你蒙圈。

字符串的概念很好理解,就是一串连续的东西,由各种符号文字组成的一个整体。如果我们想对这一个整体的部分内容进行选取或者替换呢?诸如此类的操作叫字符串方法,官方给出了如此之多的方法:

我们先依次对这些字符串方法简单介绍一下作用。



是不是看得眼花缭乱?别担心,接下来我们就重点讲解新手入门常用的一些字符串方法,帮助你完善日常字符串处理能力。
字符串方法之:字母大小写
capitalize() vs title()
这两个方法都是首字母大写,但是title允许前面有非字母字符,是真正意义上的首字母大写,对于新手而言,title()更简短更好记,而且适用范围更广。如果二选一的话,建议先记住一个字符串首字母需要大写的情况下优先使用title()。

casefold() vs lower()
不像前面的首字母大写还区分前面是否包含非字母字符,casefold和lower的作用是字符串里面所有的大写字母转换为小写,区别在哪呢?lower可以理解为casefold的子集,casefold除了可以转换英文字母的小写,还可以转换其他语言的小写。优先记住casefold,总能达到小写转换的目的。

upper() vs swapcase()
字母全部大写就简单好记了,预设方法就upper。毕竟它强大到非英文字母也能转换,所以有它足矣。而swapcase和upper一样强大,对任意字符串的字母进行反转,同样适用于非英语范围。

字符串方法之:真值检测
istitle() vs islower() vs isupper()
上面我们已经学习过这三个对于大小写的操作方法,现在前面分别加了is的作用是判断字符串是否满足该方法,并得到一个布尔值。

isalnum() vs isalpha()
字符串里是否有字母我们可以使用这两个判断,如果不但想知道是否有字母,还想知道是否有数字?那么isalnum就为你量身定做。
isdecimal() vs isdigit() vs isnumeric()
当然更加准确的判断数字可以使用这些方法,isdecimal是检测字符串是否全部为十进制数字,而十进制数字也就是我们平时输入的数字。新手平时使用的也就是数字,那么isdigit和isnumeric也是用来检测字符串是否全部为数字组成。三者都是用来检测数字,区别呢?我相信python开发者不会为一个作用创造出好几种方法。主要区别是isdigit可以检测字节中的数字,isnumeric可以检测其他语言的数字,如中文。

其余的如isascii和isprintable暂时不做解释,毕竟字符编码新手还未理解。isidentifier依然忽略,毕竟关键字和标识符这些概念需要慢慢理解和识记。至于isspace那就相当简单,判断是否包含空格而已。而前面篇幅我们了解了很多关于字符串数字和字母操作,而不管数字还是字母都属于字符,而startswith就是从左开始判断字符串是否包含指定字符,而endswith则是从右。
字符串方法之:增删查改
是时候表演真正的技术了,字符串方法如果仅仅只是比较大小写,判断数字是否太low了?很多时候,我们想把原字符串进行修改替换,那么怎么办呢?
增:zfill()
如果我们字符串长度为5,而我们需要按照长度为10进行存储。这时候就可以使用zfill,长度不够,用0从左开始占位进行补充。
至于ljust和rjust可以不做了解,比较对于空格大家都是会处理掉,而不是增加。ljust是向右增加长度,rjust则是向左增加长度,用空格进行补充。
同样作为空格填充的还有center,指定一个长度,长度不够,则用空格从两边均匀填充,使得字符串保持居中的位置。

删:strip() vs removeprefix() vs removesuffix()
strip用来去除字符串两端的空格,lstrip和rstrip大同小异,不过只能单向删去,前者删除左侧,后者删除右侧。而如果我们想去除空格的话,基本上是使用strip就行了,毕竟不管是左还是右,我们都想去除。一个strip就完事了!至于removeprefix是用来从左删除指定内容,removesuffix反之,从右开始删除。

查:count() vs find() vs index()
当我们想知道字符串中某个字符一共出现了几次,可以使用count,如果只想知道某个字符第一次出现的位置(或者专业一点叫索引,索引都是从0开始的!),可以使用find或者index,区别在于如果你不确定某个字符是否存在,最好用find。不存在的情况下find会返回-1,而index直接报错,影响程序进行。有的人会问:如果我只想知道字符最后一次出现的位置呢?官方已经提供了解决方案,rfind和rindex方法就是从右开始查找。

改:replace() vs format() vs partition() vs split() vs join()
说完了增删查,最后就是改了。replace就是最直接的修改方法,可以指定修改次数。而高大上的format则是用来按照指定格式进行修改,如数字格式化,带不带小数等等,这里不做详细解释,因为新手使用format只是用来指定位置传递变量,组成新的字符串。partition和split都是用来分隔,区别在于前者返回元组,后者返回列表。同时,partition分隔包含分隔符,split则不包含。看到这里,想必大家对一个方法前面加r已经有点感悟了,没错,就是从右开始的意思。同样的,rpartition和rsplit都是从右开始分隔。或许会有人问?如果我是包含换行的字符串怎么逐行分隔呢?splitlines应运而生,专门处理跨行分隔。

前面说了分隔,那么怎么合并呢?join方法用来按照指定字符串连接一个序列。
join方法适用于常规序列,如列表,元组等,如果是字典的话,则将键进行连接。注意,连接的序列里最少需要两个元素,否则将直接返回序列,而不是连接好的序列。而作为字符串操作方法,join连接的序列里的元素只能为字符串类型。

作为零基础教程,encode()、expandtabs()、format_map()、maketrans()、translate()需要等对Python有一定理解能力的时候再做学习。
知识是用来传播的,如果你从中获益,除了自己收藏外,别忘了分享给更多人哦~
零基础如何使用python处理字符串?的更多相关文章
- 零基础快速掌握Python系统管理视频课程【猎豹网校】
点击了解更多Python课程>>> 零基础快速掌握Python系统管理视频课程[猎豹网校] 课程目录 01.第01章 Python简介.mp4 02.第02章 IPython基础.m ...
- 《零基础入门学习Python》【第一版】视频课后答案第001讲
测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...
- 零基础入门学习Python(1)--我和Python的第一次亲密接触
前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...
- 零基础如何入门Python
编程零基础如何学习Python 如果你是零基础,注意是零基础,想入门编程的话,我推荐你学Python.虽然国内基本上是以C语言作为入门教学,但在麻省理工等国外大学都是以Python作为编程入门教学的. ...
- 如何零基础开始自学Python编程
转载——原作者:赛门喵 链接:https://www.zhihu.com/question/29138020/answer/141170242 0. 明确目标 我是真正零基础开始学Python的,从一 ...
- 【Python教程】《零基础入门学习Python》(小甲鱼)
[Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609
- 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案
国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...
- 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案
初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...
- 零基础自学用Python 3开发网络爬虫
原文出处: Jecvay Notes (@Jecvay) 由于本学期好多神都选了Cisco网络课, 而我这等弱渣没选, 去蹭了一节发现讲的内容虽然我不懂但是还是无爱. 我想既然都本科就出来工作还是按照 ...
随机推荐
- 使用python做一个IRC在线下载器
使用python做一个IRC在线下载器 1.开发流程 2.软件流程 3.开始 3.0 准备工作 3.1寻找API接口 3.2 文件模块 3.2.1 选择文件弹窗 3.2.2 提取文件名 3.2.2.1 ...
- 如何制作sitemaps网站地图
如何制作sitemaps网站地图 1.0 前言 1.1 xml格式 1.2 常见问题 本文资料来源于网站 1.0 前言 Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页.最简 ...
- 500 份源码合集——GitHub 热点速览 v.21.02
作者:HelloGitHub-小鱼干 GitHub 项目名,如同变量命名,一个好的项目名能让你一眼就知道它是什么.500-AI-Machine-learning-Deep-learning-Compu ...
- 如何优雅的传递 stl 容器作为函数参数来实现元素插入和遍历?
问题背景 开始正文之前,做一些背景铺垫,方便读者了解我的工程需求.我的项目是一个客户端消息分发中心,在连接上消息后台后,后台会不定时的给我推送一些消息,我再将它们转发给本机的其它桌面产品去做显示.后台 ...
- 笔记:学习go语言的网络基础库,并尝试搭一个简易Web框架
在日常的 web 开发中,后端人员常基于现有的 web 框架进行开发.但单纯会用框架总感觉不太踏实,所以有空的时候还是看看这些框架是怎么实现的会比较好,万一要排查问题也快一些. 最近在学习 go 语言 ...
- 肌肤管家SkinRun V3S智能皮肤检测仪,用AI探索肌肤问题
继肌肤管家SkinRun V3皮肤检测仪之后,肌肤管家SkinRun近期又一重磅推出的肌肤管家SkinRun V3S 智能肌肤测试仪引起了美业人的广泛关注.据了解它汇集百万皮肤数据,利用五光谱原理和人 ...
- 基于 MPI 的快速排序算法的实现
完整代码: #include <iostream> #include <cstdlib> #include <ctime> #include <algorit ...
- CentOS | python3.7安装指南
前言: centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同 可通过 python --V 或 python --version 查看系统自带的python版本 有一些系统 ...
- 简要MR与Spark在Shuffle区别
一.区别 ①本质上相同,都是把Map端数据分类处理后交由Reduce的过程. ②数据流有所区别,MR按map, spill, merge, shuffle, sort, r educe等各阶段逐一实现 ...
- Memcached、Redis、Mongodb比较
Memcached(内存Cache) Memcached 是一个高性能的分布式内存对象缓存系统.通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库 ...