Типичные ошибки новичков
Это сборник самых частых ошибок, которые делают в начале. Прочитай, и избежишь недель разочарований.
1. Копирование кода без понимания
Симптом: Нашёл код в интернете, вставил, работает. Изменил что-то, сломалось. Не понимаешь почему.
Решение: Прежде чем вставить чужой код, прочитай его строка за строкой и объясни себе что делает каждая строка. Если не можешь объяснить, значит не понимаешь, и использовать опасно.
2. Не читать сообщения об ошибках
Симптом: Появляется красный текст, паника, закрываю, пробую что-то наугад.
Решение: Ошибки, это подсказки. Python говорит тебе что пошло не так и где. Читай сверху вниз:
Traceback (most recent call last):
File "script.py", line 5, in <module>
result = 10 / value
ZeroDivisionError: division by zero
Здесь написано: в файле script.py, строка 5, попытка делить на ноль.
3. Переменные с именами x, a, b
# Плохо, через неделю не вспомнишь что это
x = 1500
y = 3
z = x * y
# Хорошо, читается как текст
price = 1500
quantity = 3
total = price * quantity
Называй переменные так, чтобы код читался как предложение.
4. Слишком длинные функции
# Плохо, функция делает 10 разных вещей
def process():
# ... 100 строк кода ...
# Хорошо, каждая функция делает одно
def load_data(): ...
def clean_data(): ...
def analyze_data(): ...
def save_report(): ...
Функция должна помещаться на экране. Если нет, раздели.
5. Не проверять входные данные
# Плохо, упадёт если список пустой
def average(numbers):
return sum(numbers) / len(numbers)
# Хорошо, защита от пустого списка
def average(numbers):
if not numbers:
return 0
return sum(numbers) / len(numbers)
6. Пытаться написать всё сразу
Симптом: Начинаешь писать большую программу сразу, застреваешь, бросаешь.
Решение: Декомпозиция. Разбей задачу на маленькие шаги. Реши первый шаг, убедись что работает, потом следующий.
7. Не пользоваться print() для отладки
Когда что-то не работает, добавляй print() чтобы видеть что происходит:
def process_users(users):
result = []
for user in users:
print(f"Обрабатываю: {user}") # временный debug print
if user["active"]:
result.append(user["name"])
return result
После отладки убери лишние print.
💡 Главная мысль: Большинство ошибок новичков, не технические, а методологические. Пиши понятный код, читай ошибки, разбивай задачи на маленькие части.