10 полезных материалов по Python для быстрого старта ваших проектов


Оглавление (нажмите, чтобы открыть):

Программирование на Python: быстрый старт

«Программирование — вторая грамотность»
(академик А.П. Ершов)

По просьбе студентов стал записывать видеоуроки о программировании на языке Python. Страница с уроками и презентациями доступна по ссылке.

«Программирование — вторая грамотность» — так называлось одно из самых известных выступлений академика А. П. Ершова, которое прозвучало на Третьей всемирной конференции ИФИП и ЮНЕСКО по применению ЭВМ в обучении в 1981 году.

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

«Во-первых, нам будет легче сравнивать программирование с грамотностью, если мы вспомним, что грамотность — это историческая категория, имеющая свое предначало, возникновение и развитие. СССР — страна практически сплошной грамотности: уже 10 лет назад грамотные в ней составляли 99,7 % общего числа населения в возрасте от 9 лет и старше. 100 лет назад этот процент был чуть выше 20. Еще сейчас на Земле насчитывается порядка 800 млн неграмотных.

Во-вторых, как в основе грамотности, так и в основе программирования лежит техническое изобретение: печатный станок и ЭВМ соответственно. Если развитие и распространение книгопечатания привело к всеобщей грамотности, то развитие и распространение ЭВМ приведет ко всеобщему умению программировать.

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

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

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

Мы привычно понимаем грамотность как способность человека воспринять и выразить знание в текстовой форме. С детства мы слышим простые и емкие слова Максима Горького: «Любите книгу, источник знания». Однако остается проблема: как перейти от знания к действию. «Сообразуйте действие со словом, а слово с действием», — говорит один из героев Шекспира. Вот здесь и возникает программирование.

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

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

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

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

Как сказал Монтень уже в XVI веке: «Ученость чисто книжного происхождения — жалкая ученость!» Действительно, обнаружилось, что книжное накопление знаний требует новых подходов к формированию исполнительных механизмов человека. Это означает, что задача программирования появилась задолго до появления ЭВМ. ЭВМ актуализировало проблему программирования так же, как книгопечатание актуализировало проблему грамотности.

Если вторая проблема привела к появлению Яна Амоса Каменского и его «Великой дидактики» и «Материнской школы», заложивших основы современной школы, то первая проблема — это вызов нашей аудитории, и я горячо надеюсь, что она выдвинет великого учителя, который вооружит поколение, вступающее в XXI век, видением школы будущего.

Грамотность и способность к действию сами по себе еще ничего не значат. Развитие только одной из них еще не решает проблемы. В этом противопоставлении трудно сказать, от чего мы страдаем больше: от невежества или бездеятельности. Еще Гете предупреждал: «Нет ничего страшнее деятельного невежества», однако наш опыт подсказывает, что оно произрастает только при дефиците активной жизненной позиции образованных и культурных людей. Мы знаем, что грамотность — это не только умение читать, но и воспитание интеллигентного человека.

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

Мир книги

Вернемся снова к отправной точке раскрытия нашей метафоры, книгопечатанию, более точно, к ее продукту — книге. Я позволю себе сделать небольшую выдержку из энциклопедического словаря, поскольку лаконичность его текстов придает им особую выразительность:

«Книга, печатное произведение (в старое время также и рукопись) в форме сброшюрованных и переплетенных вместе печатных листов… В средние века книги переписывались в монастырях монахами и имели, главным образом, религиозный характер. С развитием городов сменившие монахов городские писцы переписывали и светские книги. Настоящий поворот в книжном деле произведен книгопечатанием, изобретенным в середине 15-го века… Отливка шрифтов, изобретение скоропечатающей машины, стереотипы, применение наборной и ротационной машин превратили книгу в могучее средство распространения знаний и подъема культуры»

(Малый энциклопедический словарь, Москва: Советская энциклопедия, 1936 г.)

Мне бы хотелось верить, что наше трудное дело создания ЭВМ и их программирования когда-нибудь будет подытожено далеким потомком в столь лапидарных и эпических строчках. Мне довелось прочитать несколько сочинений, посвященных истории книги и развитию грамотности. Это в высшей степени интересная глава в истории нашей цивилизации. Несмотря на то, что становления книгопечатания и вычислительной техники разделены периодом в пять столетий, их сопоставление, особенно если выровнять временные масштабы с учетом разницы скоростей и пропускной способности коммуникационных каналов, обнаружит много сходства и технического, и социального характера. В способах книгопечатания мы найдем смену поколений, основанную на изменениях производственной базы и технологических процессов. Так же, как и в вычислительном деле, мы познакомимся с историей становления больших производящих компаний со всеми типичными компонентами массового производства: неустанная ассимиляция технических новшеств и их переплавка в общепринятые технические стандарты, организация рынка и сбыта, драматические столкновения в сочетании с неотъемлемостью сосуществования большого и малого бизнеса, появление вторичной индустрии исходных материалов и компонент.

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

Появление первых изданий изобретателя печатного станка Иоганна Гутенберга датируется 1445 годом (латинская грамматика «О восьми частях речи» Элия Доната и знаменитая «42-строчная» Библия). Еще не истек XV век, а уже в мире работало свыше тысячи типографий, выпустивших около 10 млн экземпляров книг, почти мгновенно превысив наличный фонд рукописных книг. В 1962 г. во всем мире было напечатано 10 млрд книг. Характерным является то, что не видно никаких реальных признаков насыщения книжного рынка.

Данные 1962 г. говорят, что каждый житель Земли приобрел в среднем две книги. Средняя семья в СССР покупает в год около 30 книг и готова покупать больше . Простая экстраполяция этих цифр дает оценку потенциального книжного потребления для нынешнего населения в 40 млрд книг в год.

