python 1000 7 код

Экспекто Питонум: 15 заклинаний на змеином языке

Короткие программы на Python — первый шаг к реальной магии кода.

python 1000 7 код. 5bbb8d9e539f1b5742f17ecabbb7a364. python 1000 7 код фото. python 1000 7 код-5bbb8d9e539f1b5742f17ecabbb7a364. картинка python 1000 7 код. картинка 5bbb8d9e539f1b5742f17ecabbb7a364. Короткие программы на Python — первый шаг к реальной магии кода.

python 1000 7 код. 33cbd6e72b17503906bca9a9a8b478f9. python 1000 7 код фото. python 1000 7 код-33cbd6e72b17503906bca9a9a8b478f9. картинка python 1000 7 код. картинка 33cbd6e72b17503906bca9a9a8b478f9. Короткие программы на Python — первый шаг к реальной магии кода.

Веб-разработка и научные вычисления, роботы и Data Science — Python повсюду. На нём пишут и масштабные проекты, и короткие программы (скрипты, или сниппеты), полезные в повседневных рабочих и учебных задачах.

Собрали для вас коллекцию таких небольших «заклинаний». Основной принцип: минимум строк кода, в котором можно разобраться максимум за полминуты. Сову из Хогвартса мы не гарантируем, но удивить однокашников, коллег и интервьюеров, уверены, у вас получится. Вперёд!

Внимание: устное произнесение заклинаний в текущей версии Python не поддерживается. Вам потребуется компьютер, интерпретатор и код.

python 1000 7 код. 07571802082021 accf102caaa970ce65d217b9ae9a8e9a57caa67c. python 1000 7 код фото. python 1000 7 код-07571802082021 accf102caaa970ce65d217b9ae9a8e9a57caa67c. картинка python 1000 7 код. картинка 07571802082021 accf102caaa970ce65d217b9ae9a8e9a57caa67c. Короткие программы на Python — первый шаг к реальной магии кода.

python 1000 7 код. 10521419102020 b0d69320ae054e3e4f4f4cae4235bc738daeea5c. python 1000 7 код фото. python 1000 7 код-10521419102020 b0d69320ae054e3e4f4f4cae4235bc738daeea5c. картинка python 1000 7 код. картинка 10521419102020 b0d69320ae054e3e4f4f4cae4235bc738daeea5c. Короткие программы на Python — первый шаг к реальной магии кода.

С некоторых пор утверждает, что он data scientist. В предыдущих сезонах выдавал себя за математика, звукорежиссёра, радиоведущего, переводчика, писателя. Кандидат наук, но не точных. Бесстрашно пишет о Data Science и программировании на Python.

Анаграммус Ревелио: определение строк-анаграмм

Скрипт проверяет, являются ли две строки анаграммами друг друга. Иными словами, не получена ли одна строка перестановкой символов другой строки.

Используется Counter из библиотеки collections — это разновидность словаря, используемая для подсчёта элементов в итерируемых объектах: списках, кортежах, словарях, строках.

Подробнее об этой замечательной библиотеке читайте в нашей статье.

Мемориа Байтифай: размер объекта в байтах

Этот скрипт используется для измерения количества памяти, потребляемой любым объектом в Python: переменной, функцией, классом.

Обратите внимание, что учитывается только та память, которую занимает сам объект, а не те объекты, на которые он, возможно, ссылается. Размер памяти возвращается в байтах.

Лексиа Байтифай: длина строки в байтах

Метод для определения длины строки в байтах. Это не то же самое, что размер объекта из скрипта выше.

Байтовый размер объекта-строки в памяти всегда больше байтовой длины строки, поскольку объект-строка содержит и саму строку, и дополнительную информацию о ней — например, ссылки на методы строк.

Албум Диффиндо: нарезка списка

Этот код нарезает список на списки меньшего размера, которые собраны снова в список. Размер надо задать заранее.

Как видим, последний список получился короче: 4 элемента вместо 7. Проверьте, что будет, если размер нарезаемых списков задать больше, чем составляет длина начального списка.

В статье про списки вы узнаете чуть больше об этом полезном типе данных.

Албум Прессио: сжатие списка

Этот скрипт удаляет «ложные» значения ( False, None, 0 и пустую строку ‘ ‘) из списка. Используется встроенная функция filter(): c параметром None на первом месте она удалит из списка lst все значения, которые не вернут True по умолчанию.

