====== Программирование на языке Python3 ======
==== Рекомендуемые редакторы программного кода ====
* [[https://www.olympiads.ru/moscow/2018-19/soft.shtml]] - Список рекомендуемого программного обеспечения для проведения олимпиад по информатике
* [[http://www.wingware.com/downloads/wing-101]] Wing 101 - Version 6.1.2 - Released 2018-11-08
==== Мои рекомендации по выбору сред разработки для начинающих ====
* [[https://thonny.org/]] Thonny. Python IDE for beginners
* [[https://codewith.mu/en/]] Code with Mu: a simple Python editor for beginner programmers.
* [[https://codewith.mu/en/download]] - страница загрузки
==== Справочники, учебные пособия ====
* [[https://www.w3resource.com/python/python-tutorial.php]] - краткое руководство на английском
* http://aliev.me/runestone/ - Учебник с базовыми алгоритмами: Problem Solving with Algorithms and Data Structures using Python By Brad Miller and David Ranum (перевод).
* https://runestone.academy/runestone/static/pythonds/index.html Problem Solving with Algorithms and Data Structures using Python By Brad Miller and David Ranum (английский).
* https://github.com/ErikRHanson/Problem-Solving-with-Algorithms-and-Data-Structures-Using-Python
* [[https://foxford.ru/wiki/informatika/o-yazyke-python]] - О языке Python на сайте foxford.ru
* [[https://foxford.ru/wiki/informatika/spiski-v-python]] - списки на сайте foxford.ru
* [[https://foxford.ru/wiki/informatika/zadachi-na-kortezhi-i-mnozhestva-v-python-ege-27]] - разбор 27 задачи на сайте foxford.ru
**Справочник 1**
* [[https://pythonz.net/references/named/str.rsplit/]] - справочник по языку Python \\
* [[http://pythonz.net/references/named/mini-yazyk-formatirovaniya/]] - Правила форматирования
**Справочник 2**
* [[http://www.tutorialspoint.com/python3/list_count.htm]]
**Модуль random**
* [[https://pythonworld.ru/moduli/modul-random.html]]
**Питошка**
* [[http://pythoshka.ru/]]
**Python: коллекции** \\
* https://habrahabr.ru/post/319164/ - коллекции, часть 1/4: классификация, общие подходы и методы, конвертация
* https://habrahabr.ru/post/319200/ - коллекции, часть 2/4: индексирование, срезы, сортировка
* https://habrahabr.ru/post/319876/ - коллекции, часть 3/4: объединение коллекций, добавление и удаление элементов
* https://habrahabr.ru/post/320288/ - коллекции, часть 4/4: Все о выражениях-генераторах, генераторах списков, множеств и словарей
*
* http://kpolyakov.spb.ru/school/probook/python.htm - На этой странице размещены материалы для изучения программирования на языке Python на основе учебника «Информатика. Углублённый уровень» для 10-11 классов К.Ю. Полякова и Е.А. Еремина.
* https://youtu.be/TW_e9FFEDeY - Лекции по структурам данных (видео на английском)
Для работы в "облаке" (среда программирования в браузере, данные и программный код хранится на внешнем сервере) используем [[https://repl.it]] - **REPL.IT**
Участникам олимпиады следует установить - [[http://www.wingware.com/downloads/wingide-101]]
'''
Блочный комментарий.
Операторы ввода и вывода.
'''
# Строчный комментарий
a = input() # оператор ввода данных
print(type(a)) # даже если вводится число, тип введенного значения string
b = input()
print(a+b) # Вывод результата вычислений.
# Получаем конкатенацию (слияние) строк (текста на который ссылаются переменные a и b)
a = int(a) # преобразование к целому типу (для введенного целого числа)
b = int(b)
print(a + b) # получаем сумму целых чисел, на которые ссылаются переменные a и b
# если считываем два, разделенных пробелом, числа, можно использовать код
a, b = map(int, input().split())
# считывание и сортировка входных чисел, разделенных пробелом
print(*sorted(map(int, input().split())))
=== Разложение числа на простые множители ===
n = int(input())
i=2
while i*i<=n:
while n%i==0:
print(i)
n//=i
i+=1
if n>1:
print(n)
==== Game of Life with Python ====
* [[https://glowingpython.blogspot.ru/2015/10/game-of-life-with-python.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+TheGlowingPython+(The+Glowing+Python)]]
==== Bottle: Python Web Framework ====
[[http://bottlepy.org/docs/dev/]]
==== Избранные задачи для отработки базовых навыков ====
http://pythontutor.ru/ интерактивный учебник
=== Операции с целыми числами ===
**Теория. **
* [[https://server.179.ru/~yurkov/0910/7b/matprak/29remainders.pdf]] - теорема о делении с остатком
* {{::29remainders.pdf| теорема о делении с остатком}}
* [[http://natalibrilenova.ru/blog/1487-teorema-o-delenii-s-ostatkom.html]] - - теорема о делении с остатком
**Практика**
* [[http://pythontutor.ru/lessons/inout_and_arithmetic_operations/problems/apples/]] - Задача «Дележ яблок»
* [[http://pythontutor.ru/lessons/inout_and_arithmetic_operations/problems/electronic_watch/]] - Задача «Электронные часы»
* [[http://pythontutor.ru/lessons/inout_and_arithmetic_operations/problems/desks/]] - Задача «Парты»
=== Вычисления ===
* [[http://pythontutor.ru/lessons/int_and_float/problems/watch_1/]] Задача «Часы - 1»
=== Условные операторы ===
**Теория. **
* [[http://pythontutor.ru/lessons/ifelse/]]
**Практика**
* [[http://pythontutor.ru/lessons/ifelse/problems/chess_board/]] - Задача «Шахматная доска»
* [[http://pythontutor.ru/lessons/ifelse/problems/minimum3/]] - Задача «Минимум из трех чисел»
* [[http://pythontutor.ru/lessons/ifelse/problems/num_equal/]] - Задача «Сколько совпадает чисел»
* [[http://pythontutor.ru/lessons/ifelse/problems/king_move/]] - Задача «Ход короля»
* [[http://pythontutor.ru/lessons/ifelse/problems/chocolate/]] - Задача «Шоколадка»
=== Цикл for ===
**Теория. **
* [[http://pythontutor.ru/lessons/for_loop/]]
Факториа́л натурального числа n (лат. factorialis — действующий, производящий, умножающий; обозначается n!, произносится эн факториа́л) — произведение всех натуральных чисел от 1 до n включительно: n! = 1*2*3*...*n
Например:\\
5! = 1*2*3*4*5 = 120
**Практика**
* [[http://pythontutor.ru/lessons/for_loop/problems/series_2/]] - Задача «Ряд - 2»
* [[http://pythontutor.ru/lessons/for_loop/problems/factorial/]] - Задача «Факториал»
* [[http://pythontutor.ru/lessons/for_loop/problems/sum_of_factorials/]] - Задача «Сумма факториалов»
* [[http://pythontutor.ru/lessons/for_loop/problems/lost_card/]] - Задача «Потерянная карточка»
=== Цикл while ===
**Теория. **
* [[http://pythontutor.ru/lessons/while/]]
**Практика**
* [[http://pythontutor.ru/lessons/while/problems/minimal_divisor/]] - Задача «Минимальный делитель»
* [[http://pythontutor.ru/lessons/while/problems/powers_of_two/]] - Задача «Степень двойки»
* [[http://pythontutor.ru/lessons/while/problems/running/]] - Задача «Утренняя пробежка»
* [[http://pythontutor.ru/lessons/while/problems/seq_second_max/]] - Задача «Второй максимум»
* [[http://pythontutor.ru/lessons/while/problems/kth_fibonacci/]] - Задача «Числа Фибоначчи»
* [[http://pythontutor.ru/lessons/while/problems/is_fibonacci/]] - Задача «Номер числа Фибоначчи»
=== Списки ===
**Теория.**
[[http://pythontutor.ru/lessons/lists/#section_1]]
**Практика**
* [[http://pythontutor.ru/lessons/lists/problems/even_indices/]] Задача «Четные индексы»
* [[http://pythontutor.ru/lessons/lists/problems/even_elements/]] Задача «Четные элементы»
* [[http://pythontutor.ru/lessons/lists/problems/increasing_neighbours/]] Задача «Больше предыдущего»
* [[http://pythontutor.ru/lessons/lists/problems/more_than_neighbours/]] Задача «Больше своих соседей»
* [[http://pythontutor.ru/lessons/lists/problems/maximal_element/]] Задача «Наибольший элемент»
**Усложненные варианты**
* [[http://pythontutor.ru/lessons/lists/problems/unique_elements/]] - Задача «Уникальные элементы»
* [[http://pythontutor.ru/lessons/lists/problems/lists_queens/]]- Задача «Ферзи»
=== Функции и рекурсия ===
* [[http://pythontutor.ru/lessons/functions/]] - Теория + задачи (все)
=== Словари ===
{{:dict_.png?200|Перебор элементов словаря}}
http://pythontutor.ru/lessons/dicts/ - Теория + задачи
=== Динамическое программирование ===
* [[http://informatics.mccme.ru/mod/book/view.php?id=266]]
==== Подготовка к ЕГЭ по программированию ====
* https://foxford.ru/wiki/informatika/zadachi-na-kortezhi-i-mnozhestva-v-python-ege-27 Задачи на кортежи и множества в Python (ЕГЭ-27)
* http://kpolyakov.spb.ru/school/ege.htm (внизу страницы 27 задача с решениями на языке Python)
==== Прикладное программирование на языке Python ====
* [[https://habrahabr.ru/company/pechkin/blog/281915/]] - Как отправить электронное письмо с помощью Python: руководство для «чайников»
* http://python-3.ru/page/imap-email-python - Читаем почту через IMAP в Python
* https://python-scripts.com/send-email-smtp-python - Работа с почтой — модули email / smtplib в Python
**На английском**
* http://stackabuse.com/how-to-send-emails-with-gmail-using-python/
* https://www.nixtutor.com/linux/send-mail-through-gmail-with-python/
* https://medium.com/@williamr/how-to-send-an-email-from-a-gmail-account-with-python-b5b6e44c27b6
* https://stackoverflow.com/questions/10147455/how-to-send-an-email-with-gmail-as-provider-using-python
==== Pixel graphics in terminal with unicode braille characters ====
* [[https://github.com/asciimoo/drawille]]
==== Язык программирования Python ====
//Учебныйhttp://www.intepra.ru/wiki/lib/images/toolbar/hequal.png курс. Денис Павлович Кириенко//
* [[https://informatics.mccme.ru/course/view.php?id=156]]
==== ЕГЭ - 27 задача ====
* http://ege.programming1189.ru/index.html
* [[http://ege.programming1189.ru/task27next2.html]]
* [[http://ege.programming1189.ru/task27.html]]
* [[http://informatics.msk.ru/mod/statements/view3.php?id=15505&chapterid=112426]]
==== Ссылки на учебные ресурсы: ====
* [[http://www.intepra.ru/wiki/doku.php?id=start#учебные_ресурсы_по_языку_python]] - Учебные ресурсы по языку Python
* [[http://pythontutor.ru/]] - интерактивный учебник
* [[https://snakify.org/]] - интерактивный учебник на английском
* [[https://stepik.org/lesson/24458/step/1?unit=6765]] - **1.2 Модель данных: объекты.** Объектная модель структуры программного кода в среде программирования Python. Принципы динамической типизации.
* [[https://stepik.org/course/67/syllabus]] Python для начинающих
* [[https://stepik.org/course/431/]] Адаптивный тренажер Python!!! (При прохождении курса включается специальный адаптивный режим, который подбирает контент индивидуально для каждого студента, учитывая его уровень и пробелы в знаниях.)
* [[http://www.bogotobogo.com/python/pytut.php]] - Python tutorial!!!
* [[http://www.bogotobogo.com/python/OpenCV_Python/python_opencv3.php]] OPENCV 3 WITH PYTHON!!!
* [[http://nbviewer.jupyter.org/github/probabilitydiht/python/blob/master/python_help.ipynb]] ФИВТ МФТИ Курс математической статистики. Никита Волков (email, VK). Справочник по Python
===== Прикладное программирование на языке Python (Web технологии) =====
* [[http://python-3.ru/page/modul-stringio-python]] Модуль StringIO в Python
* https://compscicenter.ru/media/slides/python_2014_autumn/2014_10_08_python_2014_autumn.pdf - !!! **Строки, байты...**
* http://python.su/forum/topic/8635/?page=1#post-56706 - форум
===== slack + vk + python =====
* [[http://python-3.ru/page/kak-podruzhit-slack-i-vk-s-pomoshhju-python]]
===== Последовательный порт + python =====
* [[https://zhevak.wordpress.com/2014/02/11/%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%BF%D0%BE%D1%80%D1%82-%D0%B4%D0%B0-%D0%BF%D0%BE%D0%BC%D0%BE%D0%B6%D0%B5%D1%82-%D0%BD%D0%B0%D0%BC-p/ | Последовательный порт.]]
* [[https://zhevak.wordpress.com/2017/12/21/python3-%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8/ | Байтовые последовательности.]]
* https://playground.arduino.cc/Interfacing/Python
* http://www.instructables.com/id/Raspberry-Pi-Arduino-Serial-Communication/
* https://diyprojects.io/python-code-read-serial-port-raspberry-pi/#.WkESTVVl-Uk
* http://digitrode.ru/computing-devices/mcu_cpu/262-soedinyaem-raspberry-pi-s-arduino-cherez-serial-gpio.html
* https://blogs.msdn.microsoft.com/sos/2015/07/01/arduino-raspberry-pi/
*
===== python-telegram-bot =====
=== Наиболее эффективные ресурсы по данной теме ===
* https://circuitdigest.com/microcontroller-projects/raspberry-pi-telegram-bot
* https://circuitdigest.com/microcontroller-projects/control-raspberry-pi-gpio-with-telegram
* https://ph0en1x.net/86-raspberry-pi-znakomstvo-s-gpio-perekluchatel-i-svetodiod.html - кнопка
* https://webhamster.ru/mytetrashare/index/mtb0/13778868522frfe4y3tg GPIO - для чайников
* http://home-smart-home.ru/telegram-bot-raspberry-pi-signalizaciiya-control/ - Telegram bot на Raspberry pi: сигнализация, контроль и управление!!!
* https://kostya.co/create-first-telegram-bot/ - Создаём своего первого робота в Telegram при помощи Python 3 ???
* https://groosha.gitbooks.io/telegram-bot-lessons/content/pytelegrambotapi_basics.html - Декораторы
* https://github.com/eternnoir/pyTelegramBotAPI/blob/master/README.md - **pyTelegramBotAPI!!!**
* http://raspberrypi.ru/blog/613.html - Система верификации пользователей посредством RFID карт с отправкой сообщений в Telegram
* https://groosha.gitbooks.io/telegram-bot-lessons/chapter1.html Пишем бота для Telegram на языке Python
* https://www.gitbook.com/book/groosha/telegram-bot-lessons/details Пишем бота для Telegram на языке Python
* https://geektimes.ru/post/289309/ - Управляем домом через Telegram
* https://geektimes.ru/post/284258/ - Умная теплица в Telegram
* [[http://rus-linux.net/MyLDP/soft/home_automation_raspberry_pi.html]] - Система управления умным домом на основе Raspberry Pi
=== Алтернативное решение ===
* [[http://python-3.ru/page/send-sms-python]] - Отправка SMS через Python [в одну функцию]
=== Дополнительные ресурсы по данной теме ===
* [[https://kostya.co/create-first-telegram-bot/]] - Создаём своего первого робота в Telegram при помощи Python 3 !!! (хорошо написано)
* [[http://kip-world.ru/sozdat-telegram-bota-na-yazyke-python-realno-ot-prostogo-k-slozhnomu.html]] - Создать Telegram бота на языке Python реально — от простого к сложному !!! (хорошо написано)
* [[http://rtportal.ru/index.php?id=148:telegram-python]]!!! (хорошо написано)
* https://geektimes.ru/post/289309/ - Управляем домом через Telegram
* https://create.arduino.cc/projecthub/JohnWick/telegram-bot-with-esp8266-dbada8
* http://forum.amperka.ru/threads/arduino-esp8266-raspberry-pi-2-openhab-%D0%A3%D0%BC%D0%BD%D1%8B%D0%B9-%D0%B4%D0%BE%D0%BC-%D0%B0%D0%B7%D1%8B-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F.5043/page-28
* http://www.marcsblog.de/2016/01/openhab-informiert-nun-per-telegram-messenger/
* https://vk.com/page-64980878_51001401 - Персональный ассистент с Telegram и Arduino!!!
* [[https://github.com/assertm/Rpi_verificator]]
* https://tlgrm.ru/docs/bots
* https://tlgrm.ru/docs/bots/api
* https://tlgrm.ru/docs/bots/samples#python
* https://pypi.python.org/pypi/python-telegram-bot
* https://github.com/python-telegram-bot/python-telegram-bot/wiki/Introduction-to-the-API !!!
* https://github.com/python-telegram-bot/python-telegram-bot/wiki/Code-snippets !!!
* https://stackoverflow.com/questions/31860628/how-to-send-an-image-from-a-telegram-bot
* https://habrahabr.ru/post/322050/ - Телеграм бот на Python с использованием только requests
* https://good-developers.com/prostoj-telegram-bot/ - Пишем Бот для телеграма на Python
* https://ruclip.com/video/3xKwbY6YB_0/telegram-bot-python-script.html ???
* https://jeckill.ru/pishem-bota-dlya-telegram-prinimaem-fajly/ Пишем бота для Telegram — принимаем файлы
* https://khashtamov.com/ru/create-telegram-bot-in-python/
* https://tyvik.ru/blog/242 ..... flask.
* https://toster.ru/q/420436 ..... flask.
* https://www.gitbook.com/book/groosha/telegram-bot-lessons/detailsПишем ботов для Telegram на языке Python (книга) !!!
* http://novikovmaxim.livejournal.com/421130.html - Делаем простейшего бота для мессенджера Telegram
* DV (domain validation) SSL https://www.firstssl.ru/ssl/dv
* https://www.globessl.ru/domain-validation-ssl-certificate/
* https://1cloud.ru/blog/sozdat-ili-kupit-ssl
* https://1cloud.ru/services/ssl
* https://habrahabr.ru/post/195808/ Настраиваем HTTPS-сервер на nginx
* https://habrahabr.ru/post/252555/ - Arduino & OpenHAB
*
* https://habrahabr.ru/post/282429/
* https://simplecloud.ru/
=== Экспертные системамы ===
http://in.1543.ru/doc/logo/soprunov-2009.pdf 110
http://forundex.ru/yap/Sozdatj-igru-Otgadaj-zhivotnoe-762758 164
http://www.stepanoff.info/lisp/materials/prolog.pdf
https://owlweb.ru/wp-content/uploads/2017/04/u.-send-k.-send-hello-world-zanimatelnoe-programmirovanie-dlya-detej-i-nachinayushhix.pdf
https://www.manning.com/books/hello-world-second-edition
* https://www.datacamp.com/courses/building-chatbots-in-python
Request ...
[[https://api.telegram.org/bot<ваш_токен>/getUpdates]]
[[https://api.telegram.org/bot123456789:FFEt9K9kreapBJk5pFnjHvEyQpwa1enRKp4/getUpdates ]]
[[https://api.telegram.org/bot123456789:FFEt9K9kreapBJk5pFnjHvEyQpwa1enRKp4/sendMessage?chat_id=354053095&text=Hello!]]
https://youtu.be/MFXINARkpxw Оформление бота
[[https://github.com/eternnoir/pyTelegramBotAPI/blob/master/README.md]] - pyTelegramBotAPI
=== Codeskulptor ===
* http://www.codeskulptor.org/
* https://github.com/sreesindhusruthiyadavalli/Python-Code-skulptor
* https://github.com/gnpatterson/codeskulptor
* https://github.com/TogusaRusso/codesculptorlabs
=== Codeskulptor3 for Python3 ===
* http://py3.codeskulptor.org/
*
=== Игры на Python ===
[[https://python-scripts.com/create-game-pyqt5-sapper]] - Сапёр
==== Учебные ресурсы по языку Python ====
* [[http://dfedorov.spb.ru/python3/book.pdf]] - Д. Ю. Федоров. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ПРИМЕРЕ ЯЗЫКА PYTHON
* [[http://aliev.me/runestone/]] - Книга: 9. Problem Solving with Algorithms and Data Structures using Python By Brad Miller and David Ranum (перевод). \\
* [[https://github.com/jakevdp/WhirlwindTourOfPython]] - Введение в Python
* [[https://jakevdp.github.io/PythonDataScienceHandbook/]] - Python Data Science Handbook
* [[https://github.com/demidovakatya/vvedenie-mashinnoe-obuchenie]] - Постоянно обновляемая подборка ресурсов по машинному обучению.
* https://habrahabr.ru/company/wunderfund/blog/316826/ - Особенности Jupyter Notebook...
* [[http://pythontutor.com/]] - Визуализатор кода
* [[http://pythontutor.ru/]] - интерактивный учебник по языку Pyhton \\
* [[https://pythonz.net/references/named/str.rsplit/]] - справочник по языку Python \\
* [[http://pythonz.net/references/named/mini-yazyk-formatirovaniya/]] - Правила форматирования
* [[http://www.toves.org/books/cpy/]] - C for Python programmers \\
*
* https://www.hackerrank.com/dashboard - **задачи на программирование**
*
* [[http://sis.khashaev.ru/2013/august/c-prime/]] - летняя компьютерная школа
*
* [[https://yadi.sk/i/R5SdeB2x3DLQCn]] - ** Избранные ссылки **
*
* [[https://proglib.io/p/algorithms-structures-learn/]] - Изучаем алгоритмы и структуры данных правильно
*
* [[https://proglib.io/p/awesome-algorithms/]] - Изучаем алгоритмы: полезные книги, веб-сайты, онлайн-курсы и видеоматериалы
*
* [[https://github.com/bayandin/awesome-awesomeness]] - Awesome Awesomeness
*
* [[https://github.com/bayandin/awesome-awesomeness]] - A curated list of awesome Python frameworks, libraries, software and resources
* [[https://awesome-python.com/]] - A curated list of awesome Python frameworks, libraries, software and resources.
*
* [[https://github.com/kirang89/pycrumbs]] - Bits and bytes of Python from the Internet
*
* [[https://github.com/svaksha/pythonidae]] - Curated decibans of scientific programming resources in Python.
* [[http://svaksha.github.io/pythonidae/]] - Pythonidae curates decibans of Python libraries and resources for scientific programming and mathematical and statistical computing. Some resources listed here may also use other languages like Go, Java, Julia, R-language, etc.. in their codebase.
**!!!** [[about_Python|Язык программирования Python]]; - Дополнительные ресурсы, связанные с изучением языка программирования Python, об инструментарии, учебных пособиях, тренажерах (об исполнителе "Черепашка", исполняющем команды, написанные на языке Python)... [[about_Python|ПОДРОБНЕЕ >>>]]