《Python学习之路 -- 字符串的方法》

  在前面已经提到Python中的字符串了,本文来列举介绍字符串的方法,我将字符串的方法分为以下几类:

①查询方法

str.find(target,start=None,end=None)

该方法用于查询字符串str中是否含有target,如果有,则返回target在这个字符串中首次出现的首字符的索引(从左往右检索),如果没有,则返回 -1 ,第二个参数和第三个参数用于指定查询的区域,包括开始索引,不包括结束索引(左闭右开)。

my_str = 'hello jonas'
result = my_str.find('o')  # 从左往右查找,找到字符o则返回它的下标索引,后面的o则不会被检索
print(result)  # 输出 4
result = my_str.find('o',5)  # 从字符串下标索引为5(包括)开始查找,如果不写结束索引则默认查找到字符串的最后一个字符
print(result)  # 输出 7

 

str.rfind(target,start=None,end=None)

 该方法与find()基本一致,不同的是检索的方向是从右往左

my_str = 'hello jonas'
result = my_str.rfind('o')
print(result) # 输出 7

 

 str.index(target,start=None,end=None)

该方法与find()基本一致,不同的是该方法查询不到结果则会报错

my_str = 'hello jonas'
result = my_str.find('w')
print(result)  # 输出 -1
result = my_str.index('w')  
print(result)  # 查询不到结果,程序报错

 

 str.rindex(target,start=None,end=None)

该方法与index()基本一致,不同的是检索的方向是从右往左

my_str = 'hello jonas'
result = my_str.find('o')
print(result)  # 输出 4
result = my_str.rindex('o')
print(result)  # 输出 7

 

②截取方法

str.split(sep=None,maxsplit=-1)

该方法两个参数都有默认值,也就以为该方法可以不传实参直接调用,默认参数的情况下,该方法会将字符串中所有出现空格、制表符 \t 和换行符 \n 的地方打断,将剩下的所有字符串片段存放到一个列表中,并将这个列表返回;第一个参数sep代表截取字符串,如果指定了这个参数,则会按照这个指定的字符串去打断字符串str,将剩下的字符片段塞存放到一个列表中,返回这个列表;第二个参数是指定最大打断次数,默认值是-1代表无限。

my_str = 'hello jonas\thow are you\ni am fine'
# 默认情况下按照空格,制表符和换行符分隔
result = my_str.split()
print(result)  # 输出:['hello', 'jonas', 'how', 'are', 'you', 'i', 'am', 'fine']
my_str2 = 'hello jonas'
# 按照字符'o'拆分字符串
result = my_str2.split('o')
print(result)  # 输出:['hell', ' j', 'nas']
# 按照字符'o'拆分字符串,并且最多拆分一次(从左往右检索)
result = my_str2.split('o',1)
print(result)  # 输出:['hell', ' jonas']

 

str.rsplit(sep=None,maxsplit=-1)

该方法与split()基本一致,不同的是检索的方向是从右往左

my_str2 = 'hello jonas'
# 从左往右检索
result = my_str2.split('o',1)
# 从右往左检索
result2 = my_str2.rsplit('o',1)
print(result,result2)  # 输出:['hell', ' jonas']    ['hello j', 'nas']

 

str.partition(sep)

该方法也用于拆分字符串,与split()方法不同的是,该方法没有默认值,所以必须要指定拆分依据的字符串sep,如果不指定则会报错;除此以外,该方法必定会将字符串str分为三部分,第一部分是拆分字符串sep的前面,第二部分是拆分字符串sep本身,第三部分是拆分字符串sep后面,并将这三部分存放在一个元组中,结果返回这个元组。

my_str = 'hello jonas'
# 从左往右检索
result = my_str.partition('o')
print(result)  # 输出:('hell', 'o', ' jonas')

 

str.rpartition(sep)

该方法与partition()基本一致,不同的是检索的方向是从右往左

my_str = 'hello jonas'
# 从右往左检索
result = my_str.rpartition('o')
print(result)  # 输出:('hello j', 'o', 'nas')

 

③检查方法

str.startswith(prefix,start=None,end=None)

该方法用于检查字符串片段(默认是整个字符串)是否以prefix开头,如果是则返回True,否则返回False;第二和第三个参数用于指定检索区间。

my_str = 'hello jonas'
# 检查是否以he开头,默认检查整个字符串
result = my_str.startswith('he')
print(result)  # 输出:True
# 从字符串的下标索引为6开始,是否以jonas开头
result = my_str.startswith('jonas',6)
print(result)  # 输出:True

 

str.endswith(suffix,start=None,end=None)

