Я использую Python во встроенном терминале VS Code и пытаюсь объявить относительно большую функцию непосредственно в REPL.
Сама функция корректна и уже проверена ранее (она работает нормально при выполнении из файла .py или при запуске на моем компьютере с Windows).
Однако при выборе и отправке функции для объявлено, код неожиданно нарушается/дублируется, что приводит к синтаксической ошибке.
Упрощенный пример ошибки:
Код: Выделить всё
File "", line 29
raise Exception("Não foi possível identificar a maior prestaçã raise Exception("Não foi posslinha
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?
- части кода автоматически дублируются
- содержимое прерывается в середине строк
- присутствует смесь ранее набранных блоков кода
- терминал кажется «испортить» исходную структуру функции
Код: Выделить всё
def pegar_maior_prestacao(driver, wait):
linhas = wait.until(
EC.presence_of_all_elements_located(
(By.CSS_SELECTOR, "table.table tbody tr")
)
)
maior_prest = -1
dados_maior_linha = {}
for linha in linhas:
colunas = linha.find_elements(By.TAG_NAME, "td")
if len(colunas) < 11:
continue
try:
prest_n = int(limpar_texto(colunas[1].text))
except ValueError:
continue
if prest_n > maior_prest:
maior_prest = prest_n
dados_maior_linha = {
"num_prestacao": prest_n,
"data_vencimento": limpar_texto(colunas[2].text),
"data_pagamento": limpar_texto(colunas[3].text),
"historico": limpar_texto(colunas[4].text),
"forma_de_pagamento": limpar_texto(colunas[5].text),
"valor_pago": limpar_texto(colunas[10].text).replace("R$ ", "").strip()
}
if not dados_maior_linha:
raise Exception("Não foi possível identificar a maior prestação da tabela.")
return dados_maior_linha
Код: Выделить всё
def pegar_maior_prestacao(driver, wait):
... linhas = wait.until(
EC.presence_of_all_elements_located(
(By.CSS_SELECTOR, "table.table tbody tr")
)
)
maior_prest = -1
dados_maior_linha = {}
for linha in linhas:
colunas = linha.find_elements(By.TAG_NAME, "td")
if len(colunas) < 11:
continue
try:
prest_n = int(limpar_texto(colunas[1].text))
except ValueError:
continue
if prest_n > maior_prest:
maior_prest = prest_n
dados_maior_linha = {
"num_prestacao": prest_n,
"data_vencimento": limpar_texto(colunas[2].text),
"data_pagamento": limpar_texto(colunas[3].text),
"historico": limpar_texto(colunas[4].text),
"forma_de_pagamento": limpar_texto(colunas[5].text),
"valor_pago": limpar_texto(colunas[10].text).replace("R$ ", "").strip()
}
if not dados_maior_linha:
raise Exception("Não foi possível ident... EC.presence_of_all_elements_located(
(By.CSS_SELECTOR, "table.table tbody tr")
)
)
maior_prest = -1
dados_maior_linha = {}
for linha in linhas:
colunas = linha.find_elements(By.TAG_NAME, "td")
if len(colunas) < 11:
continue
try:
prest_n = int(limpar_texto(colunas[1].text))
except ValueError:
continue
if prest_n > maior_prest:
maior_prest = prest_n
dados_maior_linha = {
"num_prestacao": prest_n,
"data_vencimento": limpar_texto(colunas[2].text),
"data_pagamento": limpar_texto(colunas[3].text),
"historico": limpar_texto(colunas[4].text),
"forma_de_pagamento": limpar_texto(colunas[5].text),
"valor_pago": limpar_texto(colunas[10].text).replace("R$ ", "").strip()
}
if not dados_maior_linha:
raise Exception("Não foi possível ident raisor prestaçã raise Excepti... (By.CSS_SELECTOR, "table.table tbody tr")
... )
... )
... maior_prest = -1
... dados_maior_linha = {}
... for linha in linhas:
... colunas = linha.find_elements(By.TAG_NAME, "td")
... if len(colunas) < 11:
... continue
... try:
... prest_n = int(limpar_texto(colunas[1].text))
... except ValueError:
... continue
... if prest_n > maior_prest:
... maior_prest = prest_n
... dados_maior_linha = {
... "num_prestacao": prest_n,
... "data_vencimento": limpar_texto(colunas[2].text),
... "data_pagamento": limpar_texto(colunas[3].text),
... "historico": limpar_texto(colunas[4].text),
... "forma_de_pagamento": limpar_texto(colunas[5].text),
... "valor_pago": limpar_texto(colunas[10].text).replace("R$ ", "").strip()
... }
... if not dados_maior_linha:
... raise Exception("Não foi possível ident raisor prestaçã raise Exception("Não foi possível
File "", line 28
raise Exception("Não foi possível ident raisor prestaçã raise Exception("Não foi possível
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma