Почему он продолжает возвращать мне «theIndentationError: неожиданный отступ» и когда я помещаю тот же код в терминал, все ли в порядке?

#python #console #spyder

#python #консоль #spyder

Вопрос:

это моя первая попытка с python, и я использую среду spider.. Я пытаюсь выполнить очень простой код

 # -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import numpy as np
 x = np.array([1,2,3])
 y = np.array([4,5,6])
 z= x y
 print (z)
  

Когда я ввожу этот код в виде файла .py, я получаю следующую ошибку

 file x = np.array([1,2,3])
    ^
IndentationError: unexpected indent
  

Но когда я набираю этот код в консоли, все в порядке!Почему это происходит?

Ответ №1:

Все 5 строк кода, которые вы показали, должны иметь одинаковый уровень отступа, что означает, что вы должны удалить пробелы (или табуляции), которые находятся перед последними 4 строками, или добавить пробелы перед первой строкой (оператор import).

Вы кодируете (с ошибкой):

 import numpy as np
 x = np.array([1,2,3])
 y = np.array([4,5,6])
 z= x y
 print (z)
  

Но это должно выглядеть так (все 5 строк начинаются с одной и той же позиции):

 import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
z = x   y
print(z)
  

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

1. кажется, python очень строг в отношении пробелов… Спасибо!

2. @wannabeadev Для Python не важно, сколько в нем пробелов, но для каждого уровня отступа должно быть одинаковое количество пробелов. Это для того, чтобы нам не нужно было использовать фигурные скобки {} , которые другие языки, такие как C или Java, используют для обозначения блоков