Определение вашего проекта!

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

Примером 5 слов может быть: Yelp делает жилье дороже.

2 опишите (в коротком абзаце), что вас интересует в теме/темах, о которых вы публикуете, и поделитесь изображениями.

Сессия A Проектное задание

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

Учимся думать кодом

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

Обработка — это отличная интегрированная среда разработки (IDE), которая, говоря простым языком, означает среду для написания кода и его визуализацию. IDE обычно состоит из:

  • редактор исходного кода — большое пустое пространство в разделе "Обработка".
  • Инструменты автоматизации сборки (называемые Canvas в процессе обработки) – это серое окно, которое появляется при запуске кода (нажмите кнопку воспроизведения). Именно здесь код превращается в визуализацию, когда вы пишете код, предназначенный для холста.
  • отладчик — это черное пространство под вашим редактором кода, которое становится красным при возникновении ошибки. Ошибки — это часть обучения кодированию и кодирования в долгосрочной перспективе. Так что не волнуйтесь, если увидите его, это часть процесса.

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

3. Пройдите первые 3 руководства по обработке Python:

  • Начало работы.Вы можете пропустить первую часть, так как мы уже загрузили Processing и изменили модель. Начните с «Ваша первая программа». Вы заметите, что наш интерфейс немного изменился после обновления Processing.
  • Обзор обработки
  • Система координат и формы

Вы можете найти их здесь:



Основы Python

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

Комментарии

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

Ниже измените комментарий и код, который печатается.

#this is a comment
print 'this is code' #this is also a comment

Переменные

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

a = 2

Пока ничего не произойдет, пока я не попрошу Processing и Python что-нибудь сделать с этой переменной. Я мог бы распечатать…

a = 2
print a

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

a = 2
print a
ellipse(50, 50, 80, 80)

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

Если вы помните из нашего учебника по обработке, до того, как эллипс был структурирован таким образом, эллипс (позиция x, позиция y, ширина, высота). Теперь вы можете догадаться, как сделать наш эллипс размером с нашу переменную?

a = 2
print a
ellipse(50, 50, a, a)

Довольно опрятно! За исключением того, что наш эллипс крошечный! Давайте масштабируем его с помощью некоторых операторов Python.

  • дополнение +
  • вычитание -
  • умножение *
  • дивизия /
  • возвести в степень **
  • по модулю %

Можете ли вы придумать способ масштабировать наш эллипс? Как гласит ужасная поговорка, «есть несколько способов содрать шкуру с кошки». Сначала попробуйте масштабировать эллипс самостоятельно, а затем не стесняйтесь проверить некоторые из способов, которые я придумал ниже:

a = 2
print a
ellipse(50, 50, a*20, a*30)

or

a = 2+30
print a
ellipse(50, 50, a, a)

or

a = 2
b = 20
print a
ellipse(50, 50, a+b, a*b)

Это немного странно, потому что наш код еще ничего не значит. Переменная с именем a или b — это кодировка, нет-нет! Мы должны назвать их как-то более описательно, чтобы мы помнили, что они делают. Для переменных лучше использовать длинные описательные имена, чем короткие абстрактные имена. Например, если вы сохраняете население Нью-Йорка в 2017 году в переменной, лучше назвать ее population_2017_NYC а не p.

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

iAmJustOneLongCamelCaseVariableThatIMadeUp = 2

Вы также можете называть переменные, используя символы подчеркивания, чтобы объединить слова:

i_am_using_underscores_for_this_variable = 2

Создайте свой собственный набор переменных и распечатайте их.

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

a = 2
b = 20
print a
ellipse(50, 50, a+b, a*b)

Я написал более читаемый код, но он не работает. Можете ли вы исправить, что не так с моим кодом ниже?

radius = 2
scalar = 20
print a
ellipse(50, 50, radius+scalar, radius*scalar)

Вы могли заметить, что в консоли написано NameError: ‘a’ не определено. Это потому, что мы просим Processing напечатать переменную, которой больше не существует. Наша переменная a теперь называется «радиус» или как бы вы ее ни назвали. Мы можем исправить это, изменив print a на print radius.