Есть, как мне кажется, глубокие аналогии между книгой и ЭВМ как продуктом и их общие отличия от остальных изделий. Все остальные изделия носят специализированный характер, рассчитаны на некоторую функцию. Отношение объема производства такого продукта к числу потребителей выражается малой константой. С книгами и ЭВМ дело обстоит по-другому. И книги, и вычислительные машины являются носителями информационной модели внешнего мира во всем его разнообразии и изменчивости. Здесь не приходится рассчитывать на то, что пытливость и любознательность человека найдут свой предел.

Мир ЭВМ

Средства массовой информации, научно-популярные издания и рекламные проспекты, несмотря на короткий век ЭВМ, уже создали у нас некоторое клише, привычное видение вычислительной машины. Его атрибуты — экран и клавиатура дисплея, бобины магнитных лент, кружево перфоленты, полотно длинных выдач с АЦПУ, мигающие огоньки инженерного пульта, угловатые шкафы, забитые электронными деталями. На техническом языке все это объединяется одним термином: установка (mainframe). Если, однако, думать о месте ЭВМ в мире человека на основе этого представления, это будет не только поверхностно, но и ошибочно. Машина будущего — это не только и не столько гигантский электронный мозг, заполняющий охраняемое здание планирующего центра, промышленной дирекции, банка или командного пункта, а прежде всего, крошечный срез кристалла кремния в миниатюрной рамке, опутанной паутиной тончайших проводов, вставленный в укромное место практически любого промышленного изделия.

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

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

Время не позволяет мне раскрывать подробно эти положения, хотя, возможно, это и была бы наиболее увлекательная часть моего выступления. Специальная литература полна анализом новых проблем, лавиной обрушивающихся на специалистов по организации производства, проектантов рабочих мест, инженерных психологов, конструкторов, собственно говоря, всех инженерно-технических работников. Тысячи профессий меняют свое лицо. Миллионы людей — операторов производства, наладчиков, машинисток, банковских служащих, продавцов-контролеров, библиотекарей, монтажников, секретарей, сборщиков на конвейере — садятся за полностью переоборудованные рабочие места, на которых ЭВМ становится их партнером и собеседником. И если даже этот партнер дружествен и надежен, у работника должна произойти глубокая психологическая и квалификационная перестройка для того, чтобы сохранить свою целостность и достоинство в этой новой обстановке. Мы уже сейчас говорим о миллионах людей, вовлеченных в этот процесс (в одной Западной Европе число терминалов ЭВМ и линий передачи данных приближается к миллиону), а через пару поколений это коснется практически каждого человека, вовлеченного в общественное производство.

На пути этого экспоненциального развития, подстегиваемого самыми разнообразными факторами, возникает, однако, одно принципиальное препятствие. В настоящее время способность человека к передаче знаний машине безнадежно отстает от способности создать эту машину. Если затраты общественного труда на создание микропроцессора исчисляются в человекочасах, то затраты на создание программного обеспечения до сих пор выражаются в человекомесяцах, даже с учетом тиражирования программ. Логистическая кривая Барри Боэма, показывающая динамику соотношения затрат на оборудование и программы при проектировании системы обработки информации, стала благодаря бесчисленным повторениям настолько привычной, что уже не вызывает никакого беспокойства. Конечно, специалисты по программированию трудятся вовсю, чтобы сделать труд программиста более производительным. Однако даже если мы примем гипотезу десятикратного увеличения производительности труда при производстве программ, элементарные расчеты показывают, что для того чтобы через двадцать лет запрограммировать все производимые микропроцессоры, нам надо будет посадить за программирование все взрослое население земного шара.

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

«В будущем всякий человек, полностью несведущий в естественных науках, окажется, честно говоря, необразованным. И если он будет, как делают это сейчас некоторые, кичиться своей неосведомленностью, он окажется точно в таком положении, как неграмотные средневековые бароны, гордо заявлявшие, что счетом и письмом у них занимаются секретари…»

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

То же должно произойти и с программированием: руководители, не имеющие представления об ЭВМ и программировании, уйдут в небытие, профессиональные программисты станут системными аналитиками и системными программистами, а программировать сумеет каждый, что я и называю второй грамотностью.

Таким образом, мы переходим от мира машин к миру программ.

Мир программ

Герой Мольера, месье Журден, был в высшей степени удивлен, когда узнал, что всю жизнь говорил прозой, не подозревая этого. Благодаря появлению ЭВМ и вызванному этим появлением возникновению вычислительной науки, или информатики, человечество оказывается в положении месье Журдена, с удивлением обнаруживая, что оно живет в мире программ и что продуктивность информационных моделей внешнего мира придает новый смысл библейскому высказыванию «В начале было слово».

Да, мы живем в мире программ, и сами постоянно программируем, не сознавая этого.

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

Мастер Йода рекомендует:  Как при помощи JavaScript осуществить перенаправление на другую веб-страницу


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

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

Даже обучение, то есть приобретение знаний или, скорее, способности что-то сделать, — это программирование. Лет десять назад профессор Массачусетсского технологического института Сеймур Пейперт, один из первых психологов и педагогов, взявший на вооружение концепции программирования, в серии своих работ убедительно показал, что ребенок научается что-то делать только после того, как он поймет, как это делается. Только после выработки такого понимания повторная тренировка достигает успеха. Заметим, что это касается не только программ, представляющих собой цепочки логических реакций на заранее известные стимулы, но и программ реального поведения, включая всяческую моторику (спорт, музыка, игры и т. п.).

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

Мы жалуемся на социальные болезни века, в частности абсентеизм, пассивность, ратуем за формирование активной жизненной позиции. Что это такое? Попросту говоря, это способность выработать программу действия и следовать ей.

Таким образом, мир программ — это далеко не только начинка памяти ЭВМ. Это прежде всего огромный запас операционного знания, накопленный человечеством и теперь лишь актуализируемый вычислительными машинами, роботами, автоматическими устройствами. Еще более огромный запас программ хранится в генофонде всего живого: его расшифровка и использование в значительной степени составляют предмет биологии и ее новых разделов, включая генную инженерию. Психология развития и теория поведения тоже в значительной степени формируют новые представления, сближающиеся с понятиями программирования.

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

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

