#python #syntax-error
#python #синтаксическая ошибка
Вопрос:
как следует из названия, я получаю ошибку sytax при
temp_string = lines[1][equals_pos 2:] from datetime import date
и я не уверен, как это исправить или что не так.
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos 2:] from datetime import date
from apscheduler.scheduler import Scheduler
temp_c = float(temp_string) / 1000.0
temp_f = temp_c * 9.0 / 5.0 32.0
return temp_f
Комментарии:
1.
from datetime import date
должно быть в верхней части модуля. По крайней мере, не встроенный2. оператор import должен быть отдельной строкой, а также должен находиться в верхней части вашего файла
3. Кто-то перетащил две верхние строки кода куда-то вниз (или ошибка копирования-вставки). Неуместны два оператора импорта
4. оба
from .... import ...
оператора находятся не в том месте, они должны быть в верхней части вашего файла, по одному оператору в каждой строке. Возможно, вы скопировали / вставили непреднамеренно. При подобной ошибке вы должны очень внимательно прочитать каждую строку и попытаться понять, почему Python жалуется — он всегда прав.5. Чтобы повторить то, что говорят другие пользователи, вот соответствующий раздел в официальных рекомендациях по стилю python. Стоит добавить в закладки и сослаться на рекомендации PEP8
Ответ №1:
Оператор import должен быть в отдельной строке
from datetime import date
from apscheduler.scheduler import Scheduler
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos 2:]
temp_c = float(temp_string) / 1000.0
temp_f = temp_c * 9.0 / 5.0 32.0
return temp_f