[英]Python backslash in string evaluation
我正在调试程序,并且对为什么我的一条语句评估为false感到困惑。 我正在检查数组中的倒数第二个索引(它是一个字符串)是否以'\\'字符开头。 我正在为后脚本编写解释器,因此这有助于我确定用户是否正在定义变量ex:\\ x。 我正在为我检查此内容的if语句的评估结果为false,我无法弄清原因。 有什么想法吗?
def psDef():
if(opstack[-2].startswith('\\')): # this is evaluating to false for some reason
name = opPop() #pop the name off the operand stack
value = opPop() #pop the value off the operand stack
define(name, value)
else:
print("Improper use of keyword: def")
def testLookup():
opPush("\n1")
opPush(3)
psDef()
if lookup("n1") != 3:
return False
return True
看看字符串文字
反斜杠(
\\
)字符用于转义具有特殊含义的字符,例如newline ,反斜杠本身或引号字符。
\\n
表示ASCII Linefeed (LF)
。因此,要在字符串文字中显示反斜杠,您需要使用另一个反斜杠对反斜杠进行转义。
像opPush("\\\\n1")
希望这可以帮助。
@McGrady已经指出您的错误。 如果更改此行:
opPush("\n1")
像这样:
opPush("\\n1")
您可能会得到想要的。
默认情况下,Python接受字符串中的反斜杠转义序列。 \\n
成为换行符。
要获得\\
和n
的实际序列,可以使用双反斜杠: '\\\\n'
或将字符串标记为“ raw”: r'\\n'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.