f-строка приводит к ошибке с разрывами строк в CDSW/linux

#python #linux #cdsw

Вопрос:

У меня странная проблема в python (3.6.1):

 a = 3 
f"""a= {a}""" # works
 

Но этого нет на рабочем столе Cloudera Data Science (система unix).:

 f"""a=
{a}"""  # error

Engine, line 1
"
  ^
SyntaxError: EOL while scanning string literal
 

В Windows я не могу воссоздать проблему, и в CDSW она также не была проблемой. У кого-нибудь была подобная проблема или кто мог бы указать мне на то, что может вызвать такую проблему?


Интересно, что это тоже работает:

 (f"""a=
{a}""")
 

Чтобы следить за комментариями:

 my_frstring= f"""hello 
world {a}"""
for c in my_frstring:print(name(c))
LATIN SMALL LETTER H
LATIN SMALL LETTER E
LATIN SMALL LETTER L
LATIN SMALL LETTER L
LATIN SMALL LETTER O
SPACE
ValueError: no such name
ValueError                                Traceback (most recent call last)
in engine
----> 1 for c in my_frstring:print(name(c))

ValueError: no such name
 

Комментарии:

1. Какая это версия python? только версии python 3.6 >= поддерживают f-строки

2. это прекрасно работает! python3.7 или новее

3. Может быть, у вас есть невидимый символ в строке. Попробуйте сделать from unicodedata import name;for c in the_fstring:print(name(c))

4. f-строки не добавлялись до Python 3.6 (см. Что нового в Python 3.6.14 ). Вы можете определить, какая версия у вас есть через print(sys.version) .

5. Чтобы обойти ошибку значения: for c in the_fstring:print(ord(c))