Python 字符串

除了数字,Python也能操作字符串。字符串有几种表达方式,可以使用单引号或双引号括起来:

>>> 'spam eggs'

'spam eggs'

>>> 'doesn\'t'

"doesn't"

>>> "doesn't"

"doesn't"

>>> '"Yes," he said.'

'"Yes," he said.'

>>> "\"Yes,\" he said."

'"Yes," he said.'

>>> '"Isn\'t," she said.'

'"Isn\'t," she said.'

Python中使用反斜杠转义引号和其它特殊字符来准确地表示。

如果字符串包含有单引号但不含双引号,则字符串会用双引号括起来,否则用单引号括起来。对于这样的输入字符串,print() 函数会产生更易读的输出。

跨行的字面字符串可用以下几种方法表示。使用续行符,即在每行最后一个字符后使用反斜线来说明下一行是上一行逻辑上的延续:

以下使用 \n 来添加新行:

>>> '"Isn\'t," she said.'

'"Isn\'t," she said.'

>>> print('"Isn\'t," she said.')

"Isn't," she said.

>>> s = 'First line.\nSecond line.' # \n 意味着新行

>>> s # 不使用 print(), \n 包含在输出中

'First line.\nSecond line.'

>>> print(s) # 使用 print(), \n 输出一个新行

First line.

Second line.

以下使用 反斜线(\) 来续行:

hello = "This is a rather long string containing\n\

several lines of text just as you would do in C.\n\

Note that whitespace at the beginning of the line is\

significant."

print(hello)

注意,其中的换行符仍然要使用 \n 表示——反斜杠后的换行符被丢弃了。以上例子将如下输出:

This is a rather long string containing

several lines of text just as you would do in C.

Note that whitespace at the beginning of the line is significant.

或者,字符串可以被 """ (三个双引号)或者 ''' (三个单引号)括起来。使用三引号时,换行符不需要转义,它们会包含在字符串中。以下的例子使用了一个转义符,避免在最开始产生一个不需要的空行。

print("""\

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

