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

Объявляем массив чисел:

values = [1,2,3,5,10,15,20]

Добавляем элемент в массив:

values.append(7)

Выводим массив на экран:

print (values)

Выводим элементы массива построчно:

for p in values:

print (p)

Это же можно сделать с помощью индексов (нумерация элементов массива начинается с 0):

for i in range(0,len(values)):

print (values[i])

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

values = [0.0] * 100

print (values)

Есть немного более сложный, но и более гибкий вариант создания массива. Создадим массив из 100 элементов, заполненный нулями:

values = [0.0 for i in range(100)]

Создадим массив, заполненный числами 0,1,..,99:

values = [i for i in range(100)]

Создадим массив, заполненный квадратами чисел:

values = [i*i for i in range(100)]

Создать двухмерный массив в Python также несложно:

matrix4x4 = [ [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]]

matrix4x4[0][0] = 1

print (matrix4x4)

Аналогично вышеописанному способу, можно создать 2х-мерный массив 100x100:

values100x100 = [ [0.0 for j in range(100)] for i in range(100)]

Арифметические операции

Сложение, умножение, деление:

x1 = 3

x2 = (2*x1*x1 + 10*x1 + 7)/x1

Возведение в степень:

x3 = x1**10

print (x1,x2,x3)

Переменную также можно увеличить или уменьшить:

x1 += 1

x1 -= 10

print (x1)

Остаток от деления:

x2 = x1 % 6

print (x2)

Условия в Python кстати, задаются отступами, аналогично циклам:

x1 = 123

print (x1)

if x1 % 2 == 0:

print("x1 even number")

else:

print("x1 odd number")

Подсчитаем сумму элементов массива:

values = [1,2,3,5,10,15,20]

s = 0

for p in values:

s += p

print(s)

Также для этого можно воспользоваться встроенной функцией sum:

values = [1,2,3,5,10,15,20]

print(sum(values))

Пожалуй, этого не хватит чтобы устроиться на работу программистом, но вполне достаточно для понимания примеров в книге. Теперь вернемся к Raspberry Pi.

Примечание

У языка Python есть одна неприятная особенность - по умолчанию он “не знает” русской кодировки, ее нужно принудительно указывать в начале файла:

# -*- coding: utf-8 -*-

print "Русский текст"

Без этого интерпретатор выдаст ошибку. Поэтому чтобы не загромождать код и не писать # -*- coding: utf-8 -*- каждый раз в каждом примере, в дальнейших программах все комментарии будут писаться на английском.

4.4. GPIO: порты ввода-вывода

Знакомство с любой новой платой, мы начнем с уже традиционного - подключим светодиод. Тем более, что как можно увидеть, принципы по сути ничем не отличаются от Arduino. В этом, как и в любых следующих проектах, будем считать что Raspberry Pi включена и готова к работе, а доступ осуществляется через putty.

Наша первая схема будет совсем простой:

Принцип, как можно видеть, точно такой же - мы подключаем светодиод через токоограничительный резистор (кто забыл как это работает, может перечитать главу 1.4). Когда резистор подключен, включим Raspberry Pi и напишем код.

Если мы делаем такой проект первый раз, то сначала нужно поставить необходимые библиотеки. Введем команду sudo apt-get install python-rpi.gpio. GPIO - это general-purpose input/output, или “общие порты ввода вывода”, как раз то что нам нужно.

Запустим редактор для создания или редактирования файла, введем команду:

nano led_blink.py

Скопируем и вставим туда следующий код:

import RPi.GPIO as GPIO

import time

LedPin = 31 # GPIO6

# Setup

GPIO.setmode(GPIO.BOARD)

GPIO.setup(LedPin, GPIO.OUT)

# Loop

try:

while True:

      GPIO.output(LedPin, GPIO.HIGH) # led on

      time.sleep(1.0)

      GPIO.output(LedPin, GPIO.LOW) # led off

      time.sleep(1.0)

except KeyboardInterrupt: # Ctrl+C stop

pass

# Close

GPIO.cleanup()

Нажмем Ctrl+X для выхода из редактора, на вопрос сохранения файла нажмем Y (yes).

Теперь можно запустить программу, и мы увидим мигающий светодиод:

sudo python led_blink.py

Для завершения работы нажмем Ctrl+C, и мы вернемся обратно в командную строку.

Ура, программа работает! Разберем код программы подробнее.

- Строка import RPi.GPIO as GPIO указывает интерпретатору, что надо загрузить модуль RPi.GPIO и использовать его под названием GPIO (писать каждый раз RPi.GPIO было бы слишком длинно). Команда import time таким же способом загружает модуль time. Строка LedPin = 31 создает переменную с нужным номером вывода, тут все просто.

- Строка GPIO.setmode(GPIO.BOARD) указывает, какую нумерацию выводов мы будем

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату