有一个像这样的Python问题:
>>> import string
>>> s = ‘mary11had a little lamb’
>>> print s
mary had a little lamb
实际上,当我自己尝试时,结果并非如此,但是:
mary11had a little lamb
有什么我不知道的Python可以让11从字符串中消失吗?
答案 0 :(得分:1)
正如Padraic在评论中所指出的那样 - 看起来在11之前缺少领先的反斜杠作为问题中的一个小错字。
所以应该阅读
>>> import string
>>> s = ‘mary\11had a little lamb’
>>> print s
mary had a little lamb
它将\ 11解释为数字定义的ascii字符的转义序列,在这种情况下是水平制表符(\ t)。由于没有限定,\nnn
被假定为八进制(而不是\xnn
,它被解释为十六进制)。
因此,如果您只在REPL中撰写>>> s
,那么您希望将其评估为'mary\thad a little lamb'
。
如果您输入了相同的结果:'mary\x09had a little lamb'