Автор оригинала: Scott Robinson.
Учебник по Python для абсолютных новичков
Python-один из наиболее широко используемых языков. Будь то веб-разработка, машинное обучение и искусственный интеллект или даже программирование микроконтроллеров, Python нашел свое место практически везде.
Эта статья представляет собой краткое введение в Python для начинающих. Эта статья предназначена для абсолютных новичков, не имеющих никакого предыдущего опыта работы на Python, хотя
Я обнаружил, что лучший способ научиться-это попытаться понять теорию, а затем реализовать пример самостоятельно. Помните, что вы не станете лучше в программировании, если не будете практиковать его!
Статья разделена на следующие разделы:
- Зачем изучать Python
- Установка и настройка
- Запуск вашей Первой программы
- Переменные Python
- Операторы в Python
- Условные операторы
- Петли
- Списки, кортежи и словари
- Пример Применения
- Что дальше
Зачем изучать Python
Здесь возникает вопрос, почему вы должны изучать Python. Существует множество других языков программирования; возможно, вы даже изучили некоторые из них. Тогда почему Python, что в нем такого особенного? Существуют различные причины для изучения Python, наиболее важные из которых были перечислены ниже.
Легко учиться
Python считается одним из самых удобных для начинающих языков . Синтаксис Python самый простой из всех. Вам не нужно изучать сложные типы переменных, использование скобок для группировки блоков кода и так далее. Python построен на фундаментальном принципе дружелюбия к новичкам. Очень Востребованный Согласно недавнему опросу indeed.com, Разработчики Python являются вторыми по величине оплачиваемыми разработчиками в США. Огромный потенциал работы Python можно оценить по тому факту, что в 2014 году средний уровень найма программистов снизился на 5%, но разработчики Python все равно увидели рост на 8,7%.
Идеально подходит для веб-разработки
Python молниеносно работает по сравнению с другими языками веб-разработки, такими как PHP и ASP.NET. Кроме того, Python имеет множество удивительных фреймворков, таких как
Django , Flask
и Pylons, что делает веб-разработку еще проще. Такие сайты, как Instagram, Pinterest и The Guardian, основаны на популярном фреймворке Django. Широко используется для машинного обучения и искусственного интеллекта Python является наиболее широко используемым языком для машинного обучения и операций искусственного интеллекта. Библиотеки Python, такие как TensorFlow и scikit-learn, значительно упрощают задачи ИИ по сравнению с MATLAB или R, которые ранее были наиболее широко используемой средой для задач науки о данных и ИИ.
Работает с Raspberry Pi
Python-самый популярный язык программирования для Raspberry Pi, который представляет собой карманный микрокомпьютер, используемый в широком спектре приложений, таких как роботы, игровые консоли, игрушки. Короче говоря, изучите Python, если вы хотите создавать вещи с помощью Raspberry Pi.
Корпоративная Дорогая
Не будет преувеличением сказать, что Python является любимцем всех крупных корпоративных компаний, таких как Google, yahoo, NASA, Disney, IBM и т. Д. Эти компании включили Python в ядро многих своих приложений.
Большое сообщество
Python имеет одно из крупнейших сообществ программирования в Интернете, и оно продолжает расти. Python имеет пятое по величине сообщество переполнения стека и третье по величине сообщество meetup. И самое главное, это 4-й по популярности язык на GitHub, а это значит, что есть тонны существующего кода, на котором можно учиться.
Установка и настройка
Хотя существует несколько способов установки Python для Windows, но ради этой статьи мы будем использовать Anaconda . Это, несомненно, наиболее широко используемая среда Python на данный момент. Чтобы скачать Anaconda, перейдите по этой ссылке:
Хотя существует несколько способов установки Python для Windows, но ради этой статьи мы будем использовать || Anaconda || . Это, несомненно, наиболее широко используемая среда Python на данный момент. Чтобы скачать Anaconda, перейдите по этой ссылке:
Прокрутите немного вниз, и вы увидите параметры загрузки. Выберите, Python 3.6, как показано на следующем скриншоте:
Это позволит загрузить установщик Anaconda на ваш компьютер. Откройте установщик, и вы увидите следующие параметры:
Для установки выполните следующие действия
- Нажмите кнопку “Далее”. Условия появятся, вы можете прочитать, если у вас есть достаточно времени, но вы можете нажать “Я согласен” в любом случае.
- В следующем окне выберите нужный тип установки. Если вы абсолютный новичок в Python, я бы рекомендовал выбрать опцию “Только я”.
- Затем выберите папку установки (лучше всего по умолчанию).
- Появится диалоговое окно “Дополнительные параметры”, оставьте первый параметр не отмеченным, а второй – отмеченным и нажмите кнопку “Установить”. Это показано на следующем скриншоте.
Теперь сядьте и выпейте кофе, установка может занять некоторое время.
После завершения установки вы увидите следующее сообщение:
Нажмите кнопку “Далее”, а затем кнопку “Готово” в последующем диалоговом окне, чтобы завершить установку.
Запуск вашей Первой программы
Хотя вы также можете запускать программы Python через командную строку, обычно новичкам лучше использовать текстовый редактор. К счастью, с установкой Anaconda вы также получаете Jupyter Notebook . “Jupyter Notebook” – это облачное приложение, которое позволяет пользователям создавать, делиться и управлять своими документами. В этой статье мы будем использовать Jupiter для написания кода Python.
Чтобы открыть Jupiter, вы можете перейти в меню Пуск и найти приложение “Jupyter Notebook”. Вы также можете искать его в приложениях. Это показано на следующем рисунке:
Откройте приложение “Jupyter Notebook”. Затем он будет открыт в вашем браузере по умолчанию. Для совместимости я бы рекомендовал вам использовать Google Chrome в качестве браузера по умолчанию, но другие типы браузеров, такие как Firefox, также будут работать.
Когда приложение откроется в вашем браузере, вы увидите следующую страницу:
В правой части страницы вы увидите опцию “Новый”. Нажмите кнопку Thatbutton, и появится выпадающий список. Выберите” Python 3″ из выпадающего списка. Это откроет для вас совершенно новый блокнот, который выглядит следующим образом:
Здесь вы можете легко писать, сохранять и делиться своим кодом Python.
Давайте проверим и убедимся, что все работает нормально. Для этого мы создадим простую программу, которая выведет строку на экран.
Введите следующий код в текстовое поле вашего блокнота Jupyter (показано на скриншоте выше):
print("Welcome to Python!")
print
делает именно то, что звучит, он просто печатает какой-то текст на экране. Текст, который вы хотите отобразить, вводится в двойные кавычки внутри круглых скобок, следующих за ключевым словом print
.
Чтобы запустить код в “Jupyter Notebook”, просто нажмите “Ctrl + Enter”. Вывод вышеприведенного кода должен выглядеть следующим образом:
И вот, пожалуйста, мы успешно выполнили нашу первую программу на Python! В следующих разделах мы продолжим использовать Jupiter для обучения и обсуждения некоторых основных функций Python, начиная с переменных.
Переменные Python
Проще говоря, переменные-это ячейки памяти, в которых хранятся некоторые данные. Вы можете использовать переменные для хранения значения, будь то число, текст или логическое значение (true/false). Когда вам нужно будет использовать это значение позже в вашем коде, вы можете просто использовать переменную, которая содержит это значение. Вы можете почти думать о них как о простых контейнерах, которые хранят вещи для вас для последующего использования.
Здесь важно отметить, что в отличие от Java, C++ и C#, Python не является строго типизированным языком. Это означает, что вам не нужно указывать тип переменной в соответствии со значением, которое она содержит. Python неявно декодирует тип переменной во время выполнения в зависимости от типа данных, хранящихся в ней. Например, вам не нужно указывать int для определения целочисленной переменной с именем “n”. В Python мы просто пишем n
, и тип переменной “n” будет неявно понят во время выполнения.
В Python существует пять различных основных типов данных:
- Числа
- Строки
- Список
- Кортежи
- Словари
В этом разделе мы рассмотрим только числа и строки. Списки , кортежи и словари будут объяснены далее в соответствующем разделе этой статьи.
Числа
Числовой тип переменных хранит числовые данные. Взгляните на следующий простой пример:
num1 = 2 num2 = 4 result = num1 + num2 print(result)
Здесь, в приведенном выше примере , мы имеем две числовые переменные, num1
и num2
, причем обе содержат некоторые числовые данные. Существует третья переменная числового типа, result
, которая содержит результат сложения значений, хранящихся в переменных num1
и num2
. Наконец, в последней строке на экран выводится переменная result
.
Результат будет следующим:
В Python существует четыре различных типа числовых данных:
- Целые числа, такие как действительные целочисленные числа: 10
- Длинные целые числа, которые имеют “L” в конце для значений: 1024658L
- Они также могут быть использованы в шестнадцатеричной и восьмеричной форме
- Данные с плавающей запятой, которые представляют собой числа, выраженные в десятичных дробях: 3.14159
- Комплексные данные, которые используются для представления типов комплексных чисел: 2 + 3j
Строки
Строки используются для хранения текстовых данных в Python. Взгляните на следующий пример:
fname = "Adam" sname = " Grey" fullname = fname + sname print(fullname)
В приведенном выше примере у нас есть две строковые переменные: fname
и sname
. В них хранятся имя и фамилия какого-то человека. Чтобы объединить эти две строки, мы можем использовать оператор “+” в Python. Здесь мы соединяем переменные fname
и sname
и сохраняем результирующую строку в переменной fullname
. Затем мы выводим на экран переменную fullname
.
Результат выглядит следующим образом:
В Python существуют сотни строковых операций, и в будущем у нас будет специальная статья об этих функциях.
Операторы в Python
Операторы в программировании-это конструкции, которые позволяют манипулировать операндом для выполнения определенной функции. Они очень похожи на реальные операторы, такие как арифметические операторы, например сложение, вычитание, больше, меньше, и/ИЛИ операторы и т. Д.
В Python существует семь типов операторов:
- Арифметические операторы
- Логические операторы
- Операторы присваивания
- Операторы сравнения
- Побитовые операторы
- Операторы идентификации
- Операторы-члены
В этой статье мы будем держать его простым и изучим только первые четыре оператора. Другие операторы выходят за рамки данной статьи.
Арифметические операторы
Арифметические операторы выполняют математические операции, такие как сложение, вычитание, умножение, деление и экспоненциальные функции над операндами. Подробные сведения об арифметических функциях приведены в следующей таблице:
Предположим, что переменные n1 и n2 имеют значения 4 и 2 соответственно.
n1 + | Дополнение (+) | Добавляет два или более операндов |
n1 – | Вычитание (-) | Вычитает второй операнд из первого |
n1 * | Умножение (*) | Умножьте два или более операндов |
n1 / | Деление (/) | Разделите первый операнд на второй |
n1 % | Модуль (%) | Находит остаток, когда первый операнд делится на второй |
n1 ** | Экспонента (**) | Переводит силу первого операнда во второй |
Возможно, вы помните, что видели пример оператора арифметического сложения ранее в разделе Числовых переменных данных. В Python операторы сложения могут применяться к любому виду чисел и даже к строкам.
Логические операторы
Логические операторы, которые помогают вам выполнять простую булеву алгебру , поддерживаемые Python, следующие:
Предполагать o1 и o2 иметь ценности Правда и Ложный соответственно.
(o1 и o2) ложно | И | Возвращает true из всех условий true |
(o1 или o2) истинно | ОПЕРАЦИОННАЯ | Возвращает true, если какое-либо из условий истинно |
Not(o1) является ложным | НЕ | Возврат обратного фактического логического состояния |
Следующий код помогает объяснить вышеприведенные операторы на примере:
o1 = True o2 = False r1 = (o1 and o2) print(r1) r2 = (o1 or o2) print(r2) r3 = not(o1) print(r3)
Вывод приведенного выше кода выглядит следующим образом:
False True False
Операторы присваивания
Операторы присваивания позволяют “давать” значение переменным, которые могут быть результатом операции. В следующей таблице приведены некоторые из наиболее широко используемых операторов присваивания в Python:
Назначать | Присвойте значение справа переменной слева | |
n1 – это то же самое, что и + n2 | Добавление и назначение | Добавляет оба операнда и присваивает результат переменной слева |
n1 означает – n2 | Вычитание и присвоение | Вычитает правый операнд из левого и назначит результат левому |
n1 означает * n2 | Умножить и присвоить | Умножает оба операнда и присваивает результат левому |
n1 означает / n2 | Разделите и назначьте | Делит оба операнда и присваивает результат левому |
n1 означает % n2 | Модуль и назначение | Возьмите модуль, разделив левый операнд на правый, и назначьте результат левому |
n1 означает ** n2 | Экспонента и присвоение | Возьмите показатель степени правого операнда влево и назначьте значение влево |
Взгляните на следующий пример, чтобы увидеть некоторые операторы присваивания в действии:
n1 = 4 n2 = 2 n1 += n2 print(n1) n1 = 4 n1 -= n2 print(n1) n1 = 4 n1 *= n2 print(n1) n1 = 4 n1 /= n2 print(n1)
Вывод вышеприведенного кода будет следующим:
6 2 8 2.0
Обратите внимание, что в последней операции мы получаем число с плавающей запятой в качестве результата, тогда как во всех операциях prevoius мы получаем целые числа. Это потому, что это единственная математическая операция в нашем примере, которая может превратить два целых числа в число с плавающей запятой.
Операторы сравнения
Операторы сравнения используются для сравнения двух или более операндов. Python поддерживает следующие операторы сравнения:
Предполагать n1 это 10 и n2 это 5 в следующей таблице.
(n1) не соответствует действительности | == | Возвращает True, если два операнда равны друг другу |
(n1) истинно | != | Возвращает true, если два операнда не равны |
(n1 > n2) истинно | > | Возвращает true, если левый операнд больше правого |
(n1 < n2) неверно | < | Возвращает true, если левый операнд меньше правого |
(n1) истинно | >= | Возвращает true, если левый операнд равен или больше правого операнда |
(n1 =< n2) неверно | <= | Возвращает true, если левый операнд равен или меньше правого операнда |
Рассмотрим следующий простой пример оператора сравнения:
n1 = 10 n2 = 5 print(n1 == n2) print(n1 != n2) print(n1 > n2) print(n1 < n2) print(n1 >= n2) print(n1 <= n2)
Вывод приведенного выше кода выглядит следующим образом:
False True True False True False
Полный Python Bootcamp
Условные операторы
Условные операторы используются для выбора блока кода, который вы хотите выполнить на основе определенного условия. Предположим, что в системе управления больницей вы хотите внедрить проверку того, что пациент старше 65 лет может получать приоритетное лечение, в то время как другие не могут, вы можете сделать это с помощью условных утверждений.
Существует четыре типа условных операторов:
- утверждения “если”
- утверждения “if/else”
- заявление “if/elif”
- Вложенные операторы “if/else”
В принципе, второй и третий типы являются просто расширениями первого типа оператора.
Оператор If
“Оператор if” является самым простым из всех операторов. Если данное условие разрешается в true (например, 1 < 10
), то выполняется блок кода, следующий за оператором “if”. Если условие возвращает false (например, 1 > 10
), то код не выполняется.
Взгляните на следующий пример.
age = 67 if age >= 65: print("You are eligible for priority treatment.") print("Thank you for your visit")
Обратите пристальное внимание на синтаксис условных операторов. В большинстве других языков программирования блок кода, который должен быть выполнен, если условие “if” возвращает true, заключен в квадратные скобки. Здесь, в Python, вы должны использовать двоеточие после условия “if”, а затем вы должны отступить код, который вы хотите выполнить, если условие возвращает true.
Python широко считается гораздо более чистым языком, чем многие другие, из-за отсутствия скобок. Вместо этого отступ используется для указания области действия, которая имеет свои плюсы и минусы.
В приведенном выше примере мы имеем переменную age
со значением 67. Мы проверяем, превышает ли возраст
65 лет, и если это условие возвращает true, то мы печатаем сообщение о том, что пользователь имеет право на приоритетное лечение. Обратите внимание, что это сообщение имеет отступ, который говорит нам, что это код, который должен быть выполнен после истинного условия. Наконец, мы просто печатаем благодарственное сообщение на экране. Вывод этого кода будет следующим:
You are eligible for priority treatment. Thank you for your visit
Теперь давайте установим значение переменной age
равным 55 и посмотрим на разницу.
age = 55 if age >=65: print("You are eligible for priority treatement.") print("Thank you for your visit")
Вывод из вышесказанного выглядит следующим образом:
Thank you for your visit
Обратите внимание, что на этот раз условие не вернулось истинным, поэтому заявление, сообщающее пациенту, что он имеет право на приоритетное лечение, не выводится на экран. Появились только приветствия, так как они не были внутри (с отступом) тела утверждения “если”.
Оператор If/Else
Оператор “if/else” используется для указания альтернативного пути выполнения в случае, если оператор “if” возвращает false. Взгляните на следующий пример:
age = 55 if age >=65: print("You are eligible for priority treatment.") else: print("You are eligible for normal treatment") print("Thank you for your visit")
Здесь будет выполнен блок кода, за которым следует оператор “else”, так как переменная age
равна 55, а условие “if” вернет false. Следовательно, вместо этого будет выполняться оператор “else”. Результат будет следующим:
You are eligible for normal treatment Thank you for your visit
Оператор If/Elif
Оператор “if/elif” используется для реализации нескольких условий. Взгляните на следующий пример:
age = 10 if age >= 65: print("You are eligible for priority treatment.") elif age > 18 and age < 65: print("You are eligible for normal treatment") elif age < 18: print("You are eligible for juvenile treatment") print("Thank you for your visit")
В приведенном выше коде мы реализовали три условия. Если возраст
больше 65 лет, если возраст
находится между 65 и 18 годами, и если возраст
меньше 18 лет. В зависимости от значения параметра age
будет выполняться другой оператор print. Здесь, поскольку возраст
равен 10, второе условное значение возвращает true, и вы увидите следующий вывод:
You are eligible for juvenile treatment Thank you for your visit
Если бы ни одно из условных выражений не возвращало true, то ни один из операторов print()
не был бы выполнен. Это отличается от примера “if/else”, где выполняется либо “if” , либо “else”. В случае “if/elif” это не обязательно так. Однако вы можете добавить обычный оператор “else” в конце, который будет выполнен, если ни одно из условий выше него не вернет true.
Используя этот метод, который я только что описал, мы могли бы переписать предыдущий пример так, чтобы он выглядел следующим образом:
age = 10 if age >= 65: print("You are eligible for priority treatment.") elif age > 18 and age < 65: print("You are eligible for normal treatment") else: print("You are eligible for juvenile treatment") print("Thank you for your visit")
Этот код приведет к тому же результату, что и в предыдущем примере.
Вложенный оператор If Else
Вложенные операторы “if/else” используются для реализации вложенных условий (т. е. условий внутри другого условия). Рассмотрим следующий пример:
age = 67 insurance = "yes" if age >= 65: print("You are eligible for priority treatment.") if insurance == "yes": print("The insurance company will pay for you.") else: print("You have to pay in advance.") else: print("You are eligble for normal treatment") print("Thank you for your visit")
Здесь мы имеем внешнее условие, что если возраст
больше или равен 65 годам, то проверьте, есть ли у пациента страховка или нет. Если у пациента есть страховка, страховая компания оплатит счет позже, в противном случае пациент должен заплатить заранее.
Петли
Операторы итерации, или более известные как циклы, используются для многократного выполнения фрагмента кода несколько раз. Подумайте, если вам нужно напечатать на экране имена 100 человек. Вам придется либо написать 100 операторов печати, либо использовать сотни escape – символов в одном операторе печати. Если вам придется выполнять эту задачу неоднократно, вам придется написать сотни тысяч утомительных строк кода. Лучший способ-использовать петли.
В Python существует два основных типа циклов:
- Для петли
- В то время как Цикл
Имейте в виду, что вы можете вложить циклы точно так же, как мы сделали это с условными операторами, но мы не будем вдаваться в это здесь.
Цикл For
“Цикл for” используется для итерации по набору элементов. Цикл продолжает выполняться до тех пор, пока все элементы в коллекции не будут пройдены. Взгляните на простой пример цикла for:
nums = [1, 2, 4, 5, 6, 7, 8, 9, 10] for n in nums: print(5 * n)
В приведенном выше примере просто выводится произведение каждого элемента в nums
и 5. Здесь у нас есть список nums
, который содержит целые числа от 1 до 10. Не волнуйтесь, мы подробно изучим списки в следующем разделе. А пока просто рассмотрим его как набор элементов, которые в данном случае являются числами.
Обратите пристальное внимание на приведенный выше код. Это следует из следующего синтаксиса:
for [temp_var] in [collection]: [statements]
На первой итерации цикла “for” 1 хранится во временной переменной n
. Этот 1 умножается на 5, и результат выводится на экран. На второй итерации второй элемент из коллекции nums
(т. е. 2) хранится в переменной n
и 2 умножается на 5. Эти итерации продолжаются до тех пор, пока не будут пройдены все элементы в коллекции nums
. После того, как последний элемент (10) обнаружен, цикл останавливается, и выполнение кода проходит мимо “цикла for”.
Вывод приведенного выше кода выглядит следующим образом:
5 10 20 25 30 35 40 45 50
Цикл While
“Цикл while” отличается от “цикла for” тем, что он продолжает выполняться, в то время как определенное условие продолжает возвращать true. После каждой итерации цикла while выполняется повторная оценка условия. Когда условие наконец возвращает false, цикл while прекращает выполнение и завершается.
Взгляните на следующий пример:
x = 50 while x > 0: print(x) x = x - 5
Здесь цикл будет продолжать выполняться до тех пор, пока значение x
не станет отрицательным. Переменная x
изначально имеет значение 50, и во время каждой итерации мы уменьшаем ее на 5. Таким образом, после 10 итераций значение станет отрицательным, и цикл перестанет выполняться.
Результат будет выглядеть следующим образом:
50 45 40 35 30 25 20 15 10 5
В то время как циклы хороши для тех случаев, когда вы еще не знаете, сколько итераций вам нужно. Циклы For повторяют заданное число раз, тогда как циклы while могут повторять неизвестное число раз или даже бесконечное число раз.
Функции в Python
Функции в программировании-это конструкции, выполняющие определенные задачи. Функции удобны в сценариях, когда вам приходится выполнять задачу несколько раз на протяжении всего кода. Вместо того чтобы переписывать одну и ту же функцию снова и снова, вместо этого вы можете создать функцию, которая выполняет эту задачу, а затем вызвать эту функцию везде и всегда, когда захотите.
Обратите внимание, что есть разница между многократным выполнением задачи и многократным выполнением задачи. Циклы используются там, где вы должны выполнять задачу несколько раз подряд. Функции, с другой стороны, используются, когда вам приходится выполнять одну и ту же задачу в разных местах вашего кода.
Рассмотрим сценарий, в котором вам нужно напечатать длинное заявление на экран в разное время. Вместо этого напишите функцию, которая печатает нужный оператор, а затем вызовите эту функцию везде, где вы хотите напечатать этот оператор.
Взгляните на следующий пример:
def displayWelcome(): print("Welcome to Python. This article explains the basics of Python for absolute beginners!") return; displayWelcome() print("Do something here") displayWelcome() print("Do some other stuff here")
В этом коде я хотел бы указать на две вещи: определение функции и вызовы функции.
Определение функции относится к определению задачи, выполняемой функцией. Чтобы определить функцию, вы должны использовать ключевое слово def
, за которым следует имя функции, которое в приведенном выше примере является displayWelcome
. Вы можете использовать любое имя функции, но использовать семантическую функцию. За именем функции следует открывающая и закрывающая скобки. Скобки используются для определения параметров или любых входных значений по умолчанию, которые мы увидим в следующем примере. После круглой скобки вы должны использовать двоеточие, и в следующей строке определяется тело функции. Функция обычно заканчивается оператором return
, но это не требуется, если значение не возвращается.
Во второй части нашего примера кода вы увидите вызов функции. Чтобы вызвать функцию, вам просто нужно написать имя функции, за которым следует пара скобок. Если функция принимает параметры, вы должны передать их в скобках.
Вывод вышеприведенного кода будет следующим:
Welcome to Python. This article explains the basics of Python for absolute beginners Do something here Welcome to Python. This article explains the basics of Python for absolute beginners Do some other stuff here
Вы можете видеть, что наша длинная строка была напечатана дважды. Один раз перед тем, как они “Делают что-то здесь”, и один раз после него, что соответствует порядку наших вызовов функций в коде.
Вы можете себе представить, насколько это важно для программирования. Что делать, если нам нужно выполнить более сложную задачу, такую как загрузка файла или выполнение сложных вычислений? Было бы расточительно писать полный код несколько раз, и именно здесь в игру вступают функции.
Функции с параметрами
Теперь давайте посмотрим, как передать параметры функции. Параметр – это просто переменная, которая передается функции от вызывающего.
Давайте напишем функцию, которая добавляет два числа, переданные ей в качестве параметров в скобках:
def addNumbers(n1, n2): r = n1 + n2 return r; result = addNumbers(10, 20) print(result) result = addNumbers(40, 60) print(result) result = addNumbers(15, 25) print(result)
В приведенном выше коде у нас есть функция addNumbers
, которая принимает два значения из вызова функции. Значения хранятся в переменных n1
и n2
. Внутри функции эти значения добавляются и сохраняются в переменной r
. Затем значение в переменной r
возвращается вызывающему объекту функции.
В первом вызове add Numbers
мы передаем два значения, 10 и 20. Обратите внимание, что порядок параметров имеет значение. Первое значение в вызове функции хранится в первом параметре функции, а второе значение-во втором параметре. Поэтому 10 будет храниться в n1
, а 20-в n2
. Затем мы выводим результат функции через оператор print
. Эта функция вызывается в общей сложности три раза, каждый раз с разными значениями параметров.
Результатом приведенного выше кода будет:
30 100 40
Вы можете видеть, что каждый раз, когда функция вызывается, наша переменная result
содержит сложение двух переданных чисел.
Списки, кортежи и словари
Списки, кортежи и словари-это три наиболее часто используемые структуры данных в программировании. Через все они хранят коллекцию данных, основное отличие заключается в следующем:
- Как вы размещаете данные в структуре данных
- Как данные хранятся в структуре
- Как осуществляется доступ к данным из структуры данных
В следующих разделах вы увидите некоторые из этих свойств для каждой структуры данных.
Списки
Списки используются для хранения набора элементов различных типов данных. Элементы хранятся в квадратных скобках, где каждый элемент отделен друг от друга запятой.
Давайте посмотрим, как создать простой список:
randomlist = ['apple', 'banana', True, 10, 'Mango']
Вы можете видеть, что мы сохранили строки, число и логическое значение в этом списке. В Python (в отличие от других строго типизированных языков) список может хранить любой тип данных в одном списке, как показано выше. Однако чаще списки имеют тенденцию хранить множество различных значений одного и того же типа данных.
Доступ К Элементам Списка
Чтобы получить доступ к элементу в списке, просто напишите имя переменной списка, за которым следует пара квадратных скобок. Внутри скобок укажите индексный номер элемента, к которому вы хотите получить доступ. Важно отметить, что списки в Python (и многих других языках программирования), индексы списков начинаются с 0. Это означает, что первый элемент в каждом списке находится в позиции 0, а последний-в позиции n-1, где n-длина списка. Это называется индексацией на основе нуля.
Взгляните на этот код:
print(randomlist[0]) print(randomlist[4])
Здесь мы получаем доступ к первому и пятому элементам списка random list
list. Выход будет таким:
apple Mango
Возможно, вы также заметили, что элементы в списке остаются в том порядке, в котором они хранятся. Они останутся в том же порядке, если их явно не переместить или не удалить.
Назначение Новых Элементов Списка
Чтобы присвоить значение существующей позиции списка, необходимо указать индекс позиции, которой вы хотите присвоить значение, а затем использовать оператор присваивания ( =
) для фактического присвоения значения.
См. код ниже:
# Define the list randomlist = ['apple', 'banana', True, '10', 'Mango'] # Print the current value at index 0 print(randomlist[0]) # Assign a new value at index 0 randomlist[0] = 'Peach' # Print the updated value print(randomlist[0])
Здесь мы обновили первый элемент списка. Мы отобразили значение элемента до и после обновления, чтобы показать изменение.
Добавление Элементов Списка
В последнем подразделе мы показали, как присвоить значение списку, но это применимо только в том случае, если элемент уже существует в этой позиции. Что делать, если мы хотим расширить размер списка и добавить новый элемент, не избавляясь ни от одного из наших предыдущих элементов? Мы делаем это с помощью функции append ()
.
randomlist = ['apple', 'banana', True, '10', 'Mango'] print(randomlist) # Add a new element randomlist.append(0) print(randomlist)
При запуске этого кода вы заметите, что значение 0 отображается в end списка после вызова функции append
. Теперь в нашем списке всего 6 элементов, включая наше новое значение.
Удаление Элементов Списка
Чтобы удалить элемент, мы просто используем ключевое слово del
. Взгляните на следующий пример, чтобы увидеть, как он используется:
randomlist = ['apple', 'banana', True, '10', 'Mango'] print(randomlist) # Remove the second element del randomlist[1] print(randomlist)
Здесь мы удалили второй элемент списка random list
list. Мы используем оператор print
для отображения списка до и после удаления элемента. Результат будет следующим:
['apple', 'banana', True, '10', 'Mango'] ['apple', True, '10', 'Mango']
Кортежи
Кортежи похожи на список в том, что они хранят элементы различных типов данных. Основное различие между кортежами и списками заключается в том, что кортежи являются неизменяемыми . Это означает, что после создания кортежа вы не можете ни обновить значение какого-либо элемента в кортеже, ни удалить элемент.
С точки зрения синтаксиса кортежи отличаются от списков тем, что они используют круглые скобки, тогда как списки используют квадратные скобки. Даже при всех этих различиях кортежи все равно очень похожи на списки. Доступ к элементам одинаков, и порядок элементов сохраняется, как и списки.
Вот как вы можете создать кортеж:
randomtuple = ('apple', 'banana', True, '10', 'Mango')
Доступ К Элементам кортежа
Доступ к элементам кортежа осуществляется так же, как и к спискам:
randomtuple = ('apple', 'banana', True, '10', 'Mango') print(randomtuple[1]) print(randomtuple[4])
В приведенном выше сценарии мы обращаемся ко второму и пятому элементам кортежа. Как и ожидалось, это приведет к следующему результату:
banana Mango
Назначение значений элементам кортежа
Как обсуждалось ранее, невозможно присвоить новые значения уже объявленным элементам кортежа. Поэтому вы не можете сделать что-то подобное:
randomtuple[1] = 10 # This operation is not allowed
Попытка такого назначения приводит к возникновению следующей ошибки:
TypeError: 'tuple' object does not support item assignment
Удаление элемента кортежа
Вы не можете удалить отдельный элемент кортежа. Попытка сделать это приведет к возникновению ошибки, точно так же, как мы показали, когда вы пытаетесь переназначить элемент:
TypeError: 'tuple' object doesn't support item deletion
Однако вы можете удалить сам кортеж с помощью функции “del”, как показано в следующем примере:
randomtuple = ('apple', 'banana', True, '10', 'Mango') print(randomtuple) del randomtuple print(randomtuple)
Если вы попытаетесь получить доступ к удаленному кортежу, как во второй инструкции print
выше, вы получите следующее сообщение об ошибке:
NameError: name 'randomtuple' is not defined
Словари
Подобно спискам и кортежам, словарные структуры данных хранят набор элементов. Однако они довольно сильно отличаются от кортежей и списков, потому что являются хранилищами ключевых значений. Это означает, что вы даете каждому значению ключ (чаще всего строку или целое число), который может быть использован для доступа к элементу в более позднее время. Когда у вас есть большой объем данных, это более эффективно для доступа к данным, чем обход всего списка, чтобы найти свой элемент.
При создании словаря каждая пара ключ-значение отделяется от другой запятой, а все элементы хранятся в фигурных скобках. См. следующий код:
randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'}
Словари очень полезны, когда у вас есть много информации о конкретной вещи, как в примере с автомобилем, который мы показали выше. Они также полезны, когда вам нужно получить доступ к случайным элементам в коллекции и вы не хотите проходить через огромный список, чтобы получить к ним доступ.
Доступ К Элементам словаря
Доступ к элементам словаря осуществляется с помощью их ключей. Например, если вы хотите получить доступ к первому элементу, вам придется использовать его ключ, который в данном случае является “Make”. Взгляните на следующий пример, чтобы увидеть синтаксис:
randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'} print(randomdict['Make']) print(randomdict['Model'])
Здесь мы получаем доступ к первому и второму элементам случайного словаря dict с помощью их ключей. Результат будет выглядеть следующим образом:
Honda Civic
Поскольку доступ к элементам словаря осуществляется с помощью их ключей, элементы не упорядочены в структуре данных, и перебирать их не так просто, как списки.
Назначение значений элементам словаря
Чтобы присвоить значение уже существующему элементу словаря, сначала необходимо получить доступ к этому элементу, а затем присвоить ему новое значение. Следующий пример показывает это:
randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'} print(randomdict['Make']) randomdict['Make'] = 'Audi' print(randomdict['Make'])
На выходе получится вот что:
Honda Audi
Удаление Элементов Словаря
Существует три различных способа удаления элементов в словарях: вы можете удалить отдельные элементы, вы можете удалить все элементы или вы можете удалить весь словарь. В следующем примере показаны все эти три способа:
randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'} # Displaying complete dictionary print(randomdict) # Deleting one element del randomdict['Make'] print(randomdict) # Clearing whole dictionary randomdict.clear() print(randomdict) # Deleting dictionary itself del randomdict print(randomdict)
Здесь мы показываем словарь после выполнения каждой из трех операций удаления. Не беспокойтесь о “#” и продолжающемся тексте в коде – они существуют для того, чтобы комментировать код. Комментарии не выполняются, они просто предоставляют информацию о коде и являются чисто необязательными.
Вывод вышеприведенного кода будет следующим:
{'Color': 'Black', 'Make': 'Honda', 'Model': 'Civic', 'Year': 2010} {'Color': 'Black', 'Model': 'Civic', 'Year': 2010} {} Traceback (most recent call last): File "dict_test.py", line 16, inprint(randomdict) NameError: name 'randomdict' is not defined
Обратите внимание, что поскольку мы удалили словарь в конце, то возникает ошибка, указывающая на то, что random dict
не определен.
Пример Применения
Теперь, когда мы прошли через многие из самых основных понятий в Python, давайте использовать его с пользой и создать простое приложение, используя то, что мы узнали.
Допустим, у вас так много автомобилей, что вы просто не можете уследить за ними всеми, поэтому мы создадим приложение, которое сделает это за вас. Он будет работать, постоянно спрашивая вас, хотите ли вы добавить автомобили в свой инвентарь, и если вы это сделаете, то он запросит детали автомобиля. Если вы этого не сделаете, приложение распечатает детали всех ваших автомобилей и выйдет.
Вот полный код, который мы подробно объясним в остальной части этого раздела:
cars = [] add_inventory = raw_input('Add inventory? [y/n] ') while add_inventory == 'y': # Get car data from user make = raw_input('Make: ') model = raw_input('Model: ') year = raw_input('Year: ') miles = raw_input('Miles: ') # Create car dictionary object and save it to list car = {'Make': make, 'Model': model, 'Year': year, 'Miles': miles} cars.append(car) # Ask user if we should keep going add_inventory = raw_input('Add inventory? [y/n] ') print('') print('Here are your cars:') # Display all of our cars for c in cars: print('Make: ' + c['Make']) print('Model: ' + c['Model']) print('Year: ' + c['Year']) print('Miles: ' + c['Miles']) print('')
В первой строке нашего кода мы создаем список, который будет содержать детали всех наших автомобилей. Каждый элемент в списке будет элементом словаря, который будет содержать такие детали, как “Марка”, “Модель” и т. Д.
Во второй строке кода мы используем встроенную функцию Python под названием raw_input()
, которая выводит заданный текст пользователю через командную строку и затем ждет ответа. Любой текст, введенный пользователем, затем сохраняется в переменной add_inventory
.
Затем мы проверяем, хочет ли пользователь добавить инвентарь, проверяя наличие символа “y”. Если пользователь действительно хочет добавить инвентарь, то мы снова используем функцию raw_input()
для сбора информации об автомобиле. Как только у нас есть все, что нам нужно, мы создаем переменную char
, которая хранит словарь со всеми нашими автомобильными данными. Затем этот объект словаря сохраняется в нашем списке car
с помощью метода append ()
, который, как вы помните, добавляет наш элемент в конец списка.
Используя “while-loop”, мы постоянно проверяем, хочет ли пользователь добавить больше автомобилей в свой инвентарь. Это может продолжаться до тех пор, пока пользователь продолжает вводить “y” в подсказке “Добавить инвентарь?”, что именно то, для чего хороши “while-loops”.
Когда пользователь наконец введет “n” (или любой символ, который не является “y”), мы распечатаем для него полный список их инвентаря. Это делается с помощью “for-loop”. Для каждого элемента в списке мы сохраняем текущий элемент во временной переменной c
и извлекаем все соответствующие данные автомобиля с помощью его ключей, которые затем распечатываем на экран с помощью конкатенации строк (или “добавления”). Это добавляет две строки вместе, чтобы стать одной перед печатью на экране.
Запуск этого кода через командную строку может выглядеть примерно так:
$ python cars.py Add inventory? [y/n] y Make: Porsche Model: 911 Turbo Year: 2017 Miles: 2000 Add inventory? [y/n] y Make: Ferrari Model: 488 GTB Year: 2016 Miles: 12000 Add inventory? [y/n] y Make: Lamborghini Model: Aventador Year: 2017 Miles: 8000 Add inventory? [y/n] n Here are your cars: Make: Porsche Model: 911 Turbo Year: 2017 Miles: 2000 Make: Ferrari Model: 488 GTB Year: 2016 Miles: 12000 Make: Lamborghini Model: Aventador Year: 2017 Miles: 8000
Что дальше?
Эта статья представляет собой очень простое введение в язык программирования Python. Мы затронули только самые фундаментальные понятия, включая переменные, операторы, условные операторы, циклы и многое другое.
Каждой из этих тем можно было бы посвятить целую статью, поэтому я бы предложил найти больше ресурсов по каждой из них. Чтобы узнать больше, лично я бы рекомендовал пройти такой курс , как Complete Python Bootcamp: Go from zero to hero in Python , который проведет вас через все наиболее важные концепции более подробно.
Еще одним замечательным примером является Complete Python Masterclass , который идет еще дальше в таких вещах, как объектно-ориентированное программирование и даже базы данных.
Как только вы освоитесь с простыми концепциями Python, переходите к более сложным темам, таким как объектно-ориентированный Python. Большинство современных приложений для программирования основаны на объектно-ориентированных принципах. Как было объяснено в начале, Python широко используется для веб-разработки, машинного обучения, науки о данных и микроконтроллеров, так что попробуйте немного всего и посмотрите, какая ниша вам наиболее интересна.
Что вы думаете о Python до сих пор? Для чего вы планируете его использовать? Дайте нам знать в комментариях!