""")

其输出如下:

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

如果我们使用"原始"字符串,那么 \n 不会被转换成换行,行末的的反斜杠,以及源码中的换行符,都将作为数据包含在字符串内。例如:

hello = r"This is a rather long string containing\n\

several lines of text much as you would do in C."

print(hello)

将会输出:

This is a rather long string containing\n\

several lines of text much as you would do in C.

字符串可以使用 + 运算符串连接在一起,或者用 * 运算符重复:

>>> word = 'Help' + 'A'

>>> word

'HelpA'

>>> ''

''

两个紧邻的字面字符串将自动被串连;上例的第一行也可以写成 word = 'Help' 'A' ;这样的操作只在两个字面值间有效,不能随意用于字符串表达式中:

>>> 'str' 'ing'

# >> 'str'.strip() + 'ing'

# >> 'str'.strip() 'ing'

#

'str'.strip() 'ing'

^

SyntaxError: invalid syntax

字符串可以被索引;就像 C 语言一样,字符串的第一个字符的索引为 0。没有单独的字符类型;一个字符就是长度为一的字符串。就像Icon编程语言一样,子字符串可以使用分切符来指定:用冒号分隔的两个索引。

>>> word[4]

'A'

>>> word[0:2]

'Hl'

>>> word[2:4]

'ep'

默认的分切索引很有用:默认的第一个索引为零,第二个索引默认为字符串可以被分切的长度。

>>> word[:2] # 前两个字符

'He'

>>> word[2:] # 除了前两个字符之外,其后的所有字符

'lpA'

不同于C字符串的是,Python字符串不能被改变。向一个索引位置赋值会导致错误:

>>> word[0] = 'x'

Traceback (most recent call last):

File "", line 1, in ?

TypeError: 'str' object does not support item assignment

>>> word[:1] = 'Splat'

Traceback (most recent call last):

File "", line 1, in ?

TypeError: 'str' object does not support slice assignment

然而,用组合内容的方法来创建新的字符串是简单高效的:

>>> 'x' + word[1:]

'xelpA'

>>> 'Splat' + word[4]

'SplatA'

在分切操作字符串时,有一个很有用的规律: s[:i] + s[i:] 等于 s.

>>> word[:2] + word[2:]

'HelpA'

>>> word[:3] + word[3:]

'HelpA'

对于有偏差的分切索引的处理方式也很优雅:一个过大的索引将被字符串的大小取代,上限值小于下限值将返回一个空字符串。

>>> word[1:100]

'elpA'

>>> word[10:]

>>> word[2:1]

在索引中可以使用负数,这将会从右往左计数。例如:

>>> word[-1] # 最后一个字符

'A'

>>> word[-2] # 倒数第二个字符

'p'

>>> word[-2:] # 最后两个字符

'pA'

>>> word[:-2] # 除了最后两个字符之外,其前面的所有字符

'Hel'

但要注意, -0 和 0 完全一样,所以 -0 不会从右开始计数!

>>> word[-0] # (既然 -0 等于 0)

'H'

超出范围的负数索引会被截去多余部分,但不要尝试在一个单元素索引(非分切索引)里使用:

>>> word[-100:]

'HelpA'

>>> word[-10] # 错误

Traceback (most recent call last):

File "", line 1, in ?

IndexError: string index out of range

有一个方法可以让您记住分切索引的工作方式,想像索引是指向字符之间,第一个字符左边的数字是 0。接着,有n个字符的字符串最后一个字符的右边是索引n,例如:

+---+---+---+---+---+

| H | e | l | p | A |

+---+---+---+---+---+

0 1 2 3 4 5

-5 -4 -3 -2 -1

第一行的数字 0...5 给出了字符串中索引的位置;第二行给出了相应的负数索引。分切部分从 i 到 j 分别由在边缘被标记为 i 和 j 的全部字符组成。

对于非负数分切部分,如果索引都在有效范围内,分切部分的长度就是索引的差值。例如, word[1:3] 的长度是2。

内置的函数 len() 用于返回一个字符串的长度:

>>> s = 'supercalifragilisticexpialidocious'

>>> len(s)

34

python3字符串方法_python3相关推荐

  1. python3 字符串方法

    python3 字符串方法 1.capitalize() 将字符串的第一个字符改为大写 1 >>> s='i love cnblog' 2 >>> s.capita ...

  2. [转载] python3 字符串比较函数_python3 字符串操作相关函数

    参考链接: Python 3字符串| expandtabs 整理自python基础|菜鸟教程 感谢菜鸟教程提供的优质资源! 1.capitalize() 将字符串的第一个字符转换为大写 实例 以下实例 ...

  3. python3字符串拼接_Python3基础 str + 字符串变量拼接

    ? ????   Python : 3.7.0 ??????   OS : Ubuntu 18.04.1 LTS ??????  IDE : PyCharm 2018.2.4 ????? Conda ...

  4. python3 字符串比较函数_python3.7字符串基本函数

    1.字符串的转化(str()): 1 n = 190 2 s1 =str(n)3 print(type(s1),s1) 结果: 190 2.首字母大写(capitalize()) 1 n = &quo ...

  5. python3 字符串比较_Python3 字符串

    isdigit 和 isnumeric的区别? def dn(): dgt=[] num=[] c=0 for c in range(2**16): ch=chr(c) if ch.isdigit() ...

  6. python字节流转化为字符串报错_python3.x,_关于Python3字符串转换为字节流的问题,python3.x - phpStudy...

    关于Python3字符串转换为字节流的问题 un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah ...

  7. 31个好用的 Python 字符串方法,建议收藏!

    作者 | 小F 来源 | 法纳斯特 字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它. 今天,就带大家学习一下31个最重要的内置字符串方法. 希望大家能从中找到对自己有帮 ...

  8. Python3 字符串

    Python3 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello ...

  9. python3.9特性_Python3.9的7个特性

    作者|PADHMA 编译|VK 来源|Analytics Vidhya 介绍 正如著名作家韦恩•W•戴尔所说, 改变你看待事物的方式 你所看待的事物也会改变 当Python的新版本问世时,许多人担心向 ...

最新文章

  1. python3实用编程技巧_适合Python初学者的一些编程技巧
  2. 2021年中国工业互联网安全大赛核能行业赛道writeup之机房密码
  3. linux 手动释放内存
  4. [转]Linux系统中用户帐户清洁与安全方法
  5. 【C/C++ string】之strcpy函数
  6. [福建集训2011][LOJ10111]相框
  7. 【转】ABP源码分析五:ABP初始化全过程
  8. pytorch查缺补漏
  9. 通过sql脚本可以从数据库中查到数据,但是通过jdbc却获取不到
  10. Python中的strip(),lstrip(),rstrip()的用法
  11. sklearn做文本聚类分析
  12. Word批量打印证书(证书套打)
  13. 微博商业数据挖掘方法
  14. 在Ubuntu上安装KDE(Kubuntu)
  15. 第9节-学会使用cookie-互动练习-“解密加密文章”
  16. 2019最值得关注的科技趋势【附罗振宇跨年演讲视频】
  17. 计算机域账号更改添加
  18. “无键盘输入”时代来临 搜狗输入法将推智能手环
  19. 直流负载线和交流负载线静态工作点分析,与非线性失真类型分析
  20. 苏州整车环境试验仓试验

热门文章

  1. Linux内核目录结构(2.6版本以上的kernel)
  2. MySQL线程共享内存参数
  3. 人生时间计算器_工具拯救效率,高效拯救人生!70个全国工程人实用小工具+算量表格...
  4. go数组去除重复_让我们一起啃算法----删除排序链表中的重复元素
  5. mysql notes
  6. 开源 serverless 产品原理剖析 - Kubeless
  7. 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft...
  8. [EF Core]数据迁移(二)
  9. visual studio 2015开发nodejs教程1搭建环境
  10. Android使用ViewPager+PhotoView实现图片查看器