Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #197465

Re: backslash in triple quoted string

From Thomas Passin <list1@tompassin.net>
Newsgroups comp.lang.python
Subject Re: backslash in triple quoted string
Date 2025-05-13 09:34 -0400
Message-ID <mailman.52.1747155796.3008.python-list@python.org> (permalink)
References <CA+HdcZhMPvojVkAnGNy6-qA1Lf8LDG_Wjxef0xfSNQzU=BUEzw@mail.gmail.com> <CAJQBtgmV0+EViR6yWoY22VjHiVZOD6eaPiAhDfUMJRQRj=PfCQ@mail.gmail.com> <CAJQBtgk7ZoURixi3404asBzJX4X2A5pbCsd6SVWuqbqnMgOgQw@mail.gmail.com> <08f8c6cc-1cb0-4bb1-860f-d9cd56f6a4af@tompassin.net>

Show all headers | View raw


On 5/8/2025 2:05 AM, Left Right via Python-list wrote:
> Also, it appears that the change linked above is a lie:
> 
> https://docs.python.org/3/reference/lexical_analysis.html#grammar-token-python-grammar-longstringitem
> 
> According to the grammar, any character can follow backslash in a
> valid Python program. The warning / error raised by this code should
> not be a syntax error / warning because the syntax is correct.

"Changed in version 3.12: Unrecognized escape sequences produce a 
SyntaxWarning. In a future Python version they will be eventually a 
SyntaxError."

See https://docs.python.org/3/reference/lexical_analysis.html#strings

Test case for "\" in triple-quoted string:

[code]
>>> def f():
...    """\hello"""
<stdin>:2: SyntaxWarning: invalid escape sequence '\h'
...    print('hi')
...

>>> f()
hi
[/code]

This example fits the documentation exactly. A SyntaxWarning is emitted 
for the unrecognized escape sequence "\h". The program runs as intended.

Please let's drop all the OT back-and-forth.

> On Thu, May 8, 2025 at 7:54 AM Left Right <olegsivokon@gmail.com> wrote:
>>
>> I think it could be this:
>>
>> A backslash-character pair that is not a valid escape sequence now
>> generates a SyntaxWarning, instead of DeprecationWarning. For example,
>> re.compile("\d+\.\d+") now emits a SyntaxWarning ("\d" is an invalid
>> escape sequence, use raw strings for regular expression:
>> re.compile(r"\d+\.\d+")). In a future Python version, SyntaxError will
>> eventually be raised, instead of SyntaxWarning. (Contributed by Victor
>> Stinner in gh-98401.)
>>
>> Found in:
>> https://docs.python.org/3/whatsnew/3.12.html#other-language-changes
>>
>> It's not supposed to crash your program though. If the program crashes
>> because of it, it's a bug in Python.
>>
>> On Thu, May 8, 2025 at 7:00 AM Bob van der Poel via Python-list
>> <python-list@python.org> wrote:
>>>
>>> Did something change in python buggering up my use of a "\ " sequence in a
>>> triple quoted string?
>>>
>>> I have yet to go through my archive on the program, but I tried to run it
>>> today and it crashed quite spectacularly when it hit a """ .... """ line
>>> being used as a comment at the top of a function. I changed the "\" to a
>>> "/" and all is well now.
>>>
>>>
>>> --
>>>
>>> **** Listen to my FREE CD at http://www.mellowood.ca/music/cedars ****
>>> Bob van der Poel ** Wynndel, British Columbia, CANADA **
>>> EMAIL: bob@mellowood.ca
>>> WWW:   http://www.mellowood.ca
>>> --
>>> https://mail.python.org/mailman/listinfo/python-list

Back to comp.lang.python | Previous | Next | Find similar


Thread

Re: backslash in triple quoted string Thomas Passin <list1@tompassin.net> - 2025-05-13 09:34 -0400

csiph-web