Рассмотрим, каковы же предпосылки и препятствия к осуществлению этого плана?

Общая задача обучения программированию

Итак, мы хотим учить детей законам программирования. Еще не зная их, мы понимаем, что они неизбежно будут выражены в сумме некоторых достаточно специфических приемов. Нам еще предстоит разбираться, в какой мере они посильны детям, но общие наблюдения таковы, что интеллектуальный и операционный потенциал детей далеко не исчерпан. Посмотрите, как помолодели за последние годы технические виды спорта, в особенности, плавание, гимнастика. Не знаю, как на Западе, но у нас автомашины еще дороги и люди зачастую накапливают деньги для их покупки, когда уже, как говорится, лучшие годы позади. Многие с горечью спрашивают, сколько жизней, потерянных из-за дорожных происшествий, мы сберегли бы, если бы все без исключения научились водить машину в 14—15 лет.

Нет, однако, никакой возможности нагружать детей конденсатом всего жизненного опыта, которым обогащено человечество. В этих попытках нас подстерегают и другие опасности. Каждый человек в СССР знает детскую песенку, которую поет Алла Пугачева, о горестной жизни школьника:

Нагружать все больше нас
Стали почему-то.
Нынче в школе первый класс
Вроде института.
Не бываю я нигде,
Не дышу озоном,
Занимаюсь на труде
Синхрофазотроном.
То ли еще будет,
То ли еще будет,
То ли еще будет, ой-ой-ой.

Все также знают романтическую историю Р. Киплинга о Маугли, мальчике, выросшем у волков, а потом вернувшемся к людям. В теплых странах похожие вещи иногда случались, но с гораздо более печальным исходом, и психологи называют «эффектом или синдромом Маугли» невозможность для ребенка восстановить свои позитивные возможности, погубленные чужеродной средой или перенапряжением душевных сил в раннем детском возрасте.

Этот импринтинг детских лет происходит, естественно, со всеми; можно сказать, что каждый из нас является Маугли своего детства, все дело в том, что с нами происходит и чему нас учат в эти годы.

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

Законы программирования, законы обработки информации, по моему убеждению, существуют. С одной стороны, они появляются в форме операционных правил, отражающих непосредственный опыт человечества. Все мы знаем знаменитое римское изречение «Разделяй и властвуй», воспринимая его, главным образом, как образец политического цинизма. Однако лишь только современная математика и программирование придали ему (в виде метода ветвей и границ) совершенное выражение мощного по своей силе и продуктивности эвристического принципа решения задач. Каким бы случайным этот пример ни оказался, он иллюстрирует важное положение о глубокой и нерасторжимой связи операционного знания и алгоритмического мышления с другими компонентами образования.

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

ЭВМ в школе

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

Есть, конечно, очень активно высказываемое мнение, что ЭВМ с программой это то же самое, что и задача с известным решением, и появление электронного помощника воспитает леность ума и ничего больше. Одна из лучших, на мой взгляд, юмористических картинок последних лет (журнал «Нью-Йоркер») изображает бедного Джонни, уныло глядящего на кучку карманных калькуляторов перед ним, и не менее измученную маму, терпеливо повторяющую свой вопрос: «Ну, посмотри, если у тебя пять карманных калькуляторов, и я возьму два, то сколько у тебя останется. »

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

Методы и приемы активизации обучения с помощью ЭВМ неисчислимы: они ограничиваются только пределами нашей фантазии и степенью конкретного знания детской психологии.

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

Какая-то компания выпустила на рынок игру-компьютер, которая проверяет спеллинг английских слов. С помощью синтезатора речи слово произносится, ребенок набирает это слово по буквам, машина проверяет и реагирует. В карманную игру трудно вложить хороший синтезатор речи, но авторы обратили его недостаток в достоинство, сделав его очень похожим на голос Буратино. Представляете себе восторг детей, когда игрушка пищит им голосом Буратино: «Пробуй снова, пробуй снова, ты не знаешь это слово!».

Еще одно очень интересное наблюдение. На конкурсных вступительных экзаменах в вуз для абитуриентов установили консультационную информационную систему, реализованную на ЭВМ. Около терминалов всегда толпилась очередь. В интересах ребят рядом посадили двух преподавателей, чтобы разгрузить машину. Преподаватели сидели без дела, а у терминала по-прежнему была очередь. Почему? «А мы не стесняемся перед машиной обнаружить свое незнание, а перед преподавателем стесняемся», — объяснили ребята. Действительно, по многим показателям ЭВМ является гораздо более удобным для детей источником и контролером знаний. С одной стороны, это всезнающий партнер, а с другой — всего лишь орудие, вещь. ЭВМ создает игровую обстановку, которая в обучении гораздо ценней реальной жизни тем, что из игры можно выйти, не утратив достоинства. Примеры подобного рода можно было бы умножить.

Есть и более серьезные предпосылки к продвижению ЭВМ в школу. Я уже упоминал о работах профессора Сеймура Пейперта, работающего в Лаборатории искусственного интеллекта Массачусетсского технологического института. На недавнем конгрессе ИФИП-80, состоявшемся в Японии и Австралии, профессор Пейперт выступил с докладом «Детство по-новому: присутствие ЭВМ как эксперимент в психологии развития». Этот доклад привлек всеобщее внимание.

Профессор Пейперт предсказывает всестороннее вторжение ЭВМ в мир ребенка, когда машина станет интеллектуальным орудием, применяемым ребенком с той же непосредственностью, с какой он использует перо и карандаш, но с гораздо большим разнообразием. Интерпретируя наблюдения Ж. Пиаже над тем, что ребенок совершает большинство своих интеллектуальных открытий самостоятельно при условии, что окружающий его фон достаточно богат, — профессор Пейперт показал, что компьютеризация этого фона создаст новую, невиданную ранее операционную обстановку, которая потребует новых представлений в психологии развития. В качестве примеров им было приведено значительное ускорение овладения алфавитным языком и более раннее развитие комбинаторных способностей, что позволяет детям овладеть этими фундаментальными умениями практически до вступления в подростковый возраст. Одним из положительных последствий этого изменения может стать преодоление инфантилизма и чувства зависимости, столь характерных для современного городского общества.

