前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python——字符串

Python——字符串

作者头像
zy010101
发布2021-06-09 14:11:29
3710
发布2021-06-09 14:11:29
举报
文章被收录于专栏:程序员

字符串

python3的内置字符串类型默认是支持utf-8的,并且python的字符串提供有一套强大的处理工具集,为程序设计带来了巨大的便利。 相较于C语言,python没有单个字符这种类型,单字符也是字符串。python的字符串是不可变类型,因此不能修改一个字符串对象。 在Python里单引号(’’),双引号(""),三引号(’’’’’'和"""""")都可以用来把字符串包括起来。它们都是字符串,没有本质上的区别。 注意 由于python3的str类型是Unicode的,因此我们应该摒弃C语言中一个ASCII字符对应于一个字节的想法。对于非ASCII字符而言,一个字符对应的字节数是不定的,因为这取决于Unicode码点序列。

禁止转义

python提供了进制转义的方式,这在书写正则表达式,Windows下文件路径等场景是非常有用的,在此介绍一下这种方式。只需要在字符串前面加上字母r(或R)即可。

代码语言:javascript
复制
>>> r"c:\windows\user\desktop"
'c:\\windows\\user\\desktop'
>>> R"c:\windows\user\desktop"
'c:\\windows\\user\\desktop'

效果十分的nice. 唯一需要注意的一点:r'......\',即使是原始字符串也不能以\结尾,这样结尾的话,‘会被认为是转义’,而不是字符串结束。所以如果想要一个以\结尾的字符串,可以这么做

代码语言:javascript
复制
>>> r'......' + '\\'
'......\\'

三引号

下面这个例子清晰的展示了三引号的强大之处。

代码语言:javascript
复制
str1 = """
... 1
... 2
... 3
... """
>>> print(str1)

1
2
3

>>>

三引号中可以包含多行字符串,并且打印输出之后也是原模原样的。这非常有利于我们在python代码中嵌入XML,HTML. 在python中三引号还经常用于文档字符串,用来注释。

+和*运算符

代码语言:javascript
复制
>>> str1 = "123"
>>> str2 = "abc"
>>> str1 + str2     # 连接两个字符串
'123abc'
>>> str1 * 3        # 产生n倍的原来的字符串
'123123123'

字符串和Unicode编码转换

python中提供了ord()函数来实现单个字符转换为其Unicode编码。例如:

代码语言:javascript
复制
>>> c = "去"
>>> ord(c)
21435

另外一个函数chr()可以实现将Unicode编码转换为相应的单个字符。例如:

代码语言:javascript
复制
>>> chr(21435)
'去'

对于ASCII而言,码点(Unicode编码)是我们熟悉的7位数字。例如:

代码语言:javascript
复制
>>> ord('A')
65

字符串格式化

目前的python中存在两种字符串格式化方式。 C语言风格的字符串格式化方式

代码语言:javascript
复制
>>> "%s" % str1
'123'

C#/.NET风格的字符串格式化方式

代码语言:javascript
复制
>>> "{}".format(str1)
'123'

虽然python官方曾经表示要移除C语言风格的字符串格式化方式,但是直到我所使用的的python3.8.2版本,仍未被移除。 这一点和python之禅里的设计哲学有所冲突。

代码语言:javascript
复制
There should be one-- and preferably only one --obvious way to do it.

格式化的高级方式不在此介绍,这些东西应当是用到的时候再去查找,而不是记住它们。因为大多数时候,我们并不会纠结于此。

字符串索引

看下面的例子,你的第一感觉肯定是非常神奇。

代码语言:javascript
复制
>>> S = "123"
>>> S[0]
'1'
>>> S[0][0]
'1'
>>> S[0][0][0]
'1'
>>> S[0][0][0][0]
'1'
>>> S[0][0][0][0][0]
'1'
>>> S[0][0][0][0][0][0]
'1'

这是因为python中没有单个字符这个概念,单个字符也是字符串,所以就造成了上面这种结果。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串
    • 禁止转义
      • 三引号
        • +和*运算符
          • 字符串和Unicode编码转换
            • 字符串格式化
              • 字符串索引
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档