Python str字符串精讲_惠州Python培训
作者:黄君发布时间:2020-12-21分类:Python技术浏览:1273
字符串是最常见的一种数据类型,在现实生活中,比较适合用字符串表示的对象包括名字、诗词等。字符串表示一组有序的字符集合,如“床前明月光”就是一个字符串,“床”和“前”都是字符。
所以字符串最基本的属性就是长度,就是包含字符的个数。和其他语言类似,在 Python 中,长度为 0 的字符串也是合法的,也被称作空字符串。但和C语言、Java 语言不同的是,Python 中没有字符这个类型,或者我们可以认为字符就是长度为 1 的字符串。
在 Python 2 中,有两类字符串:
一类是 str 类型的字符,可以看作字节流,一般用来表示使用 ASCII 码字符就能表示的字符串,这类字符串不能直接用来表示中文字符;
另外一类是 unicode 类型的字符串,这类字符串可以用来表示中文。
而在 Python 3 中,只有 str 一种类型,但该类型就是 Python 2 中的 unicode 类型,我们可以用其表示任意字符。原来 Python 2 中的 str 类型在 Python 3 中用 bytes 类型表示。
本节主要讲述 Python 3 中字符串的用法。
字符串可以使用下面 4 种方式来表示:
使用单引号加上一串字符。
使用双引号加上一串字符。
使用 3 个单引号开始,使用 3 个单引号来结束,中间放上一串字符。
使用 3 个双引号开始,使用 3 个双引号来结束,中间放上一串字符。
下面是各种字符串表示法的例子:
>>> a = '' # 使用单引号,空字符串 >>> a = 'abc' # 使用单引号,包含3个字符,a、b和c >>> a = "" # 使用双引号,空字符串 >>> a = "abc" # 使用双引号,包含3个字符,a、b和c >>> a = """""" # 使用3个双引号,空字符串 >>> a = """abc""" # 使用3个双引号,包含3个字符,a、b和c >>> a = """abc # 使用3个双引号,包含换行符 def # 第二行 ekl""" # 第三行 >>> a # 查看内容 'abc\ndef\nekl' >>> a = '''abc # 使用3个单引号,包含换行符 def # 第二行 ijl''' # 第三行 >>> a # 查看内容,可以看到换行符\n 'abc\ndef\nijl'
str 类型的相关接口函数
字符串的基本操作包括得到子字符串、得到字符串的长度等。本节将介绍字符串类型的常用接口函数以及它们的用法。
1) 得到字符串长度——len()
其返回字符串中字符的个数。
>>> len("") # 空字符串,长度为0 0 >>> len("a") # 单个字符,所以长度为1 1 >>> len("ab") # 包含两个字符,所以长度为2 2 >>> len("abc") # 包含3个字符,所以长度为3 3 >>> a = "我爱python" >>> len(a) # 包括8个字符 8
2) 得到子字符串——[开始位置:结束位置]
需要注意的是,字符串是不可以修改的,所以对子字符串是只能读不能写。
>>> in_str="abcdefghijklmn" >>> in_str[2:] # 从第三个开始一直到最后 'cdefghijklmn' >>> in_str[2] # 仅第三个字符 'c' >>> in_str[2:5] # 第3个到第5个字符 'cde' >>> in_str[2:5]="1234" # 试图做写操作,失败,抛出异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
3) 是否为26个字母——isalpha()
如果字符串包含多个字符,那么是否所有的字符都是26个字母,包括大小写的字母。
>>> "".isalpha() # 空字符串不是26个字母 False >>> "a".isalpha() # "a"包含的都是26个字母 True >>> "a1".isalpha() False >>> "aB".isalpha() True
4) 是否全部为 10 个数字字符——isdigit()
该函数用于判断是否所有的字符都是 0 到 9 的字符,如果有一个不是,返回 False,否则返回 True。
>>> "".isdigit() # 空字符返回False False >>> "0".isdigit() # 单个字符0,返回True True >>> "0a".isdigit() # 包含非数字字符a,返回False False >>> "009876".isdigit() # 全部为数字字符,返回True True
5) 是否为26个字母或者10个数字字符——isalnum()
如果字符串中的每个字符都是 26 个字母或者 10 个数字字符,返回 True;如果有一个不是这个范围内的字符,返回 False。
>>> "009876".isalnum() # 都符合要求 True >>> "a009876".isalnum() # 都符合要求 True >>> "".isalnum() # 空字符串,返回False False >>> "abc_def".isalnum() # _字符不符合要求,所以返回False False
6) 转换成小写字母——lower()
该函数将所有的大写字母都转换成小写字母,其他字符原封不动。
>>> "abCD987".lower() # CD => cd, 其他没有变化 'abcd987'
7) 转换成大写字母——upper()
该函数将所有的小写字母都转换成大写字母,其他字符原封不动。
>>> "abCD987".upper() # ab => AB 'ABCD987' >>> "我爱python".upper() '我爱PYTHON'
8) 将单词的首字母大写——title()
如果有多个单词,那么每个单词的首字母都变成大写的。
>>> "abc".title() # 仅仅包含一个单词 'Abc' >>> "this is our favorite book".title() # 包含多个单词,每个的首字母都大写 'This Is Our Favorite Book'
9) 分割成字符串列表——split(分割字符)
分割字符可以是单个字符,也可以是一个字符串。下面的例子中既有单个字符组成的分割字符,也有多个字符组成的分割字符。
>>> "a:b:c".split(":") # 分割字符是单个字符 ['a', 'b', 'c'] >>> "abc--def".split('--') # 分割字符是两个字符 ['abc', 'def'] >>> "abc:def:".split(':') # 尾部有分割字符 ['abc', 'def', ''] >>> "::::abc:def::::".split(':') # 头部有分割字符,有连续的分割字符 ['', '', '', '', 'abc', 'def', '', '', '', '']
10) 将字符串列表拼接成一个字符串——join(字符串列表)
该接口函数接收一个字符串列表或者元组,返回一个新的字符串,输入的字符串集合不会发生变化。返回的字符串就是用指定的字符连接起来的。
下面的例子使用“:”来连接输入的字符串列表。
>>> ":".join(['a', 'b', 'c']) 'a:b:c'
11) 得到字符的ASCII码——ord(单个字符)
要求输入是包含单个字符的字符串。
ASCII 码是早期的一种编码方式,使用 8 位来表示一个字符。目前这种编码方式依然广泛使用,但这种表示方法无法表示中文。
>>> ord("a") # 字符a的ASCII码是97 97 >>> ord("x") # 字符x的ASCII码是120 120 >>> ord("?") 63 >>> ord("ab") # 两个字符,抛出异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: ord() expected a character, but string of length 2 found
12) 从 ASCII 码得到字符——chr(ASCII码值)
输入参数必须在 0 到 255 之间,超出范围会抛出异常。
>>> chr(0) # ASCII码中0表示的字符 '\x00' >>> chr(255) '\xff' >>> chr(36) '$' >>> chr(2236) # 超出范围,导致抛出异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: chr() arg not in range(256)
相关推荐
- 转职Web前端开发要具备哪些技术?_惠州前端培训学校
- 转行Web前端开发要掌握哪些技术?_惠州前端培训学校
- 如何学习Web前端知识转型?_惠州前端培训学校
- Web前端工程师必须具备哪些JS技巧?_惠州前端培训学校
- Web前端开发|怎么封装几个Vue3中很有用的组合式API?_惠州前端培训学校
- Web前端开发如何使用JS中的arguments?_惠州前端培训学校
- Web前端开发如何在TypeScript中使用基本类型?_惠州前端培训学校
- 优秀Web前端开发工程师必须具备哪些技能?_惠州前端培训学校
- Web前端开发|GraphQL是什么?_惠州前端培训学校
- Web前端工程师要学会哪些技能?_惠州前端培训学校
- Python技术排行
-
- 1Python3文件对象的方法之f.write()_惠州计算机Python软件开发
- 2Python对工作具体有什么帮助
- 3Python3 len()方法_惠州计算机Python培训学校
- 4Python3 tuple 函数_惠州计算机Python培训学校
- 5Python float() 函数_惠州计算机Python培训学校
- 6Python type() 函数_惠州计算机Python培训学校
- 7Python iter() 函数_惠州计算机Python培训学校
- 8Python3 bytes 函数_惠州计算机Python培训学校
- 9Python property() 函数_惠州计算机Python培训学校
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训