Python中转义字符是个啥

news2024/11/23 20:52:20

文章目录

  • 前言
  • 一、转义字符是什么?
  • 二、常见的转义字符有哪些?
  • 总结


前言

昨天有粉丝问了我这个代码问题,如下图:

在这里插入图片描述

他很好奇代码都没有错误,怎么运行就报错,不知道有咩有小伙伴能看出问题在哪呢?

在这里插入图片描述

其实问题是出在文件路径这里,文件路径中有个tengchong的文件夹,文件夹本身是没错的,但是开头的t遇到反斜杠\给转义了,里面的路径就彻底出错了,这都是字符串中转义字符在作怪。

看到这里是不是很多小伙伴觉得很神奇,当然有的可能会懵。没关系,今天我就跟大家详细说说Python里面转义字符的用处,相信大家以后都会碰到这些问题。


一、转义字符是什么?

转义字符顾名思义就是把字符串当中字符原本的意思给转变为新的意思,那怎么转呢?肯定是有工具的,这个工具就是反斜杠“\”。反斜杠的作用就相当于给字符套个壳,然后让它重出江湖。

在这里插入图片描述

二、常见的转义字符有哪些?

(1)【 \ 】一个单独的反斜杠表示续行符

看到这里,有的小伙伴是不是很惊讶,不是说反斜杠给别的字符套壳,然后把人家转变含义吗,这怎么还给自己套上壳了,功力深厚啊!!!

那啥叫续行符呢?不知道大家还有没有印象,我之前的博客里面有一组代码是写了一首诗,里面就有续行符的出现,我们可以再看看:

在这里插入图片描述

看到上图大家应该就明白了,续行符的意思就是一行没有结束,但是要另起一行写,所以行尾要有这个符号,这也是为什么明明一首诗在代码里面写了六行,但是运行之后却看到都在一行显示。因为换行符的存在就昭示着这行代码是并没有结束的。

这里有小伙伴可能会有疑问:为什么我要加这些续行符上去呢?不加的话不是可以把一首诗漂亮的打印出来吗?其实这些续行符并不是我加上去的,是我写完一句诗,只要按下回车键另起下一行写,它就会帮我自动在上一行的行尾添加续行符。如果我们强行把这些续行符删了会出现什么结果呢?试试看:

在这里插入图片描述

满屏的错误哦,看过博主之前博客的小伙伴应该知道,在Python中单引号包裹的字符串只能写在一行,那现在我们强行写在多行就肯定会报错。所以续行符的作用就是当我们如果一行代码没有写完,想另起一行接着写,但是又不想让代码报错,就可以让它派上用场了。

在这里插入图片描述

(2)【 \n 】一个反斜杠加小写字母n表示换行符

一个小写字母n给套个反斜杠,n的含义瞬间三百六十度大转弯,变成了换行符。它的作用就是实现换行,如下图代码:

在这里插入图片描述

可以看到原本代码里面的一行字符串,就是因为中间加了\n,结果打印的时候\n后面的内容都换行输出了。

(3)【 \t 】一个反斜杠加小写字母t表示水平制表符

啥叫水平制表符呢?先不急,我们看组代码:

在这里插入图片描述

看完代码,小伙伴瞬间应该明白了,这个所谓制表符这么高大上的名字,不就是给字符中间打了间隔嘛。没错,其实水平制表符的作用就是相当于我们按了一次【Tab】键。

(4)【\"】一个反斜杠加双引号表示双引号

在这里插入图片描述

【"】 本身就是双引号,怎么还要你反斜杠转义呢?难不成转上瘾了,见啥都想转。当然不是的,既然是转义肯定就是转变了意思。大家想想双引号的作用是干嘛的?是不是包裹字符序列,让别人一看到就知道双引号里面的就是字符串。但是现在这个双引号被转义之后,没有任何作用,仅仅是个字符。就好像孙悟空原本神通广大,但是现在把他转义成凡人了,你还是你,但是你的本领没了。

那小伙伴肯定纳闷了:把双引号标识字符串的本领给弄没了,让它成为普通字符有啥用呢?有的场景下还真有用,比如下图:

在这里插入图片描述