Собственно говоря, этот позитивный вывод профессора Пейперта может быть взят в качестве кульминации нашего анализа. Не нужно большого воображения, чтобы понять, к каким большим сдвигам в образовании приведет реализация подобной педагогической задачи.

Заключение

Я начал свое выступление с метафоры. Сейчас мы можем раскрыть ее конкретное содержание. Мы стоим на пороге практически беспредельного развития и распространения электронной вычислительной техники в обществе. Машина становится интеллектуальным орудием и партнером практически во всех сферах жизни и деятельности человека. Необходимость актуализировать в виде программ информационную модель мира, постоянное усложнение окружающей среды требуют и одновременно делают возможным существенно повысить интеллектуальную силу человечества. Значительное место в этом поступательном развитии человеческого интеллекта должны занимать законы обработки информации, способы перехода от знания к действию, способность строить программы, рассуждать о них и предвидеть результаты их выполнения. Сумма знаний по этим вопросам должна подвергнуться тщательному концептуальному анализу и в объединении с математическими и лингвистическими концепциями стать фундаментальной компонентой общего образования.

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

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

Другими словами, программирование — это вторая грамотность. Это по-прежнему метафора, но которая, как мне кажется, наилучшим образом фокусирует цели и содержание нашей конференции».

10 лучших инструментов, плагинов и библиотек для разработки на Python

Каждый разработчик должен иметь набор отличных инструментов, которые помогут ему повысить производительность труда. Программисты на Livecoding.tv не являются исключением. Мы хотели бы поделится набором инструментов, плагинов и библиотек, которые Python программисты используют на Livecoding.tv в своей ежедневной работе.

Что такое Python?

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

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

Beautiful Soup

Beautiful Soup – это парсер для синтаксического разбора файлов HTML/XML, написанный на языке программирования Python, который может преобразовать даже неправильную разметку в дерево синтаксического разбора. Он поддерживает простые и естественные способы навигации, поиска и модификации дерева синтаксического разбора. Он помогает программистам Livecoding.tv сэкономить часы и дни работы.

Pillow


Pillow это “дружественный” форк Python Image Library (PIL). Сперва это был лишь форк пакета, теперь он содержит исправления ошибок кода для изображений и поддержку Python 3. Настоятельно рекомендуется инженерами Livecoding.tv.

Gooey

Очень полезная утилита Gooey добавляет графический интерфейс к абсолютно любой консольной программе (на языке Python). Она автоматически распознаёт настройки и поддерживаемые аргументы каждой программы. Это позволяет сосредоточиться на создании надежных, настраиваемых программ привычным способом, и все это без необходимости беспокоиться о том, как он будет представлен и взаимодействовать с вашим среднестатическим пользователем.

Peewee

Peewee является простой и небольшой ORM. Имеет несколько (но выразительных) концепций, что делает ее легким в освоении и интуитивно понятным в использовании.

Scrapy

Scrapy это фреймворк с открытым исходным кодом для извлечения необходимых данных из веб-сайтов быстро и просто.

Apache Libcloud

Apache Libcloud это библиотека Python для взаимодействия со многими из популярных провайдеров облачных услуг с помощью единого API. Она была создана, чтобы сделать процесс разработки продуктов легким для разработчиков, работащих с услугами, которые она поддерживает.

Pygame

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

Pathlib

Pathlib это библиотека для .Net. Целью PathLib целью является расширение набора функций System.IO.Path

NumPy

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

Sh

Sh (ранее pbs) представляет собой полноценный интерфейс для Python, который позволяет вызывать любую программу, так будто это функция.

Теперь у вас есть 10 лучших инструментов, плагинов и библиотек для работы с Python, которые помогут вам стать более продуктивным. Какие ваши любимые помощники в работе Python? Обязательно оставьте Ваш комментарий, если мы что то пропустили и мы дополним список.

Мастер Йода рекомендует:  Как обмануть мозг и эффективно учиться программированию

Для начинающих изучать программирование(Python)

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

1.Майкл Доусон — Программируем на python

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

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

3.Марк Саммерфилд — Программирование на Python 3

Присутствует та же динамика что и в первой книге, нет лишней информации, однако она сложнее, все не так разжевано как у Доусона. Стоит отметить что после прочтения Доусона, освоение данной книги особо труда не составит.

4.Марк Лутц — Программирование на Python

Книга учит применять знания полученный в «Изучаем Python 4-е издание», однако так же перегружена лишней для новичков информацией, воспринять которую будет куда проще после Доусона и Саммерфилда. Эта книга-некий финиш в начальном изучении языка. Освоив ее вы сможете перейти куда к более углубленным работам.

Надеюсь кому то поможет эта подборка. Приятного чтения и удачи в обучении.

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

для новичков в программировании можно так же посоветовать a byte of python, распространяется бесплатно, есть перевод на русский, ничего лишнего, только основы, дальше уже можно брать более обширную литературу, сам сейчас с нее начинал с нуля, зная только базовые понятия из школьного курса на паскале, вполне устраивает

вообще не лучший выбор, вот ни разу.

хороший выбор не для новичка, а для «быстро осилил пару книжек и пошел веслать джуном в бодишоп»

Определитесь с тем, чего вы достичь хотите. И выбирайте.
Хотите стать нормальным инженером? Пожалуйста, учите операционки, сети, алгоритмы и структуры. Начните с СИ и плюсов, изучите, как работает память, познакомьтесь с протоколами популярными. Потом вполне можете пересесть на более высокоуровневый язык вроде пистона или руби. Вас не будет пугать ни исходники питонячие, ни дизассемблер встроенный, ни асинхронность. Насмотредся я уже на питонистов, которые с трудом pdb юзают, про gdb вообще не стоит заикаться. дизассемблер питонячий — это что-то для хакеров, и т.д. Управление памятью? зачем, у меня ж 8 гигов оперативы, хватает.

