若干个字符的集合就是一个字符串(String)。Python 中的字符串必须由双引号" "或者单引号' '包围,具体格式为:

"字符串内容"
'字符串内容'

字符串的内容可以包含字母、标点、特殊符号、中文、日文等全世界的所有文字。

下面都是合法的字符串:

  • "123789"
  • "123abc"
  • "Python学习资料免费领取地址"
  • "https://jq.qq.com/?_wv=1027&k=pDEhzaCh"

Python 字符串中的双引号和单引号没有任何区别。而有些编程语言的双引号字符串可以解析变量,单引号字符串一律原样输出,例如 PHP 和 JavaScript。

处理字符串中的引号的

当字符串内容中出现引号时,我们需要进行特殊处理,否则 Python 会解析出错,例如:

'I'm a great coder!'

由于上面字符串中包含了单引号,此时 Python 会将字符串中的单引号与第一个单引号配对,这样就会把'I'当成字符串,而后面的m a great coder!'就变成了多余的内容,从而导致语法错误。

对于这种情况,我们有两种处理方案:

1) 对引号进行转义

在引号前面添加反斜杠\就可以对引号进行转义,让 Python 把它作为普通文本对待,例如:

str1 = 'I\'m a great coder!'
str2 = "引文双引号是\",中文双引号是“"
print(str1)
print(str2)

运行结果:

I'm a great coder!
引文双引号是",中文双引号是“

2) 使用不同的引号包围字符串

如果字符串内容中出现了单引号,那么我们可以使用双引号包围字符串,反之亦然。例如:

str1 = "I'm a great coder!"  #使用双引号包围含有单引号的字符串
str2 = '引文双引号是",中文双引号是“'  #使用单引号包围含有双引号的字符串
print(str1)
print(str2)

运行结果和上面相同。

字符串的换行

Python 不是格式自由的语言,它对程序的换行、缩进都有严格的语法要求。要想换行书写一个比较长的字符串,必须在行尾添加反斜杠\,请看下面的例子:

s2 = 'It took me six months to write this Python tutorial. \Please give me more support. \I will keep it updated.'

上面 s2 字符串的比较长,所以使用了转义字符\对字符串内容进行了换行,这样就可以把一个长字符串写成多行。

另外,Python 也支持表达式的换行,例如:

num = 20 + 3 / 4 + \2 * 3
print(num)

Python长字符串

使用三个单引号或者双引号可以对多行内容进行注释,这其实是 Python 长字符串的写法。所谓长字符串,就是可以直接换行(不用加反斜杠\)书写的字符串。