这组代码有的小伙伴应该有印象,这是我之前写字符串那篇博客里面讲到的双引号里面包裹双引号会报错,包裹单引号就不会报错。但是现在我们又多了一样秘密武器:转义字符。

在这里插入图片描述

有了转义字符,这时候我们可以让双引号不再产生作用,仅仅只是个字符,那就不会报错了,如下图:

在这里插入图片描述

那依葫芦画瓢,我们应该知道了一个反斜杠加单引号表示单引号

(5)【 \\】一个反斜杠加一个反斜杠表示一个反斜杠

有了上面的双引号打前站,现在大家看到这种转义功能应该也不惊讶了。两个反斜杠就是以毒攻毒,前一个反斜杠把后一个反斜杠给转义了,让后一个反斜杠失去了转义功能,成为一个普通字符。现在我们博客开头的问题是不是有了一个解决方案呢:在路径中的\t前面再加个反斜杠,这样反斜杠在路径里面就只是一个路径分隔符,没有任何转义作用,如下图:

在这里插入图片描述

我们可以看到代码运行成功并且显示完整路径,那有小伙伴可能会问:上面这个路径里面只有一个转义字符,那如果有很多很多呢?像下面这种:

在这里插入图片描述

并且路径打印出来完全乱了,如果要打印原本完整合规的路径,我岂不是要每个转义字符前面都加个反斜杠吗?当然不用的,告诉大家一个秘密武器:在字符串的前面加上字母r(或R),那么该字符串将原样输出,其中的所有转义字符将不进行转义。我们试试:

在这里插入图片描述

可以看到完美打印出正确路径,当然换成大写字母R也是一样的,赶快去试试哦。


总结

以上就是今天给大家介绍的Python中的转义字符用法,最后再附上常用转义字符表:

转义字符说明
\续行符
\n换行符
\t水平制表符
\"双引号
\’单引号
\\一个反斜杠
\0
\f换页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cookie 和 Session 的工作流程

文章目录1.Cookie1.什么是Cookie2.Cookie可以干嘛3.Cookie实现登陆逻辑的流程2.session1.session是什么2.session有什么用3.session的工作流程3.Cookie 和 session的区别(重点)1.Cookie 1.什么是Cookie Cookie中存储的是字符串,是浏览器在本地持久化保存数据的一种方案 通过点…

2023春招:Javaweb面试锦囊

cookie 和 session 的区别?(必会) 存储位置不同 cookie 存放在客户端电脑,是一个磁盘文件。Ie 浏览器是可以从文件夹中找到。session 是存放在服务器内存中的一个对象。 chrome 浏览器进行安全处理,只能通过浏览器找…

圣诞 HTML 代码汇总

文章目录Part.I 音效圣诞树Part.II 圣诞树小球Part.III 简笔圣诞树圣诞节快到了,在网上找了一些 html 代码,觉得挺有意思的,顺带分享一下~ Part.I 音效圣诞树 来源:https://blog.csdn.net/m0_73309780/article/details/128176149…

面临项目失控?四个维度应对项目进度优化【洞见2】

常见的对进度的管理的流程是制定进度目标,WBS工作任务拆解,任务的时间估算,然后执行监督。 有时候这样的过程就会出现的进度延迟,而针对进度的延迟,往往企业多选择是通过加班赶工来完成。 项目进度优化方案 但是如…

【第一章 Linux特点,结构,网路连接模式,Linux目录结构】

第一章 Linux特点,结构,网路连接模式,Linux目录结构 1.操作系统: 用于管理和控制计算机所有软、硬件资源的一组程序。 2. Linux特点总结: ① 开放性; ② 多用户; ③ 多任务; ④ 良好…

喇叭天线设计

电磁喇叭天线是最简单而常用的微波天线。它的主要优点是结构简单,馈电简便,便于控制主面波束宽度和增益,频率特性好且损耗较小。它由波导逐渐张开来形成,其作用是加强方向性,这与声学喇叭的原理相似。若主模TE10的矩形…

python爬虫爬取网页上的图片

目录 一:爬虫基础 二:安装html解析的python工具 三:爬取网页图片 一:爬虫基础 爬虫基本过程: 1.请求标头 headers 2.创建一个会话 requests.Session 3.确定请求的路径 4.根据路径获取网页资源(HTML文件) 5.解析html…