хотите формошлепить — учите сразу Джангу, и будет вам счастье

Вот, вроде более-менее знающий человек. Спрошу у тебя совета.

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

Студент последние два месяца полу-активно учил питон, так как ему понравился сей яп (особенно после плюсов) — синтаксис, функции и по мелочи всякое. Сейчас постегает азы ООП через питоновские классы.

Студент хочет постигнуть азы ООП, а потом попробовать себя в настоящем программировании, а не в академических задачках.

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

Что именно искать, гуглить, изучать и щупать?

В интернете толком советов не наберешься. Или «Почитай Лутца, а потом бери более обширную литературу» без каких либо уточнений хотя бы о чем эта литература должна быть, или что-то совсем заумное, чего мой неокрепший ум еще не понимает.

Если более или менее умеете в плюсы и алгоритмизацию, то не нужен вам лутц и прочая «обширная литература».

Начните с какого-нибудь онлайн курса типа coursera или udacity. Там и с примерами, и с задачками, и объясняют хорошо. В азы въедете гораздо быстрее, чем читая книги. Единственная годная книга, которую могу рекомендовать — Fluent Python by Luciano Ramalho. Но она не для начинающих, скорее для тех, кто постиг азы, и готов двигаться дальше 🙂


Если сравнивать с плюсами, в питоне ООП простое как два пальца.

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

Сканер сети/портов на питоне. Простенький сканер уязвимостей. Да вам виднее, что в иб можно заавтоматить.

Из простого — бот для телеграма, бот для твиттера, парсер какого-нибудь популярного форума, парсер статей из вк или FB(вот это будет реальный изврат), бложек себе напишите на Django или Flask.

Самый быстрый способ стартовать — начать с того, что уже знакомо. Я изначально умел в Си и линух. минимально поднял питон — пошел кодить стриминговые сервера под arm железки. прокачал скилл и зп, решил попробовать Django. Поднял ее минимально за пару месяцев — устроился джанго макакой. через пару лет надоело до дури, сейчас кодю для софт для кластеров — чистый питон + SaltStack, Ansible, Celery время от времени.

Технологии, которые вдохновляют на изучение Python

Python используют на «горячих» направлениях: машинное обучение, big data, создание криптовалют и блокчейнов, разработка высоконагруженных сайтов. На этом языке пишут инженеры Google, ученые и стартаперы. Почему он нравится IT-новаторам и ради каких инструментов стоит учить Python сегодня?

Экспериментаторы от науки и бизнеса ценят Python за возможность быстро создавать прототипы приложений, тестировать и перестраивать код «на лету». Сервис Jupyter Notebook позволяет запускать Python в браузере, тестировать блоки кода в любой последовательности, сохранять лог и делиться им с сообществом на GitHub.

Фреймворки и библиотеки Питона экономят время и не дают начинающим утонуть в технических мелочах. Язык стоит выучить хотя бы ради них:

  • Django – фреймворк для разработки сайтов средней и высокой сложности – позволяет в 2 строчки кода подключать админку, работать с СУБД, настраивать кеширование и безопасность, генерировать и редактировать формы. Там, где PHP-код сайта был бы запутанным и громоздким, Python сохраняет ясность и простоту. Поэтому на нем работают веб-проекты Яндекс и Mail.Ru.
  • Pandas обеспечивает глубинный анализ (data mining) при работе с big data и другими структурированными данными. Помогает ученым находить закономерности, а бизнесу – тренды.
  • Sage – арсенал инструментов для математических вычислений и их визуализации. Заменяет мат. пакет Mathematica и аналоги.
  • Scikit-learn – работает с алгоритмами машинного обучения, помогает создавать искусственный интеллект, который анализирует ситуацию на основе прошлого опыта.

Когда Питона недостаточно

Си ускоряет вычисления, а Питон – разработку. На этой волне появилась надстройка Cython, которая компилирует Питон-код в модули на C и С++.

Альтернативная реализация Питона под названием PyPy действует иначе: динамически компилирует Python-скрипты в машинный код во время исполнения. PyPy ускоряет программы и позволяет написать новый интерпретатор Питона под конкретный проект.

Путь Питона

Чтобы не заблудиться в мире Python, начинайте с практики в интересующей сфере. Веб, наука, финансы – выбирайте свое и учитесь у кодеров с опытом. Не гонитесь за теорией, которую пока не готовы переварить. В этом смысле поступление в вуз оттягивает начало карьеры. Учиться можно и под крылом крупной IT-компании. GeekUniversity – онлайн-университет от GeekBrains и Mail.Ru – за год готовит Python-разработчиков уровня middle, дает им практику и знакомит с работодателями из числа своих партнеров: МТС, Тинькофф, Avito и др.

Если вы уже знаете другой язык, выучить основы Python можно за пару недель, а собрать портфолио – за полгода экспресс-обучения. Только помните: чем больше у языка сообщество, тем сложнее выделиться на общем фоне. Единственный способ стать высокооплачиваемым гуру – выкладываться больше других.

Старт в Python, создаем 10 приложений

Python Jumpstart by Building 10 Apps

Программирование — это весело и выгодно. Обучение стать разработчиком программного обеспечения должно быть одинаково забавно! Этот курс научит вас всему, что вам нужно знать о языке Python, создавая интересные и привлекательные приложения.

Цель этого онлайн-видеокурса — научить вас языку программирования Python. Предполагается, что у вас есть только небольшое количество опыта программирования (например, вы знаете, что такое переменная, функция и цикл на каком-то языке). Но в остальном это с самого начала, всеобъемлющее введение в язык программирования Python.

Большинство курсов сосредоточены на обучении вас сотням подробностей и оставляют их вместе в качестве упражнения для ученика. Мой курс отличается.

