鱼C论坛

 找回密码
 立即注册
查看: 1007|回复: 4

[已解决]求助:为啥反斜杠时有时候是单斜杠有时候又是双斜杠

[复制链接]
发表于 2020-4-24 07:10:52 | 显示全部楼层 |阅读模式

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

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

x
例如:
>>>print ('\\我爱小甲鱼\\')
\我爱小甲鱼\
>>>str1 = '\\我爱小甲鱼\\'
'\\我爱小甲鱼\\'


print()函数和赋值输出的结果有什么讲究吗?
最佳答案
2020-4-24 07:33:08
print是打印给前台输出看的,反斜杠在print的时候会被转义掉一个。

而在str里,你赋值什么,就是什么。

相应的,你print打印你自己赋值的str时,反斜杠也会自动转义掉一个。


由于你是在IDLE里面操作的,所以对你来说,都是输出给你看的,看不出什么区别。

你可以把他写在程序里,然后打印出来再看下,就看出区别了。


或者说你可以换个思维理解下:

print相当于把你需要给用户看的东西,展示给用户看,那么一些原始的代码,你自然不想让用户看到。

或者说一些影响用户体验的东西,你不想展示给用户看。

而str赋值相当于你只是在后台的操作,还没准备用户看,当你想给用户看时,print即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-24 07:33:08 | 显示全部楼层    本楼为最佳答案   
print是打印给前台输出看的,反斜杠在print的时候会被转义掉一个。

而在str里,你赋值什么,就是什么。

相应的,你print打印你自己赋值的str时,反斜杠也会自动转义掉一个。


由于你是在IDLE里面操作的,所以对你来说,都是输出给你看的,看不出什么区别。

你可以把他写在程序里,然后打印出来再看下,就看出区别了。


或者说你可以换个思维理解下:

print相当于把你需要给用户看的东西,展示给用户看,那么一些原始的代码,你自然不想让用户看到。

或者说一些影响用户体验的东西,你不想展示给用户看。

而str赋值相当于你只是在后台的操作,还没准备用户看,当你想给用户看时,print即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-24 07:36:10 | 显示全部楼层
print 输出的是对象的 __str__ 方法返回的值,交互式中是返回的 __repr__ 方法返回的值。
__str__ 方法返回的值一般是给人阅读的,而 __repr__ 方法会告诉你如何重建这个对象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-24 07:37:44 | 显示全部楼层
str1查看字符串原始内容,字符串本身是什么这里就显示什么。
print(str1)查看的是格式化内容,其中\被当作转义字符处理。\\:用\转义\,就是显示为\。更多的有\n:换行符,\t:制表符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-24 21:49:08 From FishC Mobile | 显示全部楼层
麻麦皮 发表于 2020-4-24 07:37
str1查看字符串原始内容,字符串本身是什么这里就显示什么。
print(str1)查看的是格式化内容,其中\被当作 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 20:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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