Лучше знайте свои языки программирования: введение в Python
Python - широко используемый язык программирования из-за его простоты и ясности. Он также испытывает растущий интерес из-за его использования с малиной Pi и его общей философией. В этой статье мы рассмотрим материалы, необходимые для использования Python.
Язык программирования Python начался в конце 1982 года, когда Guido van Rossum вошел в команду, разрабатывающую язык ABC. После окончания проекта ABC он присоединился к команде OSA Amoeba, когда он работал над простым проектом в свободное время. Python является результатом работы, которую он выполнял в свое свободное время. Повестка дня этого языка программирования была гибкой и общедоступной.
Python прост в использовании, легко читается и содержит несколько программных диаграмм, таких как объектно-ориентированное, функциональное и параллельное программирование. Кроме того, он поддерживается огромными группами, которые создали множество библиотек с открытым исходным кодом, ориентированных на Python. Краткий список этих сторонних библиотек включает:
1. NumPy: используется для научного программирования, такого как матричные вычисления
2. NLTK: инструментарий для обработки языка для Python
3. PySerial: дает возможность использовать последовательную связь
4. PyGame: помогает создавать игры
5. PyBrain: помогает создавать искусственный интеллект
Различия между Python и C
В отличие от C, Python является языком программирования общего назначения и может использоваться для создания чего-либо из веб-интерфейса для визуальных приложений. Это также динамический язык, который может автоматически управлять памятью. С другой стороны, поскольку уровень интерпретации Python выше C, он не может конкурировать с C в скорости работы.
Однако разработка программы с использованием Python может сэкономить много времени и ресурсов, поскольку она намного проще, чем C.
В Python, как PHP и Perl, нет необходимости определять типы переменных. В Python нет определения типа, тогда как C должен знать типы переменных.
Например, в C определение целочисленной переменной выглядит следующим образом:
int a=4;
В приведенной выше строке указано, что «a» - это переменная в памяти и размер целого. Однако в Python мы можем просто объявить переменную без упоминания ее типа:
a=1
Тип переменной является динамическим в Python и может меняться во время выполнения. В приведенном выше коде указано, что «a» ссылается на часть памяти. Вышеприведенный код интерпретируется следующим образом:
1. Создана часть памяти с размером целого, поскольку Python знает, что «1» является целым числом.
2. Python сохраняет имя «a» в другой части памяти.
3. Создана ссылка, в которой говорится, что «a» ссылается на «1».
Как я уже упоминал выше, Python может самостоятельно управлять памятью, в отличие от C. В Python каждая переменная имеет ссылочный номер, в котором указывается общая сумма, ссылающаяся на нее. После каждого объявления Python увеличивает ссылочный номер. После его удаления он уменьшает количество ссылок. Наконец, после того, как ссылочный номер переменной станет нулевым, Python сам устранит переменную из памяти.
Этот метод называется сборкой мусора. Импортируя модуль sys и используя функцию getrefcount (), мы можем узнать, сколько переменных ссылается на объект. Код показан ниже:
import sys a = 1 sys.getrefcount(1) 760 a = 2 sys.getrefcount(1) 759 sys.getrefcount(2) 96 b = a sys.getrefcount(2) 97
Работа со списками в Python
Работа с массивами очень проста в Python. Тип списка - это наиболее гибкий готовый объект в Python. Объект списка может быть определен с помощью () и может иметь членов независимо от их типа. Например, приведенный ниже код определяет список со всем:
L = (15, 3.14, 'string', (1, 2))
С этой архитектурой списка реализация матрицы очень проста. Вот пример:
L = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
Как указано выше, назначая переменную другой переменной, Python просто добавляет ссылку на память. Это поведение сопоставимо с использованием указателей в C. Например, мы могли бы скопировать список следующим образом:
L1 = (1, 2, 3) L2 = L1
Если мы изменим значение элемента в списке L2, этот элемент также будет изменен в списке L1. Это связано с тем, что L2 - это не что иное, как указатель на адрес памяти списка L1.
Мы можем избежать этого, сделав копию списка L1, а затем назначив его L2 следующим образом:
L2 = L1(:)
Как вы можете видеть, работа с списками в Python очень проста и, как и Matlab, мы можем получить доступ ко всем элементам списка, используя (:). Еще одна полезная вещь в Python - это объект dict. Объект dict похож на карту и имеет ключ и значение. Объект dict может быть определен следующим образом:
d = {1:'One', 2:'Two', 3:'Three'}
Для более подробного ознакомления здесь приводятся некоторые важные синтаксические шаблоны. Вот как вы можете определить условную команду:
if percent == 100: print('100 %') elif percent >= 75: print('75-100 %') elif percent >= 50: print('50-75 %') elif percent >= 25: print('25-50 %') else: print('less than 25 %')
Вот как вы можете определить цикл «for»:
for target in object: statements
Вот как вы можете определить цикл while:
while condition: statements
Другое важное различие заключается в том, что в Python нам не нужно использовать {} как указание на блок. Python будет интерпретировать блоки в соответствии с их отступом. Как видно на рисунке 1, линии с одинаковым отступом считаются одним и тем же блоком; то есть все утверждения с одинаковым расстоянием до правой стороны принадлежат одному и тому же блоку.