Да, вы узнаете все основы. Но вы будете изучать их при создании 10 автономных приложений. Вы увидите каждое приложение, созданное с нуля в живую демонстрацию. Когда мы сталкиваемся с новыми темами (например, функциями), мы остановимся, обсудим их и вернемся к нашему приложению, которое мы создаем.

Таким образом, вы будете постоянно «складывать кусочки». Вы не должны пробираться через многие мелкие детали, прежде чем понимать Python. Он начинается с самого начала и растет оттуда.

Для кого этот курс?

Он для людей, которые имеют опыт программирования / сценариев и хотят улучшить свои знания на Python. Может быть, вы

  • Знаете JavaScript, но вы хотите изучить Python
  • Использували Python случайно, но вы хотите изучить его всесторонне
  • Знаете часть языка хорошо, но хотите округлить знания
  • Хотите написать еще больше кода на Python (iterators, comprehensions и тд.)
  • Scientist который ищет как использовать инструменты данных Python и нуждается в фундаменте
  • Являетесь студентом колледжа и хотите узнать больше, чем ваш университетский курс

Если какое-либо из этих описаний подходит вам, то вы мой целевой студент. Я написал этот курс для вас.

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

Какие приложения мы будем строить?

Мы создадим следующие приложения, которые, среди прочего, сосредоточены на языковых концепциях, перечисленных в них.

Hello world
— проверим свою среду разработки

Угадайте число
— ввод пользователя
— условные обозначения
— синтаксический анализ строк

Birthday app
— даты и время

Персональный журнал
— text-based file i/o

Weather client
— внешние пакеты
— pip
— очистка экрана
— HTTP-клиенты

LOLCat Factory
— двоичные файлы в Интернете

Wizard battle
— классы
— наследование
— магические методы

File searcher app
— лямбда-выражения
— методы генератора
— yield and yield from

Real estate analyzer
— форматы файлов
— запомнить список
— выражения генераторов

Приложение для поиска фильмов
— обработка ошибок
— исключения
— Расширенные HTTP-клиенты


Этот курс основан на Python 3 или Python 2?

Этот курс основан на Python 3. С Python 2, который не будет поддерживатся в 2020 году, мы считаем, что было бы неразумно преподавать или изучать Python 2.

Десять полезных ресурсов и книг по Python

Итак, вы — развивающийся программист на Python. Чтобы развивать свои навыки, важно иметь под рукой подходящие ресурсы. Сайт Developer Tech подготовил подборку из десяти обязательных к прочтению книг, которые помогут стать профессиональным Python-разработчиком.

Дуг Хэллман. Python module of the week

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

Лучано Рамальо. «Python. К вершинам мастерства»

Книга предназначена для достаточно опытных программистов и ориентирована в первую очередь на повышение уровня квалификации. Книга переведена на русский язык и ее можно заказать на ozon.ru. В Беларуси можно приобрести другие книги издательства O’Reilly. Например, «Простой Python. Современный стиль программирования» Билла Любановича.

Гвидо Ван Россум. Справочник по Python (the Python Language references)

Не так просто найти официальные ресурсы по Python, которые являлись бы хорошим подспорьем для программистов. Создатель и разработчик языка Гвидо Ван Россум предлагает отличное руководство. Оставьте его в своих закладках, чтобы обращаться к нему всякий раз, как возникнет потребность. Благодаря справочнику вы сможете либо найти решение проблемы, либо определитесь, куда двигаться дальше.

Бретт Слаткин. «Секреты Python. 59 рекомендаций по написанию эффективного кода»

Прочитав эту книгу, вы действительно получите 59 полезных рекомендаций. Каждая глава представляет собой урок по программированию, в которой код представлен так, как он выглядит на экране. Изложенные в книге примеры позволят разобраться с проблемой и найти пути её решения. Она переведена на русский язык и её можно приобрести в Беларуси.

Дэвид Бизли. «Python. Подробный справочник»

Эта книга является одним из лучших справочников по Python для опытного программиста. Пятое издание книги будет ориентирован на Python 3.6 и планируется к изданию во второй половине 2020 года. Четвертое издание переведено на русский язык.

CodeTriage

Если у вас есть желание поучаствовать в разработке конкретного проекта с открытым кодом, обратите внимание на этот ресурс. Он позволит найти и отобрать наиболее интересные проекты, протестировать их или же помочь в поиске и исправлении ошибок. Если вы новичок в разработке с открытым кодом, то CodeTriage может стать для вас удачным гидом.

Аристотелис Киттас. Intermediate Python Presentations

Презентации — страницы на Github, снабжённые комментариями автора. При более внимательном рассмотрении можно заметить, что они демонстрируют конкретные проблемы программирования на Python и способы их решения, а колкие комментарии программиста делают анализ более интересным.

/r/learnpython/

Одна из двух самых больших секций по обсуждению Python на Reddit. Вторая — /r/Python. Тут можно найти информацию о новых книгах и обсудить возникшие проблемы программирования. Также это хороший способ интегрироваться в сообщество разработчиков, отвечая на вопросы других пользователей. Напомним, что кроме reddit вы также можете использовать для общения с коллегами ресурс Stack Overflow.

PythonTutor

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

Python Practice Projects

Еще один ресурс, который предлагает попрактиковаться в решении небольших задач на Python. Например, создать синтаксический анализатор командной строки, механизм шаблонов или написать (lisp)-интерпретатор. Вся необходимая для разработки той или иной команды информация находится на ресурсе. Если вы только обучаетесь Python или же занимаетесь программированием в свободное время, то сайт станет удачным подспорьем и поможет в завершении проекта, которым вы занимаетесь.

Мастер Йода рекомендует:  Интеграция CAPTCHA в форму регистрации WordPress

10 лучших инструментов, плагинов и библиотек для разработки на Python

Каждый разработчик должен иметь набор отличных инструментов, которые помогут ему повысить производительность труда. Программисты на Livecoding.tv не являются исключением. Мы хотели бы поделится набором инструментов, плагинов и библиотек, которые Python программисты используют на Livecoding.tv в своей ежедневной работе.

Что такое Python?

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

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