UG/NX二次开发Siemens官方NXOPEN实例解析—2.6 CreateNote

列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析—2.1 AssemblyViewer UG/NX二次开发Siemens官方NXOPEN实例解析—2.2 Selection UG/NX二次开发Siemens官方NXOPEN实例解析—2.3 Selection_UIStyler UG/NX二次开发Siemens官方NXOPEN实例解析—2.4 File2Points UG/NX二次…

【java随笔】面向对象思维

1.怎么建立面向对象的思维方式 (1)先整体,再局部 (2)先抽象,再具体 (3)能做什么,再怎么做 2.如何学习面向对象 (1)语法 (2&#xff09…

执行docker restart [CONTAINER ID]命令时会把之前的参数都带上吗

我在搭建rocketmq时候,运行了好几个容器命令也比较长如下: # 启动 namesrv docker run -d -p 9876:9876 -v "D:/Program Files/rocketmq/namesrv/logs:/root/logs" -v "D:/Program Files/rocketmq/namesrv/store:/root/store" …

JAVA手机网站销售

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字):

Hazelcast 在springboot下的使用集成

一、Hazelcast简介 Hazelcast是一款由Hazelcast公司开发的基于jvm环境的为各种应用提供分布式集群服务的分布式缓存解决方案。可以嵌入到java、c、.net等开发的产品中使用。其主要功能有: 提供了 Map、Queue、MultiMap、Set、List、Semaphore、Atomic 等接口的分布…

RocketMQ消费者没有成功消费消息的问题排查

背景 今天下游同事反馈,有一些以取消的订单库存还原异常了,导致部分商品库存没有还原。查日志发现没有收到还原消息,但是查看发送方是可以确认消息是已经发了的,那么是什么原因导致消费者没有收到,或者收到后没有处理消…

算法刷题打卡第53天:排序数组---希尔排序

排序数组 难度:中等 给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums [5,2,3,1] 输出:[1,2,3,5]示例 2: 输入:nums [5,1,1,2,0,0] 输出:[0,0,1,1,2,5]希尔排…

六、Buffer缓冲区和Stream流

Buffer —— 缓冲区 JavaScript 提供了大量对字符串的便捷操作,但没有读取或操作二进制数据流机制,而在Node.js中可以直接用Buffer类提供的构造函数创建Buffer实例,一个Buffer实例代表一个缓冲区,Buffer的缓冲区专门用于存放二进制…

全球「数字游民」现状,有人已经72岁了

近年来,“数字游民”在国内越来越流行,特别是受疫情的影响,很多人对这种工作生活方式越来越喜欢,也越来越习惯,在此之前,当你告诉别人你是一名“数字游民”时,大家通常会认为你是没有工作的无业…

RocketMQ-双主双从集群+DashBorad搭建(云服务器)

文章目录一、理论垫基础1. NameServer 集群2. Producer集群3. Consumer集群4. Broker集群4.1 节点间数据同步 以及 消息的持久化4.2 Broker的集群模式4.2.1、单Master模式4.2.2、多Master模式4.2.3、多Master多Slave模式-异步复制4.2.4、多Master多Slave模式-同步双写最佳实践4…

APM32F103 RTC内部时钟源报警中断例程测试

APM32F103 RTC内部时钟源报警中断例程测试✨相关篇推荐《【开源电路】STM32F103VCT6开发板》📌关篇《APM32F103 RTC内部时钟源秒中断例程测试》📌本案例来源于官方的SDK固件包:https://www.geehy.com/support/apm32 🎈源码位置&am…

二极管:烧IC与我相干!

趁“羊”未到,还有心力接着上节继续讲。 话说,烧IC,不只本身IC烧,还火烧连营连带后端IC一并烧,为何呢!? 那得回到过去,必须翻翻《硬件先生》中的《电源知识-DC-DC》,从D…

GPU与CPU的性能比较及影响因素

CPU的主要指标是主频和线程。 Intel:后缀F表示无核显,后缀K代表可以超频,H代表移动端;AMD:后缀G代表有核显,后缀X代表加强版,后缀XT代表超级加强版。 CPU 常见计算操作: 数据加载、…