Проверить вручную какое-либо значение на True/False можно с помощью функции bool(): bool(0) вернёт False, но bool(‘0’) уже будет True, так как это непустая строка.

Примеры использования функции filter () можно найти здесь.

Матрикус Транспозио: транспонирование матрицы

В простейшем случае двумерная матрица может быть задана списком из нескольких списков одинаковой длины, которые представляют собой строки матрицы. Если вам требуется «повернуть на 90 градусов» такую матрицу или превратить строки в столбцы (транспонировать, как говорят математики), то вот короткий код:

Обратите внимание, что в итоговом списке элементами (то есть строками новой матрицы) будут кортежи — так работает используемая здесь функция zip ().

Албум Планум: сделать список плоским

Ох уж эти списки, состоящие из списков. Как бы их сделать попроще, выстроить в один ряд? Для этого тоже есть решение.

В третьей строке код проверяет, не является ли элемент списком. Если да, то использует метод extend() для расширения этим элементом итогового списка, если нет — то присоединяет его как одиночный элемент методом append().

Также в этой строке функция вызывает сама себя и, в случае списков, состоящих из списков, «проваливается» в них до тех пор, пока не доберётся до элементов, не являющихся списками. Это называется рекурсией.

Дуплицио Ревелио: проверка на дубликаты

Этот простой скрипт проверяет, содержатся ли в списке повторяющиеся значения (дубликаты). Используется свойство множеств set, которые могут содержать только уникальные элементы.

Вместо списков могут быть и кортежи, и словари. В последнем случае проверка будет выполняться только среди ключей словаря.

Вокабулари Юнифай: объединить два словаря

Для того чтобы объединить два словаря, есть как минимум два способа: прямой и современный.

Обратите внимание на то, что значения итогового словаря будут зависеть от порядка исходных словарей в функциях: если переставить местами словари a и b, значение ключа ‘y’ изменится на 2.

Фрекуэнтиа: самый частый элемент

Этот короткий скрипт вернёт элемент, чаще всего встречающийся в списке.

Используются продвинутые параметры встроенной функции max():

В качестве аргумента можно использовать списки, кортежи и строки.

Палиндромус Ревелио: проверка строки на палиндром

Простой вариант этого кода проверяет, является ли слово без пробелов и знаков препинания, написанное в одном регистре, палиндромом.

Албум Миксио: перемешать элементы списка

Этот сниппет поможет вам изменить порядок элементов списка на случайный. Обратите внимание на то, что функция shuffle из библиотеки random меняет исходный список.

Подробнее про библиотеку random и случайные числа в Python читайте в нашей статье.

Албум Датум: список дат из диапазона

Этот код получает две даты (начальную и конечную) и создаёт список из дат между ними, включая начальную и исключая последнюю.

Для получения дней между начальной и конечной датой используется datetime.timedelta.days.

Нумерум Нумерио: число в список цифр

Превращает целое число в список его цифр.

Функция map() принимает желаемый тип выходных данных (в нашем случае это int, целые числа) и итерируемый объект (строку, список или кортеж), элементы которого можно превратить в элементы этого типа. После этого другая функция list() преобразует результат в список.

Нумерум Романио: преобразовать число в римскую запись

Преобразует число в обычной десятичной («арабской») записи в форму римского числа. Работает со значениями от 1 до 3999 включительно, возвращает строку (str).

Сначала создаётся список кортежей вида (число, его римская запись). Далее цикл бежит по нему и с помощью функции divmod() производит целочисленное деление с остатком, меняя входящее число на остаток. Соответствующие результаты деления умножаются на строку римской записи и присоединяются к итоговой строке res.

Акцио Пайтон: Python в каждый дом!

Составление и изучение таких микропрограмм помогает лучше понять типы данных в Python, узнать о свойствах и параметрах функций. На сайте 30 seconds of code есть ещё больше коротких программ как для Python, так и для других языков программирования.

Источником вдохновения для названий этих скриптов послужили, конечно, книги Джоан Роулинг, а полный справочник по магическим заклинаниям мира Гарри Поттера можно посмотреть здесь.

На курсах «Профессия Python-разработчик» вы узнаете, насколько полезными могут быть такие небольшие программы, сниппеты и скрипты. Вы научитесь не только колдовать красиво решать задачи с их помощью, но и воплощать гораздо более сложные проекты. Приходите!