Beautiful Soup

Beautiful Soup – это парсер для синтаксического разбора файлов HTML/XML, написанный на языке программирования Python, который может преобразовать даже неправильную разметку в дерево синтаксического разбора. Он поддерживает простые и естественные способы навигации, поиска и модификации дерева синтаксического разбора. Он помогает программистам Livecoding.tv сэкономить часы и дни работы.

Pillow

Pillow это “дружественный” форк Python Image Library (PIL). Сперва это был лишь форк пакета, теперь он содержит исправления ошибок кода для изображений и поддержку Python 3. Настоятельно рекомендуется инженерами Livecoding.tv.

Gooey

Очень полезная утилита Gooey добавляет графический интерфейс к абсолютно любой консольной программе (на языке Python). Она автоматически распознаёт настройки и поддерживаемые аргументы каждой программы. Это позволяет сосредоточиться на создании надежных, настраиваемых программ привычным способом, и все это без необходимости беспокоиться о том, как он будет представлен и взаимодействовать с вашим среднестатическим пользователем.

Peewee

Peewee является простой и небольшой ORM. Имеет несколько (но выразительных) концепций, что делает ее легким в освоении и интуитивно понятным в использовании.

Scrapy

Scrapy это фреймворк с открытым исходным кодом для извлечения необходимых данных из веб-сайтов быстро и просто.

Apache Libcloud

Apache Libcloud это библиотека Python для взаимодействия со многими из популярных провайдеров облачных услуг с помощью единого API. Она была создана, чтобы сделать процесс разработки продуктов легким для разработчиков, работащих с услугами, которые она поддерживает.

Pygame

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


Pathlib

Pathlib это библиотека для .Net. Целью PathLib целью является расширение набора функций System.IO.Path

NumPy

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

Sh

Sh (ранее pbs) представляет собой полноценный интерфейс для Python, который позволяет вызывать любую программу, так будто это функция.

Теперь у вас есть 10 лучших инструментов, плагинов и библиотек для работы с Python, которые помогут вам стать более продуктивным. Какие ваши любимые помощники в работе Python? Обязательно оставьте Ваш комментарий, если мы что то пропустили и мы дополним список.

Быстрый старт в игрострое с Unity, С# и Python

Создавать логику игровых миров и увлекать игроков геймплеем, обсуждать игры на работе и получать 100 000 руб. в месяц — это жизнь программиста-игродела. Но как быстрее дойти до жизни такой?

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

Мотивируйте себя — стройте учёбу так, чтобы получать зримые и интересные вам результаты. Для этого нужно правильно выбрать средства разработки и наставника.

Инструменты игродела: Python и C#

Если начинаете с нуля, попробуйте Python — его конструкции наглядно раскрывают суть программирования и учат писать лаконичный, читабельный код. Какие бы языки вы не использовали в дальнейшем, с Питоном вы быстро напишете прототип игры или дополнительную функциональность к ней.

Для создания игр на чистом Python есть:

  • Пакет PyGame — с ним можно за день написать простую мобильную 2D-игру.
  • Библиотека Pyglet — ориентирована на 3D-игры.
  • Движок RenPy — под визуальные новеллы, квесты, и простые RPG.

Если уже умеете программировать, обратите внимание на движок Unity. Он использует язык C# и позволяет создавать масштабные 3D-проекты для Windows, iOS, Android, X-Box, PlayStation и других платформ. С ним вам открыт путь в коммерческий геймдев. На Юнити игры делают свыше 4 млн разработчиков — легко найти команду.

Симбиоз: скрипты Python в Unity

Поскольку лень — двигатель прогресса, а Питон лаконичнее C#, игроделы охотно используют преимущества двух языков в одном проекте. Из Python-скриптов можно напрямую обращаться к классам Unity и менять поведение игры без перекомпиляции:

  • добавлять новые варианты поведения объектов;
  • выпускать дополнения к игре;
  • упрощать фанатам моддинг за счет выноса настроек в редактируемые файлы.

Когда вы решили, что изучать — ищите наставника. Он выстроит план занятий, будет оценивать вашу работу и подсказывать, как её улучшить. Самостоятельное обучение с нуля — это бег по извилистой дороге, где разложены грабли. Получить диплом программиста в вузе — действенный, но долгий метод. Тем более, университетская программа отстаёт от трендов игростроя.

Быстрее учиться у практикующих разработчиков через Интернет. Ещё лучше — на курсах со стажировкой. Из российских проектов, где учат кодеров и игроделов, можно рекомендовать онлайн-университет GeekUniversity. Там за год готовят специалиста уровня middle, дают возможность собрать портфолио, пройти стажировку и устроиться в компанию уровня Mail.Ru.

Начните с бесплатных курсов — так вы проверите свой интерес к теме и увидите, стоит ли платить за продолжение учёбы.

Пример программы на Python. Особенности, описание и рекомендации

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

Почему Python?

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

  • Легкость в изучении. Действительно, Python является очень легким языком. Освоить основы можно буквально за неделю. Некоторые придерживаются мнения, что если человек первым своим языком для изучения выбирает Python, то ему в будущем будет сложно изучать другие языки. Но если человек совсем не понимает в программировании, не знает, как все работает, ему очень сложно будет изучать Java, например. Для начала пользователь должен понять основы программирования, узнать, что такое ООП, как с этим работать.
  • Перспектива. На сегодняшний день множество IT-компаний переходят на Python. Пишутся сайты, делаются расчеты, создаются боты. «Питон» справляется со всеми задачами. И хороший специалист в этой области точно не пропадет. Раньше об этом языке мало говорили, но сейчас даже в школах заменяют Pascal на Python. При сдаче ЕГЭ можно решать задачи на «Питоне».
  • Много обучающего материала. Разные курсы, книги, уроки, примеры программ. Даже можно найти примеры программ на Python для Raspberry Pi. Это такой микрокомпьютер, который часто используют для построения умных домов, автоматических систем.

Какую версию Python выбрать

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

Самая первая программа

