若干个字符的集合就是一个字符串(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 * 3print(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 FilesPython 3.8python.exe这样的字符串,在 Python 程序中直接这样写肯定是不行的,不管是普通字符串还是长字符串。因为的特殊性,我们需要对字符串中的每个都进行转义,也就是写成D:Program FilesPython 3.8python.exe这种形式才行。
这种写法需要特别谨慎,稍有疏忽就会出错。为了解决转义字符的问题,Python 支持原始字符串。在原始字符串中,不会被当作转义字符,所有的内容都保持“原汁原味”的样子。
在普通字符串或者长字符串的开头加上r前缀,就变成了原始字符串,具体格式为:

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

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

rstr = r'D:Program FilesPython 3.8python.exe'print(rstr)

原始字符串中的引号

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

请看下面的代码:

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

输出结果:

I'm a great coder!

需要注意的是,Python 原始字符串中的反斜杠仍然会对引号进行转义,因此原始字符串的结尾处不能是反斜杠,否则字符串结尾处的引号会被转义,导致字符串不能正确结束。
在 Python 中有两种方式解决这个问题:一种方式是改用长字符串的写法,不要使用原始字符串;另一种方式是单独书写反斜杠,这是接下来要重点说明的。
例如想表示D:Program FilesPython 3.8,可以这样写:

str1 = r'D:Program FilesPython 3.8' ''print(str1)

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

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

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

  1. C# json解析字符串总是多出双引号_python小课堂25 - 你真的了解JSON嘛?

    python小课堂25 - 你真的了解JSON嘛? 前言 原谅我标题党了一波,哈哈哈哈!其实今天这篇文章算是题外番了,为什么这么说呢?因为JSON这个词,在当今的web环境下,作为一种最常使用的数据格 ...

  2. 解决特殊字符引起json解析错误--单引号、双引号转义

    解决特殊字符引起json解析错误–单引号.双引号转义 这几天在做一个题库管理,遇到了一个问题,将后台的json数据传到前台用parse解析时,出现了一个错误: Uncaught SyntaxError ...

  3. 【php基础入门】运算符、流程控制语句及单双引号区别和模块化编程的使用详解

    目录 字符串的单引号和双引号区别 PHP 运算符 算数运算符 字符运算符 关系运算符 逻辑运算符 赋值运算符 错误抑制符 三元运算符 PHP 流程控制 分支语句 循环语句 模块化编程 今日相关函数 今 ...

  4. C# json解析字符串总是多出双引号_json从立地到成佛

    本文原创作者bigsai(同公众号),本文以浅显易懂的方式给大家讲解自己所认知的json,如果有错误或者不准确地方还请大家给出指正,另外本文以关卡课程的方式在博学谷也是免费开放的,大家也可通过关卡方式 ...

  5. C# json解析字符串总是多出双引号_在JavaScript应用中将CSV转换为JSON

    来源:公众号<前端全栈开发者>(ID:by-zhangbing-dev) 将CSV转换为JSON是一项需要做很多工作的任务,在本文中,我将研究如何使用 csvtojson 模块将CSV转换 ...

  6. C# json解析字符串总是多出双引号_一篇长文带你在python里玩转Json数据

    Json简介 Json(JavaScript Object Notation) 很多网站都会用到Json格式来进行数据的传输和交换,就像上篇我提到的网易云音乐接口,它们返回的数据都是Json格式的. ...

  7. C# json解析字符串总是多出双引号_【c#资料】爬虫 Jumony-html 解析

    添加DLL IDE是Visual Studio 2013,我是在NugGet中搜索,并添加到项目中. 2. Jumony的常见用法 从网站获取html代码,将html字符串分析为标准的文档对象模型(D ...

  8. IntelliJ idea——》JSON字符串,自动转义双引号

    版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者. https://blog.csdn.net/weixin_43453386/article/detai ...

  9. 字符串处理--去除首尾双引号

    项目场景: 使用shell脚本处理带有双引号的文本 问题描述: 数据示例 "{""_index"":""uke_device_op ...

最新文章

  1. lombok 不用再写pojo的getset
  2. C#winform listbox多选的取值,采用DataRowView
  3. 【转】如何缩进你的代码?
  4. linux设备驱动开发专业论坛www.linuxdriver.cn诚征斑竹
  5. 优雅 | koa处理异常
  6. python进阶19垃圾回收GC
  7. axure8 事件改变样式_Axure RP 8 Beta更新介绍(三):部件样式
  8. linux下 mysql 学习(一)
  9. 网站服务器部署及优化---2---部署wordpress网站(rhel6.5)
  10. Linux搭建测试环境详细步骤
  11. 关于Git小乌龟的安装及简单使用
  12. 字节学妹的数据分析笔记,收藏
  13. 数据结构——八大排序算法(面试必备)
  14. 笔记本无线网口共享网络给以太网口
  15. DiyTomcat系列一、序言及项目架构
  16. 智能家居Zigbee和蓝牙哪个发展潜力更大?
  17. CAD中如何删除顽固图层?
  18. Python搭建开发环境
  19. Android颜色RGB值
  20. 夜来风雨声,Python协程知多少

热门文章

  1. 项目: 用C语言写一个音乐播放器
  2. 【PAT乙级】1051 复数乘法 (15 分)
  3. 【PAT乙级】1046 划拳 (15 分)
  4. 【C++】this指针
  5. 4.1.5 文件存储空间管理
  6. Maven配置JDK编译版本
  7. CSS设置段落的垂直对齐
  8. python中for循环和while循环的区别_Python中for循环和while循环有什么区别?
  9. Keras保存和载入训练好的模型和参数
  10. 线上 4 台机器同一时间全部 OOM,到底发生了什么?