обложка: Darshan Patel / Unsplash / Pixabay / Pexels / Colowgee для Skillbox Media

Источник

Cython: более чем 30-кратное ускорение Python-кода

Python — это язык, который любят многие программисты. Этим языком невероятно легко пользоваться. Всё дело в том, что код, написанный на Python, отличается интуитивной понятностью и хорошей читабельностью. Однако в разговорах о Python часто можно слышать одну и ту же жалобу на этот язык. Особенно тогда, когда о Python говорят знатоки языка C. Вот как она звучит: «Python — это медленно». И те, кто так говорят, не грешат против истины.

В сравнении со многими другими языками программирования Python — это, и правда, медленно. Вот результаты испытаний, в ходе которых сопоставляется производительность разных языков программирования при решении различных задач.

python 1000 7 код. yj2figmt6bot5ytlcmommmnjrzm. python 1000 7 код фото. python 1000 7 код-yj2figmt6bot5ytlcmommmnjrzm. картинка python 1000 7 код. картинка yj2figmt6bot5ytlcmommmnjrzm. Короткие программы на Python — первый шаг к реальной магии кода.

Есть несколько способов ускорения Python-программ. Например, можно применять библиотеки, рассчитанные на использование нескольких ядер процессора. Тем, кто работает с Numpy, Pandas или Scikit-Learn, можно посоветовать взглянуть на программный комплекс Rapids, позволяющий задействовать GPU при проведении научных расчётов.

Все эти методики ускорения работы хороши в тех случаях, когда решаемые с помощью Python задачи могут быть распараллелены. Например — это задачи по предварительной обработке данных или операции с матрицами.

Ответ на этот вопрос даёт Cython — проект, используя который можно значительно ускорить код, написанный на Python.

Что такое Cython?

Cython, по своей сути, это промежуточный слой между Python и C/C++. Cython позволяет писать обычный Python-код с некоторыми незначительными модификациями, который затем напрямую транслируется в C-код.

Единственное изменение Python-кода при этом заключается в добавлении к каждой переменной информации об её типе. При написании обычного кода на Python переменную можно объявить так:

При использовании Cython при объявлении переменной нужно указать её тип:

Эта конструкция сообщает Cython о том, что переменная представляет собой число с плавающей точкой. По такому же принципу объявляют переменные и в C. При использовании обычного Python типы переменных определяются динамически. Явное объявление типов, применяемое в Cython — это то, что делает возможным преобразование Python-кода в C-код. Дело в том, что в C необходимо явное объявление типов переменных.

Установка Cython предельно проста:

Типы в Cython

При использовании Cython можно выделить два набора типов. Один — для переменных, второй — для функций.

Если речь идёт о переменных, то тут нам доступны следующие типы:

При работе с функциями нам доступны следующие типы:

Ускорение кода с использованием Cython

Теперь С-код готов к использованию.

Теперь всё готово к тестированию нашего сверхбыстрого C-кода. Ниже приведён код, используемый для тестирования и сравнения двух вариантов программы.

Код этот устроен очень просто. Мы импортируем необходимые файлы — так же, как импортируются обычные Python-файлы, после чего вызываем соответствующие функции, делая это так же, как если бы мы всё время работали бы с обычными Python-функциями.

Взгляните на следующую таблицу. Можно заметить, что Cython-версия программы оказывается быстрей её Python-версии во всех случаях. Чем масштабнее задача — тем больше и ускорение, которое даёт использование Cython.

ЧислоПоказатель Python TimeПоказатель Cython TimeПоказатель Speedup
101.6689300537109375e-064.76837158203125e-073.5
1003.337860107421875e-064.76837158203125e-077.0
10002.193450927734375e-059.5367431640625e-0723.0
100000.00020909309387207036.4373016357421875e-0632.481
1000000.00215625762939453126.008148193359375e-0535.89
10000000.021287679672241210.000595331192016601635.75
100000000.21482801437377930.0059478282928466836.1187317112278

Итоги

Использование Cython позволяет значительно ускорить практически любой код, написанный на Python, не прилагая к этому особенных усилий. Чем больше в программе циклов и чем больше данных она обрабатывает — тем лучших результатов можно ждать от применения Cython.

Уважаемые читатели! Используете ли вы Cython в своих проектах?

Источник

Игра на Python за 19 строк