该方法用于检查字符串片段(默认是整个字符串)是否以suffix结尾,如果是则返回True,否则返回False;第二和第三个参数用于指定检索区间。

my_str = 'hello jonas'
# 检查是否以s结尾,默认检查整个字符串
result = my_str.endswith('s')
print(result)  # 输出:True
# 从字符串的下标索引为6开始,是否以as结尾
result = my_str.endswith('as',6)
print(result)  # 输出:True

 

str.isalnum( )

该方法用于检查字符串str是否只包含数字或字母

my_str = 'hello jonas'
my_str2 = '你好,jonas'
my_str3 = 'hello'
# 检查是否只包含数字或字母,但不能有空格,汉字
result = my_str.isalnum()
result2 = my_str2.isalnum()
result3 = my_str3.isalnum()
print(result,result2,result3)  # 输出:False False True

 

str.isalpha( )

检查字符串str是否是一个连续并且只包含字母或中文的字符串,如果是,则返回True,否则返回False

 

str.isdigit( )

检查字符串str是否只包含数字(包括十进制数字和小圆圈数字),如果是,则返回True,否则返回False

my_str = '123'
my_str2 = '①②③'
my_str3 = '一二三'
# 检查是否只包含十进制数字或小圆圈数字
result = my_str.isdigit()
result2 = my_str2.isdigit()
result3 = my_str3.isdigit()
print(result,result2,result3)  # 输出:True True False

 

str.isdecimal( )

检查字符串str是否只包含数字(只包括十进制数字),如果是,则返回True,否则返回False

my_str = '123'
my_str2 = '①②③'
my_str3 = '一二三'
# 检查是否只包含十进制数字
result = my_str.isdecimal()
result2 = my_str2.isdecimal()
result3 = my_str3.isdecimal()
print(result,result2,result3)  # 输出:True False False

 

str.isnumeric( )

my_str = '123'
my_str2 = '①②③'
my_str3 = '一二三'
# 检查是否只包含数字(包括十进制数字、小圆圈数字和文字里面的数字)
result = my_str.isnumeric()
result2 = my_str2.isnumeric()
result3 = my_str3.isnumeric()
print(result,result2,result3)  # 输出:True True True

 

str.isspace( )
检查字符串是否只包含空格,如果是,则返回True,否则返回False

 

str.islower( ) 与 str.isupper( )

检查字符串是否只包含小写/大写

my_str = 'Hello'
my_str2 = 'hello'
result = my_str.isupper()
result2 = my_str2.islower()
print(result,result2)  # 输出 False True

 

str.istitle( )

检查字符串中是否每个单词的首字母都是大写

my_str = 'Hello Jonas'
result = my_str.istitle()
print(result)  # 输出 True

 

④大小写转换方法

str.lower( )

将字符串转换为小写,该方法不会改变原字符串(因为字符串是不可变类型),而是生成一个新的字符串。

 

str.upper( )

将字符串转换为大写,该方法不会改变原字符串。

 

str.title( )

将字符串所有单词的首字母转为大写,该方法不会改变原字符串。

 

str.capitalize( )

将字符串的第一个字符转为大写,该方法不会改变原字符串。

 

str.swapcase( )

将字符串中的所有大写转为小写,所有小写转为大写,该方法不会改变原字符串。

 

str.casefold( )

将字符串str中的所有内容转换为某种对应关系,在某些国家的语言中有着某种对应关系的字符,比如常见的:将大写转为小写(其他对应关系我也不了解-.-)。

my_str = 'Hello Jonas'
result = my_str.lower()
result2 = my_str.upper()
result3 = my_str.title()
result4 = my_str.capitalize()
result5 = my_str.swapcase()
result6 = my_str.casefold()
print(result,result2,result3,result4,result5,result6)  
# 输出: hello jonas      HELLO JONAS      Hello Jonas      Hello jonas     hELLO jONAS    hello jonas

 

⑤删除方法

str.lstrip(chars=None)

该方法默认删除字符串str左边的空格,也可以指定删除内容(一般用于去空格),该方法不会改变原字符串,而是生成一个新的字符串。

 

str.lstrip(chars=None)

该方法默认删除字符串str左边的空格,也可以指定删除内容(一般用于去空格),该方法不会改变原字符串,而是生成一个新的字符串。

 

str.strip(chars=None)

该方法默认删除字符串str左边的空格,也可以指定删除内容(一般用于去空格),该方法不会改变原字符串,而是生成一个新的字符串。

 

⑥对齐填充方法

str.center(width,fillchar=None)

