IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 01A07.Learning Python 5th-字符串 -> 正文阅读

[Python知识库]01A07.Learning Python 5th-字符串

本笔记是基于《Python学习手册-原书第五版》第七章 字符串基础的个人理解。

Python字符串是一个有序的字符集合,用来存储和表示基于文本和字节的信息。

在Python3.X中有三种字符串类型——str用于Unicode文本;bytes用于二进制数据;bytearray是bytes的一个可修改的变体。

文件在两种模式下工作——文件,将内容表示为str类型并实现Unicode编码;二进制,以原始bytes的形式处理,不做任何数据转换。

与C语言不同的是,Python中的字符串有一套强大的处理工具集;但是Python没有为字符串留有不同的类型。

单引号和双引号

在Python中,单引号和双引号是可以互换的。支持这个的原因是可以不进行转义符就能输入单引号或双引号。

# 在字符串之间添加逗号会生成元组
>>> 'Python',"Python"
('Python', 'Python')

>>> 'Python"s',"Python's"
('Python"s', "Python's")

# 没有逗号则会执行拼接操作
>>> 'Python'"Java"
'PythonJava'

转义符

转义符能让我们在字符串中嵌入不容易通过键盘输入的字符。

# 换行符
>>> s = 'a\nb'
>>> print(s)
a
b

# 制表符
>>> s = '\tab'
>>> print(s)
	ab

# 转义符会被认为是一个字节
>>> s
'\tab'
>>> len(s)
3

当我们输入的字符串可能带有转义符的字面量,但我们不需要转义的时候。

# 文件路径往往和转义符号有冲突
file = opem('C:\new\text.dat', 'w')

# 我们可以在字符串前加r来阻止转义
file = open(r'C:\new\text.dat', 'w')

# 也可以通过\\来表示反转义符
file = open('C:\\new\\text.dat', 'w')

?

三引号

三引号可以用来作为跨行输入来使用,也可以作为注释来使用。三引号会包围所有的文本,并且自动在换行出添加换行符。

常用在Python源文件中嵌入多行出错消息,或HTML、XML和JSON代码中。常用于文档字符串,当它出现在文件的特定地点是,会被当做注释。

# 三引号会自动在换行出添加换行符
>>> s = """aaa
bbb
ccc
"""
>>> s
'aaa\nbbb\nccc\n'

# 三引号会保留所有包围的文本
>>> s = ''' aaa #这段是注释
bbb
ccc
'''
>>> s
' aaa #这段是注释\nbbb\nccc\n'

# 三引号作为注释使用
>>> s = 'aaa'
>>> '''
bbb
ccc
'''
>>> s
'aaa'

字符串的一些常用操作

# 求字符串的长度
>>> len('abc')
3

# 字符串的拼接
>>> 'abc'+'def'
'abcdef'

# 字符串的重复
>>> 'a'*4
'aaaa'

# 使用for循环对字符串遍历
>>> for c in "Pyhon":print(c, end=' ')

P y h o n 

# 判断子字符是否在字符串中
>>> 'on' in 'Python'
True

索引和切片

和C语言一样,Python的偏移量是从0开始的,以比字符串长度小1的偏移量结束。

和C语言不一样,Python还支持负偏移量。

负偏移量+len(字符串) =? 正偏移量

索引就是读取偏移量位置的字节;切片就是读取起始偏移量至末尾偏移量前的一段子字符串。

>>> s = 'Python'

#索引,读取偏移量为0的元素
>>> s[0]
'P'

#切片,读取偏移量为1~偏移量为(2-1)的元素
>>> s[1:2]
'y'

#切片,读取偏移量为1~偏移量为(3-1)的元素
>>> s[1:3]
'yt'

#切片,读取偏移量为-3~偏移量为(-1-1)的元素
>>> s[-3:-1]
'ho'

切片的完整形式为X[I:J:K],表示提取对象X中的全部元素,从偏移量I~偏移量(J-1),每隔K个元素提取一次。K的默认值为1.

>>> s = 'abcdefg'
# 从偏移量1~偏移量(5-1),间隔(2-1)个元素提取一次。
>>> s[1:5:2]
'bd'

# I的默认值是0,J的默认值是字符串的长度
>>> s[::2]
'aceg'

# 当K为-1时就是倒数
>>> s[::-1]
'gfedcba'
>>> s[::-2]
'geca'

字符串转换

在Python中,字符串是不能和数字做算术运算的。

# Python中不能进行混合运算
>>> '42'+1
TypeError: can only concatenate str (not "int") to str

# 将字符串转换成数字
>>> int('42')+1
43

# 将数字转换成字符串
>>> str(42)
'42'

# 返回可作为代码的字符串,在Python3.X被删除
>>> repr(42) 
'42'
>>> repr('42')
"'42'"

# 字符串与ASCII码之间的转换
>>> ord('s')
115
>>> chr(115)
's'

字符串方法

Python提供了一系列实现复杂文本处理的方法。在Python中,表达式和内置函数可以在不同的类型之间工作,但是方法通常特定于对象类型。