Такая традиция сложилась у программистов, что первой программой на любом языке программирования служит вывод текста Hello World!, что переводится с английского как «Привет, Мир!». Для осуществления этой задачи необходимо прописать лишь один оператор — print. И в скобках написать в кавычках текст, который нужно вывести на экран. Таким образом, первый наш пример программы на Python выглядит следующим образом:

Любая программа работает по определенному алгоритму. Основными являются: линейный, разветвляющийся, циклический. Самый первый пример программы на Python, который был рассмотрен, то есть вывод текста, относится к линейному алгоритму. Зачастую в программах используются все виды алгоритмов. Ниже рассмотрим примеры простых программ на Python, относящихся к другим алгоритмам.

Ветвление

Ветвление, или же разветвляющийся алгоритм должен содержать хотя бы одну проверку условия. Для проверки условий в Python есть оператор if, что переводится как «если».

В примере выше можно увидеть пример работы с оператором IF в Python. Сначала программа просит ввести число, далее пользователь вводит число (оператор input). Это число записывается в переменную a. Следующим идет условие, если переменная «a» равна нулю, то переменная выводит на экран текст, после чего работа программы прекращается. Также есть оператор else переводится как «иначе». Дополним нашу программу таким образом, что, если человек введет число, отличное от нуля, она оповестит пользователя об этом при помощи вывода текста. Итак, готовая программа выглядит следующим образом:


Циклы в Python

Циклы служат для многократного повторения каких-либо действий. В Python для этого есть операторы for и while. Рассмотрим оба этих оператора.

Оператор While

Это циклы с условием, то есть тело цикла будет исполняться до того момента, пока условие истинно. Например, пока a = 0, прибавлять к переменной b переменную c.

Синтаксис выглядит следующим образом:

Пример программы на Python с использованием цикла While:

Эта программа выводит квадраты чисел от 1 до 10. В теле цикла можно увидеть, что программа выводит каждый раз переменную a в квадрате, затем прибавляет к этой же переменной 1. Цикл выполняется до тех пор, пока переменная a не будет равна или больше 10. Чтобы программа выглядела более законченно и красиво, можно воспользоваться оператором else. Пример использования:

То есть если переменная a становится больше или равна 10, то на экран выводится сообщение «Цикл завершен». Добавили всего 2 строчки кода, а программа выглядит уже более красиво. Да и к тому же в будущем легче будет ориентироваться, если возникнет какая-нибудь ошибка, не придется долго искать.

Оператор For

Цикл For является менее универсальным, чем цикл While, но зато он работает быстрее. В основном при помощи for перебирают какие-либо данные. Например, строки и словари. Пример программы на Python:

В этом примере можно увидеть, что цикл for перебирает строку Hello World! и каждый символ строки повторяет два раза.

Операторы break и continue

Операторы break и continue используются в циклах для выхода из цикла или пропуска до следующей итерации. Пример использования оператора continue:

В примере мы видим, что если переменная a равняется 5, то он пропускает 5 и начинает с 6. Так же применяется и оператор break, но вместо пропуска он будет выходить из цикла и переходить к другим действиям, если они есть. Если их нет — завершает программу.

Графический интерфейс программ

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

Самый простой пример программы на Python с PyQT5:

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

Пример использования библиотеки math

Язык программирования Python частенько используют для расчетов. Даже в NASA используют Python для таких целей. Чтобы проводить операции с числами, проводить различные расчеты, поможет библиотека math. Это очень мощная библиотека, которая изначально идет в составе «Питона», дополнительно устанавливать ее не надо. Рассмотрим пару примеров использования этой библиотеки.

Допустим, необходимо вычислить факториал заданного числа. Сделать это можно одним лишь оператором. Пример программы на Python:

Узнать остаток от деления a на b:

Допустим, нам нужно вычислить обратный гиперболический косинус числа B, делается это тоже с помощью одного оператора:

Построение графиков

Python также может составлять графики. Для этого используется библиотека MatPlotLib. Этой библиотеки нет изначально, ее надо устанавливать отдельно. Делается это очень просто, в командной строке нужно написать одну строчку:

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

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

После выполнения кода можно увидеть следующее:

Django

На Python написано немало сайтов. Все больше и больше сайтов с каждым днем пишется на этом чудесном языке. А возможность этого предоставляет фреймворк Django. Даже предполагают, что через несколько лет Python сможет обогнать PHP на рынке. Многие IT-компании уже работают с этим языком. Например, «Яндекс». А известный облачный сервис Dropbox и вовсе полностью написан на «Питоне». Можно писать не только сайты, но и полноценные веб-приложения. К тому же он абсолютно бесплатный.

IDE для программирования на Python

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

    PyCharm. Это, наверное, самый известный >

Посоветуйте ресурсы для изучения Python. Комменты для минусов внутри

Решил я тут изучить Python для себя, да и чтобы мозг работал, ну и интересно стало.
Так как я в этом полный нуб, хотелось бы попросить знающих посоветовать годные книги(в эл. варианте)/ресурсы/программы и т.д.

Картинка для привлечения внимания.

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

Можно свой сайт посоветовать?

1. Для начала определись, какую из двух основных «версий» языка ты будешь использовать — 2 или 3. Заодно узнай, чем они отличаются.

2. Выбери IDE. Их очень много, 90% их возможностей тебе в ближайшее время не будут нужны. Сам я использую простой PyScripter, его возможностей мне вполне хватает.

3. Изучи базовые понятия языка, для этого подойдет почти любой популярный учебник. Советую Бизли «Python. Подробный справочник».

4. Самое главное — придумай тренировочную задачу, которую хотел бы реализовать. Пока без GUI, только алгоритм.

Я для тренировки делал такие:

— проверка парадокса дней рожденья с помощью модуля random

— вычисление площади, координат центра тяжести и моментов инерции произвольного многоугольника, заданного координатами вершин

— заполнение поля размером NxM заданным набором фигурок из тетриса с выводом решения в автокад, если оно существует

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