鱼C论坛

 找回密码
 立即注册
查看: 1646|回复: 8

[已解决]转义符\n和直接反斜杠\有什么区别呢?

[复制链接]
发表于 2020-6-26 19:50:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼之前的练习使用\n进行转义
>>>print(“i love fishc.com\n” *8)
print(“i love fishc.com\n” *8)
而在003课程中直接的反斜杠\也起到了转义作用
>>>str='C:\now'
>>>
str='C:\now'

请问鱼油大哥二者有什么区别呢?
最佳答案
2020-6-26 19:53:55
本帖最后由 Twilight6 于 2020-6-26 20:08 编辑



\ 本身就是转义字符呀,当你 \ 一个合法的转义字符,那么会有这个转义字符的效果

而如果你 \ 的后面是个不合法的转义字符,Python 会默认你是要在字符串打印 \ 这个字符

而你第的 \n 只要在一起,就表示有换行的效果了,就是因为 \n 是合法的转义字符,表示换行作用,所以就有换行作用哈

准确的说 ,假设你填的转义字符(比如:\q)是不存在的,所以 Python 默认会把你加上 一个 \ 来转义你字符串里的 \ 以来达到打印的效果


转义字符表:


                               
登录/注册后可看大图



Python 是无法单独输出一个 \ 的,因为 \n 才算一个字符

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-26 19:52:33 | 显示全部楼层
二者没有区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-26 19:53:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-26 20:08 编辑



\ 本身就是转义字符呀,当你 \ 一个合法的转义字符,那么会有这个转义字符的效果

而如果你 \ 的后面是个不合法的转义字符,Python 会默认你是要在字符串打印 \ 这个字符

而你第的 \n 只要在一起,就表示有换行的效果了,就是因为 \n 是合法的转义字符,表示换行作用,所以就有换行作用哈

准确的说 ,假设你填的转义字符(比如:\q)是不存在的,所以 Python 默认会把你加上 一个 \ 来转义你字符串里的 \ 以来达到打印的效果


转义字符表:


                               
登录/注册后可看大图



Python 是无法单独输出一个 \ 的,因为 \n 才算一个字符

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-6-26 21:38:22 | 显示全部楼层
你print一下第二个str变量就知道了,不过强烈建议你以后不要用内置函数名做变量名,用str1、str2都行,否则后果难测。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-26 22:35:04 | 显示全部楼层

感谢鱼油大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-26 22:35:39 | 显示全部楼层
Twilight6 发表于 2020-6-26 19:53
\ 本身就是转义字符呀,当你 \ 一个合法的转义字符,那么会有这个转义字符的效果

而如果你 \ 的后 ...

感谢鱼油大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-26 22:36:11 | 显示全部楼层
txxcat 发表于 2020-6-26 21:38
你print一下第二个str变量就知道了,不过强烈建议你以后不要用内置函数名做变量名,用str1、str2都行,否则 ...

谢谢大哥提醒呀~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-26 22:51:19 | 显示全部楼层
Twilight6 发表于 2020-6-26 19:53
\ 本身就是转义字符呀,当你 \ 一个合法的转义字符,那么会有这个转义字符的效果

而如果你 \ 的后 ...
str='C:\now'
鱼油大哥我还是有些不理解呢,上边这个\内容应该不合法吧,那如果print(str)
print(str)
运行结果
C:
ow
应该python直接打印now才对呀
为什么之后也会换行呢
大哥对不起,小鱼有些不理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-26 22:54:49 | 显示全部楼层
793578477 发表于 2020-6-26 22:51
鱼油大哥我还是有些不理解呢,上边这个\内容应该不合法吧,那如果print(str)

运行结果

我 3 L 说的蛮清楚的咯 你没认真看哈:

而你的 \n 只要在一起,就表示有换行的效果了,就是因为 \n 是合法的转义字符,表示换行作用,所以就有换行作用哈


除非你加了原始字符,或者把 \ 转义了才没有效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 07:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表