python 1000 7 код. 1591085950188069591. python 1000 7 код фото. python 1000 7 код-1591085950188069591. картинка python 1000 7 код. картинка 1591085950188069591. Короткие программы на Python — первый шаг к реальной магии кода.

Хеллоу ворлд! Если вам надоели задачки из видео курсов или книг можете сделать эту игру.

Сейчас мы сделаем камень, ножницы, бумага.

Для начала импортируем рандом:

Теперь сделаем бесконечный цикл чтобы не перезапускать игру несколько раз:

Пропишем правила для игроков:

Теперь сделаем выбор для игрока:

player = input(‘Вы выбрали:’)

И вот мы подошли к тому как все-таки реализовать проверку того что написал игрок, а также выход из игры:

if player not in [‘к’, ‘н’, ‘б’, ‘выход’]:

print(‘Не правильный ввод!’)

Теперь пропишем выбор для бота и тут нам поможет рандом:

comp_choice = gen[random.randint(1, 3)]

Что ж мы сделали почти все шаги в игре, но осталось сделать победные комбинации:

Последний и самый простой шаг обозначаем победу или ничью:

if player == comp_choice:

elif (player,comp_choice) in win_combination:

player = input(‘Вы выбрали:’)

if player not in [‘к’, ‘н’, ‘б’, ‘выход’]:

print(‘Не правильный ввод!’)

comp_choice = gen[random.randint(1, 3)]

if player == comp_choice:

elif (player,comp_choice) in win_combination:

Вот и все вы сделали игру и можете похвастаться перед друзьями.

Телеграм-канал @featuresfordev. Там мы делимся своими мыслями в таком формате.

Дубликаты не найдены

python 1000 7 код. 1576660997254036587. python 1000 7 код фото. python 1000 7 код-1576660997254036587. картинка python 1000 7 код. картинка 1576660997254036587. Короткие программы на Python — первый шаг к реальной магии кода.

Программирование на python

210 постов 7.1K подписчика

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!

• уважение к читателям и авторам

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

Чел, ты рекламируешь свой канал, и даже не вставил свой код нормально. Я редко постам ставлю минусы, но это какое-то жуткое неуважение к читателям.

Вот полный код:
ссылка на гит.
Вы разработчик или где?

код питона без отступов выглядит идеально!

П.С. ты это сделал что бы над ньюбами поиздеваться, да?

чел это python он не поддерживает ; ты что шаман что ли? как ты запустил программу?

> gen = <1:'к', 2:'н', 3:'б'>> comp_choice = gen[random.randint(1, 3)]

Спасибо огромное! Я как раз хотел узнать побольше команд!

Смысл этого поста? Он обучает разве что копипастить код.

Как вариант (исключения не перехватываются, форматирование строк не применяется, Python 3) :
import random

player_win = 0
bot_win = 0

Ты отступ забыл сделать, а так спасибо за код.

Отступы нужны в коде, без них не полетишь..

Бесплатно помогаю пикабушникам учить программирование, часть 17: «Итоги спустя полтора года»

— 35 человек обучились до уровня стажера/младшего разработчика.

— 2 человека сейчас на этапе прохождения собеседований в несколько компаний.

— 5 человек прошли какую-то часть плана обучения, но перешли во фронтенд.

— 1 человек обучился до уровня стажера, поработал несколько месяцев и ушел в DevOps.

Мне нравится заниматься этим проектом и я и дальше планирую дополнять его интересными статьями.

Бесплатно помогаю пикабушникам учить программирование, часть 16: «Что делать если вам не перезванивают из отдела кадров»

Из любой ситуации можно извлечь пользу. Такие как эта не является исключением.

А я, в свою очередь, продолжаю обучать новичков программированию. За полтора года этого занятия с моей помощью работу получили 35 человек.

python 1000 7 код. m441508 1487257968. python 1000 7 код фото. python 1000 7 код-m441508 1487257968. картинка python 1000 7 код. картинка m441508 1487257968. Короткие программы на Python — первый шаг к реальной магии кода.

Ответ на пост «Бесплатно помогаю пикабушникам учить программирование, часть 15: «Еще один пост о собеседованиях»»

Привет, вот настала и моя очередь благодарить @prodigal.son 🙂

В программировании у меня ббыл опыт, но очень нерелевантный, писал для себя на питоен разные задачки, с друзьями-школьниками делали разные проекты

