第七章 字符串基础

字符串基础

字符串基础

从实用的角度来看,字符串可以用来表示能够编码为文本或字节的任何事物。

字符串字面量

表示 示例
单引号 ‘spa"m’
双引号 “spa’m”
三引号 ‘’’…spam…’’’、"""…spam…"""
转义序列 “s\tp\na\om”
原始字符串 r"C:\new\test.spm"

单引号和双引号字符串是一样的

在python字符串周围,单引号和双引号是可以互换的。支持这两种形式的原因是,你不进行反斜杠转义就可以在一种引号的字符串中包含另一种引号。
除了单引号内嵌到字符串中的情形外,我们更加倾向于在字符串周围使用单引号,因为这种形式更加便于阅读。

>>> X = 'abc"d',"abc'd"
>>> X
('abc"d', "abc'd")
>>> Y = 'abc"d' "abc'd"
>>> Y
'abc"dabc\'d'

转义序列代表特殊字符

转义序列让我们能够在字符串中嵌入不容易通过键盘键入的字符。字符\以及字符串字面量中在他后面的一个或多个字符串,在生成的字符串对象中会被单个字面量所替代,这个字符拥有通过转义序列定义的二进制值

转义字符 描述
(在行尾时) 续行符
\ 反斜杠符号
单引号
" 双引号
\a 响铃
\b 退格(Backspace)
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

原始字符串阻止转义

用转义序列在字符串中嵌入特殊字符串编码是很方便的,然而有时候,为了引入转义字符,而对反斜杠的特殊处理会带来一些麻烦。

filepath = open('C:\new\test.spm')

路径中有一个\n,他会被识别为一个换行字符。这样会使得结果变得难以想象;
为了避免类似的情况的发生,原始字符串就能派上用途。如果字母r(大写或小写)出现在字符串的第一个引号前面,它将会关闭转义机制。

filepath = open(r'C:\new\test.spm')

还有一种方式是使用双斜杠;

filepath = open('C:\\new\\test.spm')

三引号编写多行块字符串

python中还有一种三引号内字符串字面量格式,有时候被称作块字符串,这是一种对编写多行文本数据来说很便捷的语法。

>>> S = '''abcd
... efgh
... ijklnm'''
>>> S
'abcd\nefgh\nijklnm'

>>> print(S)
abcd
efgh
ijklnm

程序会保留被三引号包围的文本,包括位于代码最右边,你认为是注释的文本;
三引号的还可以用作废除一些代码;

实际应用中的字符串

基本操作

操作符 描述
+ 字符串连接
* 重复输出字符串
[] 通过索引获取字符串中字符
[ : ] 截取字符串中的一部分
in 成员运算符
not in 成员运算符
r/R 原始字符串 - 原始字符串
% 格式字符串

索引和切片

因为字符串被定义为字符串的有序集合,所以我们能够通过位置访问它们的元素。
在这里插入图片描述
索引(S[i])获取特定偏移量处的元素:

  • 第一个元素的偏移量为零;
  • 负偏移量索引意味着从结尾或又端反响进行计数;
  • S[0]获取第一个元素;
  • S[-2]获取倒数第二个元素;

切片(S[i : j])提取序列的连续部分:

  • 上界并不包含在内;
  • 分片的上界和下界,在缺省时默认为0和序列的长度;
  • S[1 : 3]获取从偏移量为1直到但是不包含偏移量为3之间的所有元素;
  • S[1 : ]获取从偏移量为1直到末尾之间的所有元素;
  • S[ : 3]获取从偏移量为0直到但是不包含偏移量为3之间的所有元素;
  • S[ : -1]获取从偏移量为0直到但是不包含最后一个元素之间的所有元素;
  • S[ : ]获取所有的元素,实现了对S的顶层复制;

扩展的分片S[i: j : k]接收一个步长k,其默认值为+1:

  • 允许跳过元素和反转顺序;
>>> S = 'abcdefg'
>>> S[5:1:-1]
'fedc'

字符串转换工具

>>> int('42'),str(42)
(42, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值