Python 长字符串由三个双引号"""或者三个单引号'''包围,语法格式如下:

"""长字符串内容"""
'''长字符串内容'''

在长字符串中放置单引号或者双引号不会导致解析错误。

如果长字符串没有赋值给任何变量,那么这个长字符串就不会起到任何作用,和一段普通的文本无异,相当于被注释掉了。

注意,此时 Python 解释器并不会忽略长字符串,也会按照语法解析,只是长字符串起不到实际作用而已。

当程序中有大段文本内容需要定义成字符串时,优先推荐使用长字符串形式,因为这种形式非常强大,可以在字符串中放置任何内容,包括单引号和双引号。

【实例】将长字符串赋值给变量:

longstr = '''It took me 6 months to write this Python tutorial.
Please give me a to 'thumb' to keep it updated.
The Python tutorial is available at https://jq.qq.com/?_wv=1027&k=pDEhzaCh'''
print(longstr)

长字符串中的换行、空格、缩进等空白符都会原样输出,所以你不能写成下面的样子:

longstr = '''It took me 6 months to write this Python tutorial.Please give me a to 'thumb' to keep it updated.The Python tutorial is available at https://jq.qq.com/?_wv=1027&k=pDEhzaCh
'''
print(longstr)

虽然这样写格式优美,但是输出结果将变成:

It took me 6 months to write this Python tutorial.
    Please give me a to 'thumb' to keep it updated.
    The Python tutorial is available at https://jq.qq.com/?_wv=1027&k=pDEhzaCh

字符串内容前后多出了两个空行,并且每一行的前面会多出四个空格。

Python原始字符串

Python 字符串中的反斜杠\有着特殊的作用,就是转义字符

转义字符有时候会带来一些麻烦,例如我要表示一个包含 Windows 路径D:\Program Files\Python 3.8\python.exe这样的字符串,在 Python 程序中直接这样写肯定是不行的,不管是普通字符串还是长字符串。因为\的特殊性,我们需要对字符串中的每个\都进行转义,也就是写成D:\\Program Files\\Python 3.8\\python.exe这种形式才行。

这种写法需要特别谨慎,稍有疏忽就会出错。为了解决转义字符的问题,Python 支持原始字符串。在原始字符串中,\不会被当作转义字符,所有的内容都保持“原汁原味”的样子。

在普通字符串或者长字符串的开头加上r前缀,就变成了原始字符串,具体格式为:

str1 = r'原始字符串内容'
str2 = r"""原始字符串内容"""

将上面的 Windows 路径改写成原始字符串的形式:

rstr = r'D:\Program Files\Python 3.8\python.exe'
print(rstr)

原始字符串中的引号

如果普通格式的原始字符串中出现引号,程序同样需要对引号进行转义,否则 Python 照样无法对字符串的引号精确配对;但是和普通字符串不同的是,此时用于转义的反斜杠会变成字符串内容的一部分。

请看下面的代码:

str1 = r'I\'m a great coder!'
print(str1)

输出结果:

I\'m a great coder!

需要注意的是,Python 原始字符串中的反斜杠仍然会对引号进行转义,因此原始字符串的结尾处不能是反斜杠,否则字符串结尾处的引号会被转义,导致字符串不能正确结束。

在 Python 中有两种方式解决这个问题:一种方式是改用长字符串的写法,不要使用原始字符串;另一种方式是单独书写反斜杠,这是接下来要重点说明的。

例如想表示D:\Program Files\Python 3.8\,可以这样写:

str1 = r'D:\Program Files\Python 3.8' '\\'
print(str1)

我们先写了一个原始字符串r'D:\Program Files\Python 3.8',紧接着又使用'\\'写了一个包含转义字符的普通字符串,Python 会自动将这两个字符串拼接在一起,所以上面代码的输出结果是:

由于这种写法涉及到了字符串拼接的相关知识,这里读者只需要了解即可,后续会对字符串拼接做详细介绍。

本文首发于python黑洞网,csdn同步更新

Python字符串详解相关推荐

  1. C# json解析字符串总是多出双引号_Python小白必备知识:Python字符串详解

    若干个字符的集合就是一个字符串(String).Python 中的字符串必须由双引号" "或者单引号' '包围,具体格式为: "字符串内容" '字符串内容' 字 ...

  2. Python字符串详解(包含长字符串和原始字符串)

    若干个字符的集合就是一个字符串(String).Python 中的字符串必须由双引号" "或者单引号' '包围,具体格式为: "字符串内容" '字符串内容' 字 ...

  3. python 字符串详解(附案例)

    目录 什么是python字符串 如何表示一个字符串 字符串的访问 print() 索引 for循环 打印字符--end() 切片split 范围选择符 [ n : m ] 字符串长度 使用len()函 ...

  4. Python字符串详解(2)

    字符串处理函数 一些以函数形式提供的字符串处理功能 1.len(x) 求取字符串的长度,输出为字符串x的长度 示例代码如下: print(len("一二三四五六七89")) 运行截 ...

  5. python 字符串详解

    Python有五大数据类型,分别是:使用type内置函数可以查看数据类型 1:str(字符串)    2:int(整数)    3:float(浮点数) 3:list(列表)     4:dict(字 ...

  6. python 字符串替换_Python基础教程,第四讲,字符串详解

    本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...

  7. python字符串是什么_python字符串详解

    字符串详解 在python中引号引起来的就是字符串 字符串是用来存储少量数据 索引 索引(下标) 通过索引可以精确的定位到某个元素 name = "meat" meat 每一个字母 ...

  8. Python基础语法day02字符串详解和列表

    今天是python基础语法入门第二天,大概总共会有四天左右.四天后就是对于python的numpy库的详细文章.那话不多说,我们开始. 目录 字符串详解 字符串独有功能 检测头尾字符 判断输入结果是否 ...

  9. python中的字符串详解(附实现文字跑马灯效果)

    python中的字符串详解 1.什么是字符串 ​ 相信大家对字符串应该是再熟悉不过了吧,因为日常生活中的一句话,或是路边的一则广告,其实它都相当于一个字符串,而顾名思义,字符串也就是一串串的由零个或多 ...

最新文章

  1. VM虚拟机报错:An error occurred during the file system check.
  2. 深入理解Linux中的文件权限
  3. ic卡消费管理系统_智能食堂管理解决方案 智能刷卡消费
  4. formal method online checking tool
  5. 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程...
  6. 好看的按钮组件_这个发光的外骨骼盔甲是什么?为什么它如此好看!
  7. 类与对象的关系 java 1615134802
  8. Git学习总结(15)——解决Win10 Git图标不显示问题
  9. 【翻译】什么是最重要的机器学习技术?
  10. hierbernate 关闭缓存设置_CDN与其他层面缓存
  11. matlab 展开多项式,matlab中freqz的用法以及多项式的展开
  12. java特殊字符大全_java 字符串特殊符号
  13. 2300. 咒语和药水的成功对数 ●●
  14. Cadence 导出变种BOM详细操作方法
  15. FreeXploiT HTML(Hacker Technology Mad Lead)
  16. java计算机毕业设计网络作业提交与批改系统源代码+数据库+系统+lw文档
  17. MySQL数据库安装包官网下载地址
  18. xampp mysql远程连接_远程访问xampp
  19. 外贸软件之冷冻食品进口贸易管理系统
  20. 为什么好多公司的开发语言从C#变成了Java?

热门文章

  1. select2搜索动态加载
  2. matlab思考,关于Matlab编程的思考(待续)
  3. mysql replace update_mysql的replace,存在更新,不存在插入
  4. (28)Verilog HDL循环语句:for
  5. 基于FPGA实现Aurora高速串行接口
  6. oracle导出报错04063,Oracle EXP导出报错的解决方法
  7. hololens 仿真器安装更改位置_HoloLens开发指南(1)---安装工具
  8. 异步选择WSAAsyncSelect
  9. C语言 JSON 解析库 - MJSON使用介绍
  10. 【Shell教程】一----什么是Shell