Автору огромное спасибо, до сих пор иногда удивляюсь, как случайности могут повлиять на жизнь.

python 1000 7 код. m3192461 1579797167. python 1000 7 код фото. python 1000 7 код-m3192461 1579797167. картинка python 1000 7 код. картинка m3192461 1579797167. Короткие программы на Python — первый шаг к реальной магии кода.

Школьники из Нижнего Новгорода стали лучшими в 3D-моделировании и программировании

Юные нижегородцы лучшие в 3D-моделировании и программировании в России: команда FullStack из Нижнего Новгорода стала абсолютным лидером отборочного этапа IV всероссийского хакатона👨‍💻

python 1000 7 код. m1910854 2080526097. python 1000 7 код фото. python 1000 7 код-m1910854 2080526097. картинка python 1000 7 код. картинка m1910854 2080526097. Короткие программы на Python — первый шаг к реальной магии кода.

python 1000 7 код. 1632439036273151541. python 1000 7 код фото. python 1000 7 код-1632439036273151541. картинка python 1000 7 код. картинка 1632439036273151541. Короткие программы на Python — первый шаг к реальной магии кода.

Вопрос исчерпан

python 1000 7 код. 1628478807118899264. python 1000 7 код фото. python 1000 7 код-1628478807118899264. картинка python 1000 7 код. картинка 1628478807118899264. Короткие программы на Python — первый шаг к реальной магии кода.

python 1000 7 код. m174519 1440231620. python 1000 7 код фото. python 1000 7 код-m174519 1440231620. картинка python 1000 7 код. картинка m174519 1440231620. Короткие программы на Python — первый шаг к реальной магии кода.

Кто такая Элис?

Красиво одевается, красиво говорит.

Появилась она во времена IRC и развитого в том направлении ботов. Сам по себе, протокол IRC был довольно прост: все команды и взаимодействия с пользователями/сервисами проходили по открытому протоколу, без шифрования, что существенно облегчало как сам парсинг чатов, так и взаимодействие с серверами в целом.

Что делали тогда боты? Да много чего, по командам: рассказывали о погоде, анекдоты, без устали следили за порядком на каналах (мат и флуд), были и игровые боты (викторины, мафия). Ну и конечно же, разговаривающие боты.

Так как я уже интересовался тогда Линуксами и ботами, то решил разобраться, как это все работает. В большинстве случаев, использовали ядро eggdrop, написанное на Си, специально под IRC. Остальная «начинка» вешалась в виде модулей и скриптов на TCL.

Когда мне наскучили скрипты на погоду и вот это все базовое, я решил научить ее общаться. сначала попробовал популярный на тот момент модуль megahal (если не изменяет память), но вскоре, разочаровался в нем: бот просто набирал разговорную базу, отвечал похожими фразами и совсем не в тему.

Тут я и решил использовать свои навыки программирования в Delphi и замутить своего бота, чтобы тоже и с погодой, но основной упор был на разговор и более.

Когда думал над именем, принял решение подобрать такое, чтобы коротко и звучало. И вот, играю как-то в Need For Speed 3, выбираю тачки и проскакивает Lotus Elise.. решено!

В основе ядра был функционал работы протоколом IRC и с базой данных на FireBird (компонент просто был сразу в коробке Delphi), остальное навешивалось в виде dll-модулей и подгружалось при старте ядра.

Первым делом, нужно было решить, как собирать разговорную базу. Сначала Элис реагировала только на прямое обращение и приваты. Первым режимом был закос под дурочку (отвечала просто рандомными фразами и запоминала то, что пишет собеседник), пока без обучения.

Затем, я решил, что нужно разделить полученные фразы и в целом, попытаться разбить полученное по каким-нибудь категориям. Если честно, я уже не помню сколько было в конечном счете категорий (около 20).

Написал модуль, который разбивает новополученные фразы и ищет в них ключевые слова. Какие-то слова явно ссылались на категорию (тему разговора), какие-то могли служить триггерами на настроение (позже объясню), например:

— Я вчера смотрел матч между Канадой и Россией. Любишь хоккей? (тут у нас явно идет речь о спорте по ключевым словам: матч, хоккей. но есть еще и упоминание стран). В данном случае, Элис имела рандомный выбор: говорить дальше о спорте или о путишествиях например.

— Люблю прыжки в длинну / Я ездила в Турцию, кофе там пила

