Кодек «utf-8» не может декодировать байт 0xf3 »при печати переменной - PullRequest
0 голосов
/ 12 марта 2019

Так что я использовал Python довольно долгое время и всегда использовал следующую структуру для печати переменной:

dt = 5.5
print("dt = " + str(dt))

но я знаю, что есть более элегантная версия этой команды:

dt = 5.5
print("dt = %f" % dt)

Но я постоянно получаю ошибку:


Traceback (most recent call last):
  File "C:\Users\Komputer\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2980, in run_code
    self.showtraceback(running_compiled_code=True)

  File "C:\Users\Komputer\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 1849, in showtraceback
    self.showsyntaxerror(filename, running_compiled_code)

  File "C:\Users\Komputer\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 1911, in showsyntaxerror
    stb = self.SyntaxTB.structured_traceback(etype, value, elist)

  File "C:\Users\Komputer\Anaconda3\lib\site-packages\IPython\core\ultratb.py", line 1408, in structured_traceback
    newtext = linecache.getline(value.filename, value.lineno)

  File "C:\Users\Komputer\Anaconda3\lib\linecache.py", line 16, in getline
    lines = getlines(filename, module_globals)

  File "C:\Users\Komputer\Anaconda3\lib\linecache.py", line 47, in getlines
    return updatecache(filename, module_globals)

  File "C:\Users\Komputer\Anaconda3\lib\linecache.py", line 137, in updatecache
    lines = fp.readlines()

  File "C:\Users\Komputer\Anaconda3\lib\codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 83: invalid continuation byte

Что может быть не так? Я предполагаю, что это что-то с текстовыми кодеками, но я не знаю, где это можно изменить. Та же ошибка появляется при печати переменных другого типа. Я посмотрел несколько вопросов, где появляется эта ошибка, но ни один из них не касался печати. ​​

Я использую Spyder 3.2.8 (Python 3.6)

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Ошибка не в команде, которую вы отправили; Ваш исходный файл Python содержит только символы, отличные от UTF8. Найдите специальные символы и посмотрите, есть ли в текстовом редакторе, с которым вы его написали, опция выбора кодировки символов.

Редактировать: В кодировке latin1 байт 0xf3 обозначает ó, так что, возможно, проверьте, используете ли вы этот символ где-либо ...

0 голосов
/ 12 марта 2019

Спасибо большое!Вы, ребята, были правы, у меня был похожий, но не тот же код, который содержал букву «-» в печати. ​​

Интересно то, что вы можете напечатать «-» на print("ó"), но вы не можете сделатьэто путем добавления переменных в той же «печати», как print("ó" +str(dt)) или print("ó %f" %dt).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...