鱼C论坛

 找回密码
 立即注册
查看: 1726|回复: 7

《零基础入门学习Python》第003讲:小插曲之变量和字符串

[复制链接]
发表于 2021-11-21 22:25:56 | 显示全部楼层 |阅读模式

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

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

x
如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?

str = r'C:\Program Files\FishC\Good''\\'
这是如何实现运行的,理解不了
请求各位大神帮忙理解,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-21 22:46:17 | 显示全部楼层
就是转义,没有什么技巧,记下来就行。不仅python,其他语言可能也会涉及到,尤其是在linux环境下。
https://www.runoob.com/python3/python3-string.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 23:17:47 | 显示全部楼层
本帖最后由 lightninng 于 2021-11-22 00:01 编辑

一个很有意思的问题,我也很感兴趣。
先说结论,正如楼上所说这是python的固定用法,当你想在一个转义字符串中以\结尾,就要在非转义字符串后面再接一个显示\的转义字符串。虽然有了结论,但原理并不清楚。

根据百度的说法(https://www.cnblogs.com/songzhenhua/p/13236794.html),非转义字符串是不能以\结尾的,否则会被认为是一个换行符,然后后面即便输入对应的引号,字符串也不会结束
我们在python idle中做一点点尝试:
>>> print('test1\\ttest2\\')  #使用转义字符串输入test\test2\
test1\ttest2\
>>> print(r'test1\ttest2\')  #使用非转义字符串输入test\test2\
      
SyntaxError: EOL while scanning string literal
这里有个有意思的点是,当反斜杠后面再加其他字符时,\似乎又不会被认为换行了又可以正常输出
>>> print(r'test1\ttest2\test3')
test1\ttest2\test3
我们来看看可以获得正确输出的方式
>>> print(r'test1\test2''\\')
test1\test2\
为了加深理解我们再试试别的方式
>>> print(r'test1\test2'                                                        '\\')
test1\test2\
>>> print(r'test1\test2'"\\")
test1\test2\
然后再来看看一些有意思的情况
>>> print(r'test1\ttest2\'\\')
test1\ttest2\'\\
>>> print(r'test1\ttest2\''\\')
      
SyntaxError: unexpected character after line continuation character
其实有意思的情况还有很多,不同情况下有不同的解释,比如三个同样的引号出现在不同的位置,最终获得的结果也不一样,楼主自行尝试,这确实是个很有意思的问题,希望楼主这种愿意学习的朋友越来越多~~

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

使用道具 举报

 楼主| 发表于 2021-11-21 23:44:25 | 显示全部楼层
lightninng 发表于 2021-11-21 23:17
一个很有意思的问题,我也很感兴趣。
先说结论,正如楼上所说这是python的固定用法,当你想在一个转义字符 ...

谢谢你的回答,说的很详细,因为今天是看视频学习python的第一天,学习的东西很有限,能再请问一下print(r'test1\test2' '\\')这一句的结果是将'\\'与前面的和并得到的吗,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 23:45:05 | 显示全部楼层
suchocolate 发表于 2021-11-21 22:46
就是转义,没有什么技巧,记下来就行。不仅python,其他语言可能也会涉及到,尤其是在linux环境下。
https ...

感谢你的回答和分享的知识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 23:59:33 | 显示全部楼层
Jay8 发表于 2021-11-21 23:44
谢谢你的回答,说的很详细,因为今天是看视频学习python的第一天,学习的东西很有限,能再请问一下print( ...


仔细看第四段代码,就是为了加深对这个模式的理解才试的~~
另外,自己把代码敲一敲试一试,变成这东西,光动手和光动脑都是学不好的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-11-22 01:11:05 | 显示全部楼层
lightninng 发表于 2021-11-21 23:59
仔细看第四段代码,就是为了加深对这个模式的理解才试的~~
另外,自己把代码敲一敲试一试,变成这东西 ...

好的,非常感谢鱼油大神的回答和建议
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 08:23:01 | 显示全部楼层
Jay8 发表于 2021-11-22 01:11
好的,非常感谢鱼油大神的回答和建议

不客气,有什么问题,欢迎来探讨...
PS:我不是什么大神,回答问题也是为了学习。一起学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 18:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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