几个Python的字符串常用内建函数

1.方法:Python3 isdigit()方法

 描述:Python isdigit() 方法检测字符串是否只由数字组成。

 语法:str.isdigit()

 参数:无

 返回值:如果字符串只包含数字则返回 True 否则返回 False。

 实例:

 str = "";
print (str.isdigit()) str = "abcdef"
print (str.isdigit()) # 输出结果
True
False

2.方法:Python3 replace()方法

 描述:replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

 语法:str.replace(old, new[, max])

 参数:

  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次

 返回值:返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

 实例:

 str = "www.w3cschool.cc"
print ("菜鸟教程旧地址:", str)
print ("菜鸟教程新地址:", str.replace("w3cschool.cc", "runoob.com")) str = "this is string example....wow!!!"
print (str.replace("is", "was", 3)) # 输出结果
菜鸟教程旧地址: www.w3cschool.cc
菜鸟教程新地址: www.runoob.com
thwas was string example....wow!!!

3.方法:Python3 find()方法

 描述:find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。

 语法:str.find(str, beg=0, end=len(string))

 参数:

  • str -- 指定检索的字符串
  • beg -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。

 返回值:如果包含子字符串返回开始的索引值,否则返回-1。

 实例:

 str1 = "Runoob example....wow!!!"
str2 = "exam"; print (str1.find(str2))
print (str1.find(str2, 5))
print (str1.find(str2, 10)) # 输出结果
7
7
-1

 扩展实例(Python 3.0+):

 # 实例(Python 3.0+)

 >>>info = 'abca'
>>> print(info.find('a')) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
0
>>> print(info.find('a', 1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3
3
>>> print(info.find('')) # 查找不到返回-1
-1
>>>

4.方法:Python3 count()方法

 描述:count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

 语法:str.count(sub, start= 0,end=len(string))

 参数:

  • sub -- 搜索的子字符串
  • start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
  • end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。

 返回值:该方法返回子字符串在字符串中出现的次数。

 实例:

 str="www.runoob.com"
sub='o'
print ("str.count('o') : ", str.count(sub)) sub='run'
print ("str.count('run', 0, 10) : ", str.count(sub,0,10)) # 输出结果
str.count('o') : 3
str.count('run', 0, 10) : 1

5.方法:Python3 strip()方法

 描述:Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。

 语法:str.strip([chars]);

 参数:

  • chars -- 移除字符串头尾指定的字符。

 返回值:返回移除字符串头尾指定的字符生成的新字符串。

 实例:

 str = "*****this is string example....wow!!!*****"
print (str.strip( '*' )) # 输出结果
this is string example....wow!!!

6.方法:Python3 split()方法

 描述:split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

 语法:str.split(str="", num=string.count(str))

 参数:

  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。

 返回值:返回分割后的字符串列表。

 实例:

 str = "this is string example....wow!!!"
print (str.split( ))
print (str.split('i',1))
print (str.split('w')) # 输出结果
['this', 'is', 'string', 'example....wow!!!']
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']

7.方法:Python3 center()方法

 描述:center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

 语法:str.center(width[, fillchar])

 参数:

  • width -- 字符串的总宽度。
  • fillchar -- 填充字符。

 返回值:返回一个指定的宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。

 实例:

 str = "[www.runoob.com]"

 print ("str.center(40, '*') : ", str.center(40, '*'))

 # 输出结果
str.center(40, '*') : ************[www.runoob.com]************

8.方法:Python3 join()方法

 描述:Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

 语法:str.join(sequence)

 参数:

  • sequence -- 要连接的元素序列。

 返回值:返回通过指定字符连接序列中元素后生成的新字符串。

 实例:

 s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq )) # 输出结果
r-u-n-o-o-b
runoob

9.方法:Python3 maketrans()方法

 描述:

  1. maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
  2. 两个字符串的长度必须相同,为一一对应的关系。

   注:Python3.4已经没有string.maketrans()了,取而代之的是内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans()

 语法:str.maketrans(intab, outtab)

 参数:

  • intab -- 字符串中要替代的字符组成的字符串。
  • outtab -- 相应的映射字符的字符串。

 返回值:返回字符串转换后生成的新字符串。

 实例:

 intab = "aeiou"
outtab = ""
trantab = str.maketrans(intab, outtab) str = "this is string example....wow!!!"
print (str.translate(trantab)) # 输出结果
th3s 3s str3ng 2x1mpl2....w4w!!!

10.方法:Python3 translate()方法

  描述:translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars参数中。

  语法:

  • str.translate(table[, deletechars]);
  • bytes.translate(table[, delete])
  • bytearray.translate(table[, delete])

  参数:

  • table -- 翻译表,翻译表是通过 maketrans() 方法转换而来。
  • deletechars -- 字符串中要过滤的字符列表。

  返回值:返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射 。

  实例:

实例(Python 3.0+)
 intab = "aeiou"
outtab = ""
trantab = str.maketrans(intab, outtab) # 制作翻译表 str = "this is string example....wow!!!"
print (str.translate(trantab)) # 输出结果
th3s 3s str3ng 2x1mpl2....w4w!!!

  实例:演示过滤掉字符'o'

 # 制作翻译表
bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ') # 转换为大写,并删除字母o
print(b'runoob'.translate(bytes_tabtrans, b'o')) # 输出结果
b'RUNB'

11.方法:Python format 格式化函数

  描述:

  1. Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
  2. 基本语法是通过 {} 和 : 来代替以前的 % 。
  3. format 函数可以接受不限个参数,位置可以不按顺序。

  