给字符串指定一个长度width,并将str在这个长度居中,剩余空间由第二个参数填充,默认使用空格填充,该方法不会改变原字符串,而是生成一个新的字符串。

 

str.ljust(width,fillchar=None)

给字符串指定一个长度width,并将str在这个长度中左对齐,剩余空间由第二个参数填充,默认使用空格填充,该方法不会改变原字符串,而是生成一个新的字符串。

 

str.rjust(width,fillchar=None)

给字符串指定一个长度width,并将str在这个长度中右对齐,剩余空间由第二个参数填充,默认使用空格填充,该方法不会改变原字符串,而是生成一个新的字符串。

 

str.zfill(width)

该方法用于指定字符串长度,默认用字符0填充剩余空间。

my_str = 'hello jonas'
result = my_str.center(30,'*')
print(result)  # 输出: *********hello jonas**********
result = my_str.ljust(30,'-')
print(result)  # 输出:hello jonas-------------------
result = my_str.rjust(30)
print(result)  # 输出:                   hello jonas

 

⑦其他方法

str.count(sub,start=None,end=None)

该方法用于统计sub在字符串片段中出现的次数,默认检索整个字符串,但是通过第二和第三个参数可以指定检索的区域,最后返回出现的次数。

my_str = 'hello jonas'
result = my_str.count('o')
print(result)  # 输出:2

 

str.format(*args,**kwargs)

该方法用于格式化字符串

my_str = 'My name is {}, I am {} years old,I come from {} '
print(my_str.format('Jonas',18,'China'))  # 输出:My name is Jonas, I am 18 years old,I come from China
my_str2 = '{0} {0} {1} {2}'
print(my_str2.format('Jonas','Jack','Tom'))  # 输出:Jonas Jonas Jack Tom

 

str.replace(old,new,count=None)

该方法用于替换字符串中的内容,将字符串中的old替换为new,第三个参数可以指定替换的次数,-1 表示将所有匹配项替换。同样的,该方法不会改变原字符串,而是生成一个新的字符串。

my_str = 'hello jonas'
result = my_str.replace('jonas','Jerry')
print(result)  # 输出:hello Jerry

转载于:https://www.cnblogs.com/jonas-von/p/8922372.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java监视器绑定的超人

这是超人生活中的黑暗时期。 乔尔艾尔(Jor-El)希望他继续航行,为他的最终命运做好准备。 然而,地球面临着世界末日,正义联盟需要他们的钢铁侠行动来拯救世界。 但是由于我们只有一个超人,您不能同时做这两个…

C语言第一次实验报告

一.实验题目,设计思路,实现方法 第四次 计算分段函数和循环NEW 4-3 求N分之一序列前N项和 4-6 输出华氏-摄氏温度转换表 第四次 分支循环 加强版 4-2-7 装睡 设计思路:4-3开始需要计算大量式子,因此利用到相对便捷的…

php充值卡,ecshop 充值卡功能_懒人程序

