Python基础 第三章 使用字符串(3)字符串方法&本章小结
字符串的方法非常之多,重点学习一些最有用的,完整的字符串方法参见《Python基础教程(第三版)》附录B。
模块string,虽然风头已小,但其包含了一些字符串方法中没有的常量和函数,故将模块string中几个非常有用的常量列出:
string.digits: 包含数字0-9的字符串;
string.ascii_letters: 包含所有ASCII字母(大写和小写)的字符串;
string.ascii_lowercase: 包含所有小写ASCII字母的字符串;
string.printable: 包含所有可打印的ASCII字符的字符串;
string.punctuation: 包含所有ASCII标点字符的字符串;
string.ascii_uppercase: 包含所有大写ASCII字符的字符串。 # 虽然说的是ASCII字符,但实际上是未解码的Unicode字符串。
1. center
方法center通过在两边填充字符(默认空格)让字符居中。
其中数字参数为整个字符串的长度,包含填充符合。
center = "The Middle by Jimmy Eat World".center()
print(center)
结果:
The Middle by Jimmy Eat World center = "The Middle by Jimmy Eat World".center(, "*")
print(center)
结果:
*****The Middle by Jimmy Eat World*****
2. find
方法find在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1.
findstr = 'wiht a moo-moo here, and a moo-moo there'
print(findstr.find('moo'))
结果:7 title = "Monty Python's Flying Cirus"
print(title.find('Monty'))
结果:0 print(title.find('Python'))
结果:6 print(title.find('Flying'))
结果:15 print(title.find('Zirq'))
结果:-1
可指定搜索的起点和终点(第二个和第三个参数)
subject = '$$$ Get rich now!!! $$$'
print(subject.find('$$$'))
# 只指定了起点
print(subject.find('$$$', 1))
结果:
0
20
起点和终点指定的搜索范围包含起点,但不包含终点(Python的惯常做法)。
subject = '$$$ Get rich now!!! $$$'
print(subject.find('!!!'))
# 同时指定了起点和终点
print(subject.find('!!!', 0, 16))
结果:
16
-1
3. join (非常重要的字符串方法)
用于合并序列的元素,其作用与split相反。所合并序列的元素必须都是字符串。
seq = ['','','','']
str = '+'
# 合并一个字符串列表,所合并列的元素都必须是字符串
print(str.join(seq))
结果:
1+2+3+4
dirs = '','usr','bin','env'
print(dirs)
print('/'.join(dirs))
print('C:' + '\\'.join(dirs))
结果:
('', 'usr', 'bin', 'env')
/usr/bin/env
C:\usr\bin\env
4. lower - 该方法用于返回字符串的小写版本
print('Tron Hamm Dance'.lower())
结果:
tron hamm dance
name = 'Gumby'
names = ['gumby','smith','jones']
if name.lower() in names:
print('Found it!') 结果:
Found it!
5. replace - 该方法用于将指定子串都替换为另一个字符串,并返回替换后的结果
newstr = 'This is a test'.replace('is', 'eez')
print(newstr)
结果:
Theez eez a test
6. split(非常重要的字符串方法)
用于将字符串分拆为序列,其作用与join相反。
如果没有指定分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)进行拆分。
print('1+2+3+4'.split('+'))
# 如果没有指定分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)进行拆分
print('Using hte default'.split())
4 结果:
5 ['1', '2', '3', '4']
6 ['Using', 'hte', 'default']
7. strip - 该方法将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。
str = ' internal whitespace is kept '.strip()
print(str)
结果 :
internal whitespace is kept
还可在一个字符串参数中指定要删除哪些字符(同样只删除开头和末尾的指定字符)
str = '*** SPAM * for * everyone!!! ***'
print(str.strip(' *!'))
结果:
SPAM * for * everyone
8. translate
方法translate与replace一样替换字符串的特定部分,但translate的优势在于能同时替换多个字符,效率更高。
使用translate前必须创建一个转换表(该表指出了不同Unicode码点之间的转换关系),对字符串类型str调用方法maketrans创建该转换表,这个方法接受两个参数(两个长度相同的字符串)。
table = str.maketrans('cs', 'kz')
# 查看转换表内容
print("转换表内容:")
print(table)
sen = 'this is an incredible test'
print("替换结果:")
print(sen.translate(table))
>>>
转换表内容:
{99: 107, 115: 122}
替换结果:
thiz iz an inkredible tezt
调用maketrans时,还可提供可选的第三个参数,指定要将哪些字母删除。
table = str.maketrans('cs', 'kz',' ')
# 查看转换表内容
print("转换表内容:")
print(table)
sen = 'this is an incredible test'
print("替换结果:")
print(sen.translate(table))
结果:
转换表内容:
{99: 107, 115: 122, 32: None}
替换结果:
thizizaninkredibletezt
9. 判断字符串是否满足特定条件
以is打头的字符串方法,如isspace、isdigit和isupper,他们判断字符串是否具有特定性值,如果具备则返回True,否则返回False。
10. 本章小结
10.1 关键词:字符串格式设置、字符串方法。
10.2 本章新函数
string.capwords(s[, sep]) #使用split根据sep拆分s,将每项的首字母大写,再以空格为分隔符将他们合并起来 ascii(obj) #创建指定对下的ASCII表示
Python基础 第三章 使用字符串(3)字符串方法&本章小结的更多相关文章
- Python基础-列表、元组、字典、字符串
Python基础-列表.元组.字典.字符串 多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...
- Python基础学习三
Python基础学习三 1.列表与元组 len()函数:可以获取列表的元素个数. append()函数:用于在列表的最后添加元素. sort()函数:用于排序元素 insert()函数:用于在指定位置 ...
- Python 基础语法(三)
Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...
- Python基础知识(三)
Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...
- Python基础学习三 字符串
字符串方法 slit = ['a', 'b', 'c', 'd', 'f', 'g'] s2='hhhhhhhhhh' tu = (1,2,3,4,5) d={'name':'nnn','age':1 ...
- Python基础学习参考(五):字符串和编码
一.字符串 前面已经介绍过字符串,通过单引号或者双引号表示的一种数据类型.下面就再来进一步的细说一下字符串.字符串是不可变的,当你定义好以后就不能改变它了,可以进一步的说,字符串是一种特殊的元组,元 ...
- python基础知识点三
内置函数和匿名函数 python 一共有68个内置的函数:它们就是python提供给你直接可以拿来使用的所有函数 内置函数的图:链接 :https://www.processon.com/mindma ...
- 19.python基础试题(三)
转载: 老男孩 Python 基础知识练习(三):https://www.cnblogs.com/nulige/p/6128674.html 1.列举布尔值为 False 的值空,None,0, Fa ...
- 翻译《Writing Idiomatic Python》(三):变量、字符串、列表
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
随机推荐
- 下载安装Xocde并创建一个C语言的项目工程
安装好Xcode后,新建工程 选择command line tool 选择c语言 点击创建 可以设置运行平台版本 设置 设置c标准 去掉c++ 支持 打开编辑页面 运行 参考: https://www ...
- 虚拟机安装WIN7教程
1.去下载win7原装镜像,推荐去官方网站下载:https://msdn.itellyou.cn/ 也可以直接使用Win7系统和激活工具链接:https://pan.baidu.com/s/1SJSE ...
- Contest Hunter 3101
题目 Contest Hunter 3101 阶乘分解 原题传送门 题目分析 这里介绍一个本蒟蒻自己\(yy\)出来的方法. 我们发现,对于某一个单个的整数\(n\),若\(n\)能被某一个数\(x\ ...
- Reconnect due to socket error java.nio.channels.ClosedChannelException
storm整合kafka后出现如下异常: 错误原因:有部分kafka服务器连接不上导致,检查一下是不是每个kafka都能连接到(有的kafka配置使用的是host,记得配置相同的环境) 造成异常代码段 ...
- nginx 配置简单反向代理
假设端口号是 3000 server { listen ; server_name your.domain; location / { proxy_pass http://127.0.0.1:3000 ...
- Jenkins与gitlib实现自动化部署与持续构建
Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和 ...
- impdp导入报错ORA-39070:无法打开日志文件
>impdp test/123456@orcl directory=expnc_dir dumpfile=TEST.DMP full=y ORA-39002:操作无效 ORA39070:无法打开 ...
- qt 创建及调用QT的 DLL
先讲一下对QT动态链接库的调用方法,主要包括: 1.显式链接DLL,调用DLL的全局函数,采用Qt的QLibrary方法 2.显示链接DLL,调用DLL中类对象.成员函数.(通过对象即可实现类成员函数 ...
- java工厂模式的测试
/** * 工厂模式的测试 * <p> * 工厂方法模式 * 工厂方法模式是简单工厂模式的进一步抽象化和推广,工厂方法模式里不再只由一个工厂类决定那一个产品类应当被实例化,这个决定被交给抽 ...
- UML期末复习题——2.7:UML Sequence Diagram
第七题:顺序图 重要概念: 1. 顺序图的主要介绍,在之前对第5题“系统顺序图”的解析讲解里已经很详细了,在这里只是对部分不全面的内容进行补充. 第五题:系统顺序图&后置条件 http://w ...