Hearted Youtube comments on Михаил Омельченко | Django School (@DjangoSchool) channel.
-
Михаил, всем не угодить, сколько людей столько мнений, а желаний еще больше. Я прошёл за почти год много уроков, от разных ребят, и каждый по своему классный со своими фишками и так далее. Но есть ребята которые просто шарят и рассказывают(деляться своими знаниями), а есть те которые сразу осязают. Например по питону чистому, много ребят шарят, все круто, но мало тех после которых начинаешь реально шарить. вот мало таких ребят, которые вот вроде бы и не разжевуют, но после них сразу все ясно, что да как, да почему.вот допустим в моем случае только Анрея Кудлая уроки по питону, и он же по ткинтеру.(после его уроков я сразу начал писать сам сходу, практически, хоть на питоне, хоть на ткинтере), хотя доэтого прошел курсов багацько. Так вот к чему эта вся эпопея, к тому что таких вот ребят после которых с первого раза все ясно, и практически сразу готов писать сам(утрированно) очень мало, а по джанго(русскоговорящих)вообще практически нет. И тут появился паренек Миша, который разжевует так что осталось только употребить и все. И люди все равно недовольны. Это вечная тема... а трекич класнный на фоне. Сорян что так развёрнуто расписал. Кому надо тот поймёт. А тебе Миша спасибо!
П.С. : люди! Человек пишет и учит реальным проэктам, ау, это живые бабки, тоесть вы совершенно бесплатно получаете схему написания готовых проэктов, с помощью которых можно хоть сейчас начинать зарабатывать, или просто работать и так далее. немногие платные курсы таким могут похвастаться...
82
-
54
-
46
-
37
-
35
-
32
-
29
-
26
-
23
-
22
-
20
-
18
-
18
-
17
-
17
-
17
-
16
-
16
-
15
-
15
-
15
-
15
-
14
-
14
-
14
-
13
-
13
-
12
-
12
-
12
-
12
-
12
-
11
-
11
-
Супер, без воды - и по существу. Кстати, спасибо за телеграм-группу, отзывчивые ребята, помогают дружно, от проф., до обычных новичков, кто, что знает...
Очень рад что наткнулся на ваши видео, только прошу, не бросайте начатое... Еще и админка впереди и оплаты и подписки, и ... на что хватит идей и фантазий )))
11
-
11
-
11
-
10
-
10
-
10
-
9
-
9
-
9
-
9
-
8
-
8
-
8
-
8
-
8
-
8
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
7
-
6
-
6
-
6
-
Михаил, не буду говорить, что Вы гуру! Вы и сами знаете, что это не так. Но у вас самый достойный контент(не показуха). Мне нравится Ваша честность, нравится как вы разбираете темы, попутно объясняя, что делаете, а ещё попутно «тупите», ну слегка, без обид) но в этом и вся ценность, Вы решаете эти же проблемы на стриме, а это ещё более бесценно чем накатанный по сценарию ролик! Успехов Вам! Давно за вами подглядываю, вы большой молодец!
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
6
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
5
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
4
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
3
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
Спасибо за совет книги Эрика Мэтиза ,кроме основ языка он еще хорошо учит наименованию объектов ,совмещал эту книгу еще с интерактивным курсом https://pythontutor.ru/. Кстати вы советовали тогда изучать книгу только до классов включительно и не зря . У Мэтиза даются просто инструменты ООП ,классы,подклассы,декораторы,но вот ,что такое ООП ,у него не рассказано .Словно дает машину ,а правила движения не рассказывает ,и код старой версии книги в главах про игру отличается достаточно заметно .Если в новой ,2020 года, там ООП,то в старой версии ,кажется больше на функциональное программирование похоже . Поэтому моя рекомендация книга "Мэтт Вайсфельд Объектно-ориентированное мышление ". А то пока не прочитал первые страниц 80 книги про ООП (а больше мне как начинающему и не надо пока),совсем не понимал принципы построения кода игры про вторжение инопланетян.Думаю ООП -это программирование ,которые после знакомства с инструментарием и легкой практики его использования ,требует уже знакомства с его принципами иначе и смысла нет.
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
2
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
Пришлось попотеть. Сделал программу для охранника стоянки:
😅
import json # Для работы с JSON
def load_data(file_name):
"""Загрузка данных из файла."""
try:
with open(file_name, "r", encoding="utf-8") as file:
return json.load(file)
except FileNotFoundError:
return {} # Если файл отсутствует, возвращает пустой словарь
except json.JSONDecodeError:
print("Ошибка чтения данных из файла. Проверьте формат.")
return {}
def save_data(file_name, data):
"""Сохранение данных в файл."""
with open(file_name, "w", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=False, indent=4)
def main():
file_name = "car_owners.json"
car_owners = load_data(file_name)
while True:
command = input("1 - Добавить\n2 - Удалить\n3 - Просмотр\n4 - Изменить запись\n0 -Выход\nВведите команду: ")
if command == '1': # Добавить запись
name = input("Введите имя владельца машины: ")
if car_owners.get(name):
print("Такое имя уже существует")
continue
car_make_and_model = input("Введите марку и модель машины: ")
car_number = input("Введите номер машины: ")
owner_phone_number = input("Введите номер телефона владельца машины: ")
car_owners[name] = [car_make_and_model, car_number, owner_phone_number]
print(f"Создана новая запись: Владелец: {name} Автомобиль: {car_make_and_model} с Гос. номером: /{car_number}/ Телефон для связи: {owner_phone_number}")
elif command == '2':
name = input("Введите имя владельца машины для удаления: ")
if name in car_owners:
car_owners.pop(name)
print(f"\nЗапись с Именем: {name}, Автомобиль: {car_make_and_model}, Гос. номер: /{car_number}/ удалена!")
else:
print(f"Запись с Именем: {name} не найдена!")
elif command == '3': # Просмотр всех записей
if not car_owners:
print("Список владельцев пуст.")
else:
print("\nСписок владельцев автомобилей:")
for name, (car_make_and_model, car_number, owner_phone_number) in car_owners.items():
print(f"Владелец: {name}, Автомобиль: {car_make_and_model}, Гос. номер:/{car_number}/ Телефон для связи: {owner_phone_number}")
elif command == '4': # Изменить запись
name = input("Введите имя владельца для изменения: ")
if name not in car_owners:
print("\nИмя не найдено, введите существующее имя!\n")
continue
new_car_make_and_model = input("Введите новую марку и модель автомобиля: ")
new_car_number = input("Введите новый номер автомобиля: ")
owner_phone_number = input("Введите номер телефона владельца машины: ")
car_owners[name] = [new_car_make_and_model, new_car_number, owner_phone_number]
print(f"Запись для {name} обновлена. Автомобиль: {new_car_make_and_model}, Гос. номер: /{new_car_number}/ Телефон для связи: {owner_phone_number}")
elif command == '0': # Выход из программы
save_data(file_name, car_owners)
print("Данные сохранены. Выход из программы.")
break
else:
print("Неизвестная программа. Попробуйте снова.")
main()
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1
-
1