radius = 2
scalar = 20
print radius
ellipse(50, 50, radius+scalar, radius*scalar)

или мы можем определить переменную с именем «a» и распечатать ее.

radius = 2
scalar = 20
a = 12
print a
ellipse(50, 50, radius+scalar, radius*scalar)

Переменные могут содержать данные разных типов, наиболее распространенными в Python являются:

  • int (означает целое или целое число) 46
  • float (означает плавающую точку или десятичное число) 46.0
  • bool (означает логическое значение или True/False) True
  • str (означает строку или «фрагмент текста») 'piece of text'

Каждый из этих форматов данных записывается определенным образом. Целые числа и числа с плавающей запятой можно записывать напрямую, тогда как строка всегда должна быть заключена в одинарные кавычки, например 'piece of text'. Логические значения должны быть написаны с заглавной буквы, например True.

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

print type(8)
print type(8.1)
print type(False)
print type('I am a piece of...text')

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

print type(8)
print type(8.1)
print type(False)
print type(I am a piece of...text)

Python выдает ошибку, потому что не понимает это как строку.

Также обратите внимание на окраску синтаксиса:

Вы также можете напечатать тип для переменных:

radius = 2
print type(radius)

Что произойдет, если вы измените свою переменную радиуса на строку?

radius = 'twwoooooo'
print type(radius)

Запомните наши операторы (+, -, * и т.д.). Операторы в Python могут работать по-разному с каждым типом. Например, + можно использовать для сложения чисел, а также для объединения строк.

print 8 + 3
print 'First ' + 'Last'

Но операторы не работают при объединении типов. Например, мы не можем добавить целое число 8 к строке «Первый».

print 8 + 'First '

Но мы можем соединить целое число и строку, если соединим их. Как можно превратить 8 в строку и соединить ее с первой?

print '8' + 'First '

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

myVariable = 8
print str(myVariable) + 'First '

4. Нарисуйте лицо в Python, используя переменные и фигуры, и опубликуйте снимок экрана на своей платформе. Важно, чтобы вы использовали переменные для создания фигур! Вставьте свое лицо рядом с исходным кодом. Ниже приведен пример (но попробуйте сначала сделать это самостоятельно, прежде чем достигать пика!!!!). Не забудьте прокомментировать свой код знаком #. Чтобы создать блок кода в Medium, используйте 3 обратных галочки ` ` ` без пробелов между ними и начните печатать.

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

rect(30, 20, 55, 55)
ellipse(56, 46, 55, 55)
triangle(30, 75, 58, 20, 86, 75)
point(30, 20)

Это мой пример лица, но вы можете сделать любое количество лиц.

#this is where the eyes are
eyeRadius = 30
eyeYPosition = 20
leftEyeXPosition = 20
rightEyeXPosition = 80
#this is where the mouth is
mouthWidth = 80
mouthHeight = 20
mouthX = 10
mouthY = 70
#this is where I draw the shapes of the face
ellipse(leftEyeXPosition, eyeYPosition, eyeRadius, eyeRadius)
ellipse(rightEyeXPosition, eyeYPosition, eyeRadius, eyeRadius)
rect(mouthX, mouthY, mouthWidth, mouthHeight)

Многочастные переменные

Переменная, состоящая из нескольких частей, позволяет нам хранить множество фрагментов данных, таких как список, в одной переменной. Это особенно важно для нас, потому что нас интересуют БОЛЬШИЕ ДАННЫЕ и, следовательно, списки данных.

Существует два основных типа составных переменных:

  • списки (иногда называемые массивами) myVariableList = [1, 2, 3, 4, 5]
  • словари (иногда называемые парами ключ-значение) myVariableDict = {'a': 1, 'b': 2, 'c': 3}

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

listNumbers = [1, 2, 3, 4, 5]
listFruits = ['apples', 'oranges', 'bananas']

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

listNumbers = [1, 2, 3, 4, 5]
print listNumbers[0]
listFruits = ['apples', 'oranges', 'bananas']
print listFruits[2]

