![](/img/trans.png)
[英]Why does my Selenium code work in the Python Shell but not from a file?
[英]Does escaping work differently in Python shell? (Compared to code in file)
在Python 3.7 Shell中,转义字符串时会得到一些意外的结果,请参见下面的示例。 在python 2.7 shell中获得了相同的结果。
快速阅读Python文档似乎表明转义可以在字符串中完成,但似乎并未说它不能在shell中使用。 (或者我错过了)。
有人可以解释为什么转义似乎没有按预期进行。
范例一:
输入: >>> "I am 6'2\\" tall"
输出:
'I am 6\\'2" tall'
而>>> print("I am 6'2\\" tall")
回报(我所期望的):
I am 6'2" tall
(我也想知道反斜杠在意外结果中如何最终落在6之后?)
另一个例子:
输入: >>> "\\tI'm tabbed in."
输出: "\\tI'm tabbed in."
在print()内部时,该选项卡将替换为适当的选项卡。 (无法显示它,因为stackoverflow似乎删除了我在代码块内使用的行前面的制表符/空格)。
交互式外壳将为您提供上一个命令的返回值的表示形式 。 它使用repr()
方法为您提供该值,该方法试图给出该值的有效源代码表示形式 ; 即,您可以按原样复制并粘贴到代码中的内容。
print
,另一方面输出字符串到控制台的内容,而不考虑是否将是有效的源代码或没有。
基本上,当您按原样在终端中输入字符串时,终端会调用字符串的repr magic方法。 在您通过字符串调用print
,它在其上调用__str__
方法:
s = "I am 6'2\" tall"
s.__repr__()
'\'I am 6\\\'2" tall\''
s.__str__()
'I am 6\'2" tall'
有关这两种方法之间的比较,请参见更多内容: str vs. repr以及__str__和__repr__之间的 SO 差异? 题。
祝您未来的python冒险好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.