实例
 >>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world' >>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world' >>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world' >>>

  也可以设置参数:

实例
 # -*- coding: UTF-8 -*-

 print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))

 # 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site)) # 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的 # 输出结果
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com
网站名:菜鸟教程, 地址 www.runoob.com

  也可以向str.format() 传入对象:

实例
 # -*- coding: UTF-8 -*-

 class AssignValue(object):
def __init__(self, value):
self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value)) # "0" 是可选的 # 输出结果
value 为: 6

  数字格式化

  下表展示了 str.format() 格式化数字的多种方法:

 >>> print("{:.2f}".format(3.1415926));
3.14
数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:10d}         13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d}     13 中间对齐 (宽度为10)
11
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
进制
  1. ^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
  2. + 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格
  3. b、d、o、x 分别是二进制、十进制、八进制、十六进制。

  此外我们可以使用大括号 {} 来转义大括号,如下实例:

实例
 # -*- coding: UTF-8 -*-

 print ("{} 对应的位置是 {{0}}".format("runoob"))

 # 输出结果
runoob 对应的位置是 {0}

  以上内容摘至菜鸟教程,为学习Python中字符串常用内建函数的学习笔记,仅供参考,如存在错误请指出,万分感谢!

  以上仅为Python中字符串部分常用内建函数,更多字符串内建函数请参阅菜鸟教程-http://www.runoob.com/python3/python3-string.html

Python3中操作字符串str必须记住的几个方法的更多相关文章

  1. Python3中的字符串函数学习总结

    这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...

  2. Python2和Python3中的字符串编码问题解决

    Python2和Python3在字符串编码上是有明显的区别. 在Python2中,字符串无法完全地支持国际字符集和Unicode编码.为了解决这种限制,Python2对Unicode数据使用了单独的字 ...

  3. java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

    java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

  4. Python3中使用HTMLTestRunner报No module named 'StringIO'解决方法

    今天在学习使用HTMLTestRunner生成测试报告时遇到一个报错,如图所示: 网上搜索了下“No module named 'StringIO'”解决方法,原来我用的是Python 3.X版本,而 ...

  5. Python3中转换字符串编码

    在使用subprocess调用Windows命令时,遇到了字符串不显示中文的问题,源码如下:#-*-coding:utf-8-*-__author__ = '$USER' #-*-coding:utf ...

  6. python3 之 判断字符串是否只为数字(isdigit()方法、isnumeric()方法)

    Isdigit()方法 - 检测字符串是否只由数字组成 语法:   str.isdigit() 参数: 无 返回值: 如果字符串只包含数字,则返回True,否则返回False. 实例: 以下实例展示了 ...

  7. Python3中的字符串相关操作

    Python3的字符串操作相关函数详解 字符串内建函数 1. capitalize() 将字符串中的第一个字符转换成大写,其他字母变成小写.例: >>> "hello Wo ...

  8. C 标准库 中 操作 字符串 的 代码

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

  9. 浅谈C中操作字符串函数的用法(一)

    按照内核string.h中函数的顺序进行大概的介绍,若干函数会给出一个简单的例子.有不足之处还希望各位看到的留言告知. 一.memcpy: 函数原型:extern void * memcpy(void ...

随机推荐

  1. mysql累积聚合

    累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决方案,分别是为使用子查询和使用连接.子查询的方法通常比较直观,可读性强. ...

  2. docker常用命令2

    Docker作为一种开源的.优秀的容器化技术,目前受到越来越多公司的运用,下面是我工作中常用到的一些命令. 1.删除一个容器(删除之前先要停止该容器) docker stop 容器IDdocker r ...

  3. CSRF跨站伪造请求

    一.什么是CSRF CSRF(Cross Site Request Forgery) 跨站请求伪造.也被称为One Click Attack和Session Riding,通常缩写为CSRF或XSRF ...

  4. Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore

    转发请注明此文章作者与路径,请尊重原著,违者必究. 本篇文章演示了使用Dockerfile在Linux(ubuntu16.04)系统上构建ASPNetCore应用,并且在一个解决方案中存在多个项目之间 ...

  5. C#设计模式之十二代理模式(Proxy Pattern)【结构型】

    一.引言 今天我们要讲[结构型]设计模式的第七个模式,也是“结构型”设计模式中的最后一个模式,该模式是[代理模式],英文名称是:Proxy Pattern.还是老套路,先从名字上来看看.“代理”可以理 ...

  6. 28-30 js 文本全选

    要点:使用select(); 上代码: if (e.keyCode === 27){ document.getElementById('input').select() } //当点击键盘esc键时候 ...

  7. awesome python 中文版 相见恨晚!

    awesome python 中文版 相见恨晚!   https://www.zhihu.com/question/24590883 这篇知乎厉害了!一定要学习! 作者:知乎用户链接:https:// ...

  8. idea使用svn出现问题解决办法

    idea一直在refreshing vcs history:解决办法:      有些模块中的版本信息是错的,如拷贝过来的代码,其远程仓库是不存在的,      因此要删除这些模块中的.svn文件夹 ...

  9. K8S 部署 ingress-nginx (二) 部署后端为 tomcat

    在上面已经部署了 ingress-nginx, https://www.cnblogs.com/klvchen/p/9903480.html 创建 service 和 pods cd vi tomca ...

  10. Session过期,跳出iframe框架页显示会话过期页面

    web开发中经常会有这种情况,在一个主页面中包含侧边导航菜单和iframe,点击菜单项,对应页面会在iframe中显示,整个页面不会刷新.但是如果设置了会话Session,在会话过期后再操作会自动re ...