Рисунок 1. Отступы часов Python. Источник изображения: //www.python-course.eu
Работа с Python в малине Pi
Число дизайнеров, использующих малину Pi в продвинутых проектах, быстро растет. Из-за своей эффективности многие используют Raspbian OS для своей малины.
В Raspbian мы можем воспользоваться преимуществами Python, используя предварительно установленную библиотеку RPi. GPIO. В следующих частях мы рассмотрим использование Python в Raspbian. Frst, нам нужно импортировать библиотеку RPi. GPIO следующим образом:
import RPi. GPIO as GPIO
Вызов малины Pi в библиотеке GPIO можно сделать двумя способами.
Первый способ - вариант BOARD, что означает, что мы можем вызывать контакты в соответствии с их номером, напечатанным на малине Pi. Эта нумерация не изменится между моделями малины Pi.
Второй вариант - BCM. Используя BCM, мы можем вызывать контакты в соответствии с их номером, назначенным для каждой малины Pi. Например, распиновка малины Pi 2 модели B показана на рисунке 2:

Рисунок 2. Распиновка малины Pi 2 Model B. Изображение предоставлено Малиной Пи
Как вы можете видеть в разъеме, контакт 3 назначается GPIO2. Если мы хотим использовать этот вывод в опции BOARD, мы должны назвать его Pin3. Чтобы использовать опцию BCM, нам нужно называть ее GPIO2. Используя следующие коды, мы можем установить режимы вывода:
#set up GPIO using BCM numbering GPIO.setmode(GPIO. BCM) #setup GPIO using Board numbering GPIO.setmode(GPIO. BOARD)
После установки режимов вывода мы можем установить их направление, а также, при необходимости, установить для них подтягивающий или выпадающий резистор. Следующие коды будут делать это:
GPIO.setup(23, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) GPIO.setup(24, GPIO. IN, pull_up_down = GPIO. PUD_UP)
Одна из важных вещей - очистить режим GPIO перед выходом из программы. Если мы не очистим GPIO, он останется в своем последнем значении. GPIO.cleanup () сделает это для нас.
Кодирование малины Pi с Python очень просто и полезно, потому что вы можете писать приложение быстро и без большого количества специализированных знаний. Например, используя приведенный ниже код, мы можем просто определить прерывание на булавке и установить обратный вызов:
GPIO.add_interrupt_callback(7, do_something, debounce_timeout_ms=100)
Ресурсы разработки
CodeSkulptor представляет собой очень хорошую среду, которую вы можете использовать для запуска скриптов Python в Интернете. Это бесплатный инструмент!
Когда вы запускаете программу, вы обращаетесь к очень полезному примерному примеру, в котором показано, как запустить простой графический интерфейс в Интернете с помощью Python и библиотеки «simplegui».

Рисунок 3. Пример. Изображение предоставлено Codeskulptor
Как вы можете видеть на рисунке 3, представлен пример, который запускает простой графический интерфейс. Запустив его, мы можем увидеть возможности Python и его гибкость для работы везде, даже в веб-приложениях. Результат примерного изображения показан на рисунке 4.

Рисунок 4. Запуск примера Codeskulptor
Вы можете получить доступ к демо-разделу здесь, чтобы просмотреть другие материалы.
Вывод
В этом кратком введении к Python мы рассмотрели некоторые различия между Python и C и нарисовали некоторые примеры синтаксиса для лучшего понимания Python. Затем мы кратко узнали, как создать приложение, используя библиотеку GPIO для Raspberry Pi, и, наконец, мы познакомились с Codeskulptor и его средой.
Это просто краткий обзор некоторых аспектов Python. Если вы хотите увидеть больше статей на языках программирования, сообщите нам об этом в комментариях ниже!