您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

怎么修 ” DeprecationWarning:“无效的转义序列”在Python中?

怎么修 ” DeprecationWarning:“无效的转义序列”在Python中?

\是Python字符串文字中的转义字符

例如,如果要在字符串中放入制表符,则可以执行以下操作:

>>> print("foo \t bar")
foo      bar

如果要将文字\放在字符串中,则必须使用\\

>>> print("foo \\ bar")
foo \ bar

或使用“原始字符串”:

>>> print(r"foo \ bar")
foo \ bar

您不能只在需要时就在字符串文字添加反斜杠。如果反斜杠后面没有有效的转义序列之一,则该反斜杠无效,并且新版本的Python会显示弃用警告。例如\A不是转义序列:

$ python3.6 -Wd -c '"\A"'
<string>:1: DeprecationWarning: invalid escape sequence \A

如果您的反斜杠序列确实意外地与Python的转义序列之一匹配,但您不是故意这么做的,那就更糟了。

因此,您应始终使用原始字符串或\\

重要的是要记住,即使字符串打算用作正则表达式,字符串文字仍然是字符串文字Python的正则表达式语法支持以开头的许多特殊序列\。例如,\A匹配字符串的开头。但是\A在Python字符串文字中无效!这是无效的:

my_regex = "\Afoo"

相反,您应该这样做:

my_regex = r"\Afoo"

文档字符串是另一个要记住的内容:文档字符串也是字符串文字,并且无效\序列在文档字符串中也是无效的!r"""..."""如果原始字串()包含,请使用原始字串()\

python 2022/1/1 18:37:16 有241人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