Pyflakes возвращает ошибочную синтаксическую ошибку

#python #python-3.x #syntax-error

#python #python-3.x #синтаксическая ошибка

Вопрос:

Я пишу программу, которая генерирует случайную игральную карту и рисует ее в .stdout терминале. Он продолжает выдавать мне SyntaxError: invalid syntax , когда я трижды проверил свой код, и все правильно.

Ввод:

 def drawCard():
    #cs and cr are global variables I declared in another function, so please disregard those.
    #also, Italic(), Bold(), etc are custom escape methods I made to format my text.
    #The indexing on cr and cs is to print the first character in the string (they are strings).
    cardlayout = f" ______n|{cr[0]}|    |n|{Bold(Underline(cs[0]))}{End()}|    |n|  {Italic('0'   cr)}{End()} _|n|    |{Bold(cs[0])}{End()}|n|____{Underline('|'   cr[0])}{End()}|"
    if cr == '10':
        cardlayout = f" ______n|{cr}|   |n|{Bold(Underline(cs[0]))}{End()}|    |n|  {Italic(cr)}{End()} _|n|    |{Bold(cs[0])}{End()}|n|{Underline('   |'   cr)}{End()}|"
    if cr == 'Ace' or cr == 'Jack' or cr == 'Queen' or cr == 'King':
         cardlayout = f" ______n|{cr[0]}|    |n|{Bold(Underline(cs[0]))}{End()}|    |n| {Italic("a ")}{End()}_|n|    |{Bold(cs[0])}{End()}|n|____{Underline('|J')}{End()}|"
    print(cardlayout)
 

Вывод:

 File "main.py", line 24
    cardlayout = f" ______n|{cr[0]}|    |n|{Bold(Underline(cs[0]))}{End()}|    |n| {Italic("a ")}{End()}_|n|    |{Bold(cs[0])}{End()}|n|____{Underline('|J')}{End()}|"
                                                                                               ^
SyntaxError: invalid syntax
 

Как мой синтаксис недействителен здесь?

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

1. Вся строка заключена в двойные кавычки, и, помещая другую строку в двойных кавычках внутри отформатированной части, вы случайно заканчиваете строку раньше (и f"..."a это синтаксическая ошибка). Если вы замените рассматриваемые двойные кавычки одинарными кавычками, все должно быть в порядке.

2. @GreenCloakGuy Я хочу, чтобы строка внутри Italic() содержала одинарные кавычки, вот в чем проблема. Если я попытаюсь использовать тройные кавычки, я получу другую ошибку. Он также не будет принимать escape-символы.