/*显示页面的action列表*/$ui_arrarray(register,login,profile,... 增加cz然后在下面代码处加入if ($actioncz)//冲值{ if($_GET[a]add){ if (empty($_SESSION[user_id])){ show_message(该用户不存在。,返回上一页,user.php?actcz);} else{ $kstrtoupper(substr($_POST[k],0…

CSS实现垂直居中的5种方法

利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法。我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站。 使用 CSS 实现垂直居中并不容易。有些方法在一些浏览器中无效。下面我们看一下使对象垂直集中的5种不同方法&#xf…

尝试使用jBPM Console NG(测试版)

大家好! 这是关于jBPM Console NG的另一篇文章。 经过6个月的辛苦工作,我很高兴为开发者社区撰写这篇文章,以进行尝试。 在这篇文章中,我将解释如何从源代码构建应用程序。 这背后的主要思想是知道如何在测试过程中设置环境并修改…

三个实用的提升网页性能技巧

1、display属性设置 先将元素设为 display: none(需要1次重排和重绘),然后对这个节点进行100次操作,最后再恢复显示(需要1次重排和重绘)。这样一来,你就用两次重新渲染,取代了可能高…

mysq在某一刻同时获取主从库的位置点

在从库进行锁表操作flush table with read lock, 通过show slave status\G 获取对应主库的位置点: show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host…

php在window磁盘管理,Windows Server 2008R2设置磁盘阵列

RAID(独立硬盘冗余阵列)指用多个硬盘组成一个高性能、大容量的一个硬盘组合。独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(RedundantArray of Inexpensive Disks),简称硬盘阵列。其基本思想就是把多个相对便宜的…

解决Error: ENOENT: no such file or directory, scandir 安装node-sass报错

新项目开发需要安装依赖,但是安装完之后通过gulp运行项目,产生了一下的报错: 解决方案是执行一些方法: npm rebuild node-sass可是有时就是网络问题导致上面命令安装失败,查下失败提示,有可能是&#xff1a…

没有应用程序服务器

我们最近发布了有关从免费Plumbr部署中收集的应用服务器市场份额的数据 。 它产生了很好的共鸣-通过不同的渠道,我们获得了数百种有关如何解释数据的评论。 但是,通过各种渠道不断提出一种形式不同的论点。 无论是采用“ T omcat不是应用程序服务器 ”的…

HTML基础知识(未完待续)

一、HTML编辑工具&#xff1a;Sublime Text 二、HTML实体字符&#xff1a;1、&#xff08; 空格&#xff09;&#xff1a;&nbsp&#xff1b; 2、&#xff08;<&#xff09; &lt&#xff1b; 3、&#xff08;>&#xff09;&gt&#xff1b; 4、&#xff08;&a…

系统讲解CSS,前端开发最神奇的技术,新手的你一定不能错过

前面小编带领大家重温了前端开发中最基本的HTML语言。如果你已经掌握了这门语言&#xff0c;那么恭喜你&#xff0c;可以去深入了解CSS技术了。CSS技术最主要的功能就是弥补HTML标记对在页面中显示外观的不足&#xff0c;对这些标记对的默认外观进行美化。从本文开始&#xff0…

java 自定义对象 排序,使用自定义排序顺序对对象的ArrayList进行排序

问题我希望为我的地址簿应用程序实现一个排序功能。我想排序anArrayList contactArray.Contact是一个包含四个字段的类&#xff1a;名称&#xff0c;家庭电话号码&#xff0c;手机号码和地址。我想排序name。如何编写自定义排序功能来执行此操作&#xff1f;#1 热门回答(255 赞…

JUnit和Mockito合作

这次&#xff0c;我想对测试框架Mockito进行概述。 毫无疑问&#xff0c;这是用于测试Java代码的最受欢迎的工具之一。 我已经对Mockito的竞争对手EasyMock进行了概述。 这篇文章将基于有关EasyMock的示例应用程序。 我的意思是代表咖啡机功能的类。 用Mockito准备测试 通常&a…

发现2017年最好的CSS框架

如今&#xff0c;无数的框架出现在定期而少数人喜欢自助&#xff0c;Foundation和angular.js主宰了整个世界的发展。CSS代表用于描述HTML&#xff08;或XML&#xff09;文档表示的样式表语言。一个框架被定义为一个包&#xff0c;它由一组结构化的文件和标准化代码&#xff08;…

[python基础] python 2与python 3之间的区别 —— 默认中文字符串长

在python 2.7中使用len获得中文字符串长度时&#xff1a; >>> len(中文) 4 >>> a你好 >>> a \xc4\xe3\xba\xc3 >>> len(a.encode(utf-8))Traceback (most recent call last):File "<pyshell#77>", line 1, in <module&…

stixel world论文总结

1.The Stixel World - A Compact Medium Level Representation of the 3D-World:http://pdfs.semanticscholar.org/2df3/4dbfb4feeb2d7f40e90956ebc8de1f41a5e4.pdf stixel world开山鼻祖文章 https://zhuanlan.zhihu.com/p/27494151 对stixel world相关的一些概念进行解释 2.T…

php如何与数据库连接,PHP文章如何和数据库连接(1)

PHP文章如何和数据库连接(1)(1)Warning: mysql_query() [function.mysql-query]: Access denied for userODBClocalhost (using password: NO) in C:\Program Files\ApacheSoftware Foundation\Apache2.2\htdocs\TM\conn\conn.php on line 32Warning: mysql_query() [function.…

html基本标签与属性

HTML 超文本标记语言 html5 建立一个HTML文件&#xff1a; 文件名 . 后缀(html) 解析&#xff1a;就是去识别 注释&#xff1a;就是给开发人员开的批注------浏览器不去解析&#xff08;不去输出&#xff09; HTML的整体框架 <!DOCTYPE html> <html> <head> …

go基础编程 day-2

Go的常亮 关键字&#xff1a; Const Go常亮的多个定义&#xff1a; // 定义常亮的关键字 const// 定义多个常亮 const(PI 3.14const1 "1"const2 2const3 3 ) 全局变量的声明与赋值&#xff1a; var (name "wyc"name1 1name2 2name3 3 ) 一般类型…