《零基础入门学习Python》第003讲:小插曲之变量和字符串
如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?str = r'C:\Program Files\FishC\Good''\\'
这是如何实现运行的,理解不了
请求各位大神帮忙理解,谢谢 就是转义,没有什么技巧,记下来就行。不仅python,其他语言可能也会涉及到,尤其是在linux环境下。
https://www.runoob.com/python3/python3-string.html 本帖最后由 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其实有意思的情况还有很多,不同情况下有不同的解释,比如三个同样的引号出现在不同的位置,最终获得的结果也不一样,楼主自行尝试,这确实是个很有意思的问题,希望楼主这种愿意学习的朋友越来越多~~
lightninng 发表于 2021-11-21 23:17
一个很有意思的问题,我也很感兴趣。
先说结论,正如楼上所说这是python的固定用法,当你想在一个转义字符 ...
谢谢你的回答,说的很详细,因为今天是看视频学习python的第一天,学习的东西很有限,能再请问一下print(r'test1\test2' '\\')这一句的结果是将'\\'与前面的和并得到的吗, suchocolate 发表于 2021-11-21 22:46
就是转义,没有什么技巧,记下来就行。不仅python,其他语言可能也会涉及到,尤其是在linux环境下。
https ...
感谢你的回答和分享的知识 Jay8 发表于 2021-11-21 23:44
谢谢你的回答,说的很详细,因为今天是看视频学习python的第一天,学习的东西很有限,能再请问一下print( ...
仔细看第四段代码,就是为了加深对这个模式的理解才试的~~
另外,自己把代码敲一敲试一试,变成这东西,光动手和光动脑都是学不好的。 lightninng 发表于 2021-11-21 23:59
仔细看第四段代码,就是为了加深对这个模式的理解才试的~~
另外,自己把代码敲一敲试一试,变成这东西 ...
好的,非常感谢鱼油大神的回答和建议 Jay8 发表于 2021-11-22 01:11
好的,非常感谢鱼油大神的回答和建议
不客气,有什么问题,欢迎来探讨...
PS:我不是什么大神,回答问题也是为了学习。一起学习{:5_110:}
页:
[1]