В коде, когда мы считаем, мы начинаем с 0. Таким образом, в этом случае 0-й индекс — это целое число 1.

Теперь исправьте мой код ниже:

listFruits = ['apples', 'oranges', 'bananas']
print listFruits[3]

Вы поняли это? Используемый нами индекс «3» был вне допустимого диапазона, потому что в нашем списке всего 3 элемента, и если мы начнем считать с 0,1,2 к тому времени, когда дойдем до 3, в нашем списке не останется ни одного элемента.

Также можно смешивать типы данных в ваших списках:

listFruits = ['apples', 'oranges', 6, 'bananas', 89]

Вы также можете узнать тип элемента в списке или узнать тип переменной, которая является списком:

listFruits = ['apples', 'oranges', 6, 'bananas', 89]
print type(listFruits)
print type(listFruits[1])
print type(listFruits[2])

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

listFruits = ['apples', 'oranges', 6, 'bananas', 89]
print listFruits[-1]

Можете ли вы понять, что не так с моим кодом?

listFruits = ['apples', 'oranges', 6, 'bananas', 89]
print type listFruits[-1]

Я неправильно использую тип слова без скобок!

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

numbers = [1, 2, 3, 4, 5]
numbers.append(6)
print numbers

Вы даже можете начать с пустого списка и постепенно заполнять его добавлениями:

numbers = []
numbers.append(1)
numbers.append(2)
print numbers

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

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

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

dict = {'a': 1, 'b': 2, 'c': 3}

В этом словаре целые числа 1, 2 и 3 связаны со своими уникальными ключами «a», «b» и «c». Обратите внимание, что ключи должны быть строками, а значения могут быть любого типа данных. Чтобы получить часть данных из этого словаря, вы снова можете использовать нотацию с квадратными скобками, на этот раз передавая ключ вместо индекса:

dict = {'a': 1, 'b': 2, 'c': 3}
print dict['a']

Чтобы добавить записи в словарь, вам просто нужно указать данные, относящиеся к конкретному ключу, используя оператор «=» и тот же синтаксис квадратных скобок:

dict = {'a': 1, 'b': 2, 'c': 3}
dict['d'] = 4
print dict['d']

Как и в случае со списками, вы можете начать с пустого словаря и постепенно наращивать его:

dict = {}
dict['a'] = 1
dict['b'] = 2
print dict

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

dict = {'a': 1, 'b': 2, 'c': 3}
print dict.keys()

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

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

dict = {}

dict['numbers'] = [1, 2, 3, 4, 5]
dict['fruits'] = ['apples', 'oranges', 'bananas']

dict['numbers'].append(6)
dict['fruits'].append({'berries':['strawberries', 'blueberries']})

#compound request, should print 'blueberries'
print dict['fruits'][-1]['berries'][1]

JSON, один из наиболее реализованных и простых в работе форматов данных, на самом деле основан на этой концепции вложенных списков и пар ключ-значение и имеет отличную поддержку почти во всех языках программирования, включая Python и JavaScript. Мы начнем реализовывать его позже в ходе курса, а пока вы можете ознакомиться с его документацией здесь: http://json.org/.

Можете ли вы понять, как сделать эллипс, используя элементы из списка или словаря? Попробуйте!

numbersFruits = ['apples', 'oranges', 9, 'bananas', 19]
ellipse(50, 50, numbersFruits[2], numbersFruits[-1])

5 Теперь, когда мы научились получать элементы из списка. Давайте создадим новое лицо, используя словарь или список. Рисуйте лица в Python, используя переменные, списки и фигуры. Опубликуйте снимок экрана в своем Медиуме. Важно, чтобы вы использовали список или словарь для создания фигур! Вставьте свое лицо рядом с исходным кодом.

Размещение ваших публикаций в среде

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

  1. Перейти в режим редактирования в вашей истории
  2. Щелкните значок ….
  3. Нажмите Добавить в публикацию.
  4. Выберите целевую публикацию.
  5. Вернитесь к своей истории и в раскрывающемся списке «Опубликовать» добавьте тег #research и нажмите «Опубликовать».

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