方法的调用语法是object.attribute形式,可以理解为“获取对象object中attribute属性的值。”

函数调用的语法是function(arguments)形式,可以理解为“调用函数function的代码,想起传递参数argument对象,并且返回函数function的结果值”

合并两者就是object.method(arguments)。Python首先读取对象object的方法method,然后调用它,向这个方法传递参数。——使用参数调用方法来处理对象。

# 使用replace方法替换字符————生成新的字符
>>> s = 'Pythan'
>>> s = s.replace('a', 'o')
>>> s
'Python'

>>> 'Pythan'.replace('a', 'o')
'Python'

# replace可以传入参数来决定改变几个
>>> 'Pythooon'.replace('o', 'a', 2)
'Pythaaon'

# 拼接操作和replace方法都会生成一个新的字符串
# 有时候为了脚本的性能,可以将字符串转换为一个支持原位置修改的对象
# 对列表改变之后,在用join方法转变回字符串

>>> s = 'Pythan'
>>> l = list(s)
>>> l
['P', 'y', 't', 'h', 'a', 'n']

>>> l[4] = 'o'
>>> l
['P', 'y', 't', 'h', 'o', 'n']

>>> s = ''.join(l)
>>> s
'Python'

# join()方法还可以用来加符号或字符
>>> L = ['Java','Python','C++']
>>> s = ','.join(L)
>>> s
'Java,Python,C++'

# split()方法可以传入需要识别的符号或字符对字符串进行分割
>>> cols = s.split(',')
>>> cols
['Java', 'Python', 'C++']


# 其他常用的字符串方法
>>> s = 'I learn Python today!\n'

# rstrip()方法删除末尾指定的字符,默认值是空格。
>>> s.rstrip() 
'I learn Python today!'

# upper()方法将字母转变为大写。
>>> s.upper()
'I LEARN PYTHON TODAY!\n'

# isalpha()方法判断字符串是否全部是字母
>>> s.isalpha()
False

# endswith()方法判断字符串是否以传入的子字符串结尾。
>>> s.endswith('today!\n')
True

# startswitch()方法判断字符串是否以传入的子字符串开头。
>>> s.startswith('I')
True

字符串格式化

Python中的格式化有表达式和方法调用两种方法。常用于格式化文本显示给程序用户的时候。

字符串格式化表达式的格式为

'...%s...'%(values)

# 格式化表达式
>>> 'I learn %s %f'%('Python', 3.9)
'I learn Python 3.900000'
# 常用的方法
>>> s = ('Python', 3.9)
>>> 'I learn %s %f'%s
'I learn Python 3.900000'

# 转换的目标结构为
# %[(keyname)[flag][width][.precision]]typecode
# (keyname) 可以为字典提供键名字
# [flag] 可以填入(-)左对齐;(+)数值符号,正数前的空白和负数前的(-)都可以表示空白,0
# [width] 可以填入需要的宽度
# [.precision] 可以填入需要的精度
# typecode 可以填入需要的类型码

# 宽度和填充
>>> x = 1111
>>> res = 'integers:...%d...%-6d...%06d'%(x,x,x)
>>> res
'integers:...1111...1111  ...001111'

# 精度
>>> 'I learn %s %.2f'%s
'I learn Python 3.90'

# 字典的格式化表达式
>>> '%(brand)s is %(color)s'%{'brand':'xiaomi', 'color':'pink'}
'xiaomi is pink'

字符串格式化方法调用的格式为

‘...{}...’.format(values)

# 格式化方法调用
>>> s = '{0}, {1} and {2}'
>>> s.format('Java','Python','C++')
'Java, Python and C++'

# 格式化方法调用
>>> s = '{brand} is {price}'
>>> s.format(brand = 'xiaomi', price = 2999)
'xiaomi is 2999'

# 格式化方法调用
>>> s = '{brand} {0} {price}'
>>> s.format('pink', brand = 'xiaomi', price=2999)
'xiaomi pink 2999'

# 格式化方法调用可以传入对象

# 格式化表达的格式 
# 花括号内{filedname component !conversionflag : formatspec}
# filedname是辨识参数的一个可选的数字或关键字
# component是有着大于等于零个'.name'或[index]引用的字符串
# !conversionflag如果出现以!开始后面跟着r/s/a分别表示repr/str/ascii内置函数

# formatspec组件也有丰富的格式
# [[fill]align][sign][#][0][width][,][.precision][typecode]
# 可以填入除{}以外的任意填充字符
# align可以填入<、>、=或^分别表示左对齐,右对齐,符号字符后的填充,居中
# sign可以是+、-或空格
# ,号表示使用千分位分隔符


示例
>>> '{0:10} = {1:10}'.format('Python', 2999)
'Python     =       2999'
示例
>>> '{0:>10} = {1:<10}'.format('Python', 2999)
'    Python = 2999      '

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-20 12:27:01  更:2021-10-20 12:29:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:01:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码