Вообще, выбора у нее было значительно больше, чем просто отвечать по теме:

— Продолжить разговор по выбранной теме

— Задать вопрос, ответ на который еще нет в базе (из таблицы, куда складывались фразы, в которых не были обнаружены ключевые слова).. чтобы узнать ответ 🙂

Ключевые слова и категории пришлось прописывать самому, но это не заняло много времени.. Вы удивитесь, на сколько не богат словарный запас среднестатистического человека в чатах 🙂

На счет склонений, падежей и прочего при поиске ключевых слов: я пользовался масками и регулярными выражениями.

Тут пришлось дополнить модуль, отслеживающий ключевые слова, на предмет поиска пола собеседника в его фразах. До того, как Элис понимала с кем общается, фразы были обобщенные в 70% случаев.

Как только собеседник обращался к Элис, она проверяла его по свое базе, знает ли она его уже и какого «оно» пола )) и уже дальше общалась в соответствующем ключе. В качестве идентификатора собеседника, выступал ident@host, без привязки к нику.

Так же, базу фраз пришлось значительно переделать, т.к. одна и та же фраза не могла звучать одинаково для обоих полов. Потому, пришлось сделать что-то вроде триггера-разделителя в фразах, встречая которые, Элис делала выбор в зависимости от пола собеседника:

— Ты ходил|ходила на концерт БИ-2 вчера?

(символ | означал, что первое слово предназначено для м, второе для ж)

Возвращаемся к ключевым словам: добавляем «вес настроения» на определенные фразы.

Добавляем к базе собеседников два параметра: долгосрочное отношение и короткосрочное. Это я подчерпнул из СИМСов )) Короткосрочное влияет на то, хочет ли Элис прямо сейчас с тобой общаться.

Баллы только списываются. Начисляются по 20 в час на короткосрочное и на 2 балла в сутки на долгосрочное.

То есть, если ты будешь постоянно ее оскорблять, она просто перестанет с тобой общаться.

Добавлен модуль, примерно раз в 3 дня поднимал список каналов и рандомной выбирал 10 каналов с +30 юзеров, затем, один из них. Даже я не знал заранее, куда она «решит» зайти )

Когда всевозможные ключевые слова были забиты в базу, фразы почти сами раскладывались по категориям, я уже практически «забил» на мониторинг. Изредка подглядывал за тем, что люди далеко не всегда понимали, что общались с.. ботом..

Я так и не смог написать модуль различия между будничным разговором и командами на действия.

Потом RusNet (IRC) наверное изжил себя.. сначала я ушел, а потом и Элис года через 2 выключил навсегда.

Посвящается памяти EliseAI, более известной, как просто Elise (RusNet).. она же Лиска..

PS. Наверное слишком ужато получилось. о многих моментах, особенно технических, умолчал. можно в комментах еще обсудить.

python 1000 7 код. m3329772 716916188. python 1000 7 код фото. python 1000 7 код-m3329772 716916188. картинка python 1000 7 код. картинка m3329772 716916188. Короткие программы на Python — первый шаг к реальной магии кода.

Как я не стала программистом

Да, я мало игралась с куклами в детстве, больше интересовало смотреть, как отец что-то паяет, как пустые гильзы превращаются в его руках в патроны, как он сам чинит кашляющий Днепр.

Видимо, этим и был подарок обусловлен. Это было году в 92, наверное, точно не раньше.

Это был единственный и первый компьютер на всю округу, мы тогда жили в поселке. Хз, в соседних городах компьютеры уже, наверное, у кого-то и были. Но тогда взрослые мужики приходили к отцу посмотреть на него, поцокать, потом сесть пить пиво.

Потом уже были IBM, и прочие. Программирование было забыто благополучно.

Ну разве что до сих пор пригождается небольшое знание php и всякого там по сайтам.

А недавно ребенок на днюху запросил себе книгу по Python. Хочу, говорит, программировать.

Да, к своим десяти он ловко ворочает в фотошопе и КорелДро, Скретч юзает с первого класса, но загорелся настоящим программированием.

И на днюху он таки получил книгу.

Вчера установила Пайтон, сегодня села с ним поразбирать, чо да как.

А суть та же. Прошибло реально почти до слез. Вспомнила вмиг и своего лыжника с убогими ёлками, лично прорисованными. И торчание за компом ночами.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *