Автор оригинала: Renan Moura Ferreira.
Python стал одним из самых быстрорастущих языков программирования за последние несколько лет.
Не только широко используется, это также потрясающий язык для решения, если вы хотите попасть в мир программирования.
Эта гида Python для начинающих позволяет узнать ядро языка в считанные часы вместо недель.
Быстрая информация: Вы можете скачать PDF версию этого руководства Python для начинающих Отказ
Готов погрузиться в?
- Введение в Питон
- Установка Python 3.
- Запуск кода
- Синтаксис
- Комментарии
- Переменные
- Типы
- Опечатка
- Пользовательский ввод
- Операторы
- Условные условные
- Списки
- Кортежи
- Набор
- Словари
- в то время как петли
- для петлей
- Функции
- Сфера
- Пояснение списка
- Лямбда функции
- Модули
- Если имя
- Файлы
- Классы и объекты
- Наследование
- Исключения
- Заключение
Python был создан в 1990 году Гвидо Ван Россомом в Голландии.
Одной из целей языка было доступно для не программистов.
Python также был разработан, чтобы быть вторым языком для программистов, чтобы учиться из-за его низкой кривой обучения и простотой использования.
Python работает на Mac, Linux, Windows и многих других платформах.
Python:
Интерпретируется: он может выполнить во время выполнения, а изменения в программе мгновенно воспринимаются. Быть очень техническим, имеет компилятор Python. Разница по сравнению с Java или C ++ такое прозрачная и автоматическая. С Python нам не нужно беспокоиться о шаге компиляции, как это сделано в режиме реального времени. Компромисс заключается в том, что интерпретируемые языки обычно медленнее, чем скомпилированные.
Семантически динамично: вам не нужно указывать типы для переменных, и нет ничего, что заставляет вас сделать это.
Объектно-ориентированные: все в Python – это объект. Но вы можете выбрать писать код в объектно-ориентированном, процедурном или даже функциональном порядке.
Высокий уровень: вам не нужно иметь дело с низкоуровневыми деталями машины.
Python был очень растут в последнее время отчасти из-за его многочисленного использования в следующих областях:
Скрипты системы: это отличный инструмент для автоматизации повседневных повторяющихся задач.
Анализ данных: Это отличный язык для эксперимента и имеет тонны библиотек и инструментов для обработки данных, создания моделей, визуализации результатов и даже развертывающие решения. Это используется в таких областях, такими как финансы, электронная коммерция и исследования.
Web Development: Frameworks, как Django и Flask, позволяют разработать веб-приложения, API и веб-сайты.
Машинное обучение: Tensorflow и Pytorch – это некоторые из библиотек, которые позволяют ученым и отрасли развиваться и развертывать изучение искусственных интеллектуальных решений в области распознавания изображений, здоровья, самостоятельно-вождения и многих других областей.
Вы можете легко организовать свой код в модулях и использовать их или повторно использовать их с другими.
Наконец, мы должны иметь в виду, что Python нарушил изменения между версиями 2 и 3., а поскольку поддержка Python 2 закончилась в 2020 году, эта статья основана исключительно на Python 3.
Так что давайте начнем.
Если вы используете Mac или Linux, у вас уже установлен Python. Но Windows не приходит с Python, установленным по умолчанию.
У вас также могут быть Python 2, и мы собираемся использовать Python 3. Итак, вы должны проверить, есть ли у вас Python 3 первым.
Введите следующее в вашем терминале.
python3 -V
Обратите внимание на прописные буквы V
Отказ
Если ваш результат является чем-то похожим на «Python 3.x.y», например Python 3.8.1
тогда вы готовы пойти.
Если нет, следуйте следующим инструкциям в соответствии с вашей операционной системой.
Установка Python 3 на Windows
Перейти к https://www.python.org/downloads/ Отказ
Скачать последнюю версию.
После загрузки дважды щелкните установщик.
На первом экране установите флажок, указывающий «Добавить Python 3.x на путь», а затем нажмите «Установить сейчас».
Подождите, пока процесс установки завершится до тех пор, пока следующий экран с сообщением «Настройка не было успешным».
Нажмите на «Закрыть».
Установка Python 3 на Mac
Установить Xcode из приложенного магазина.
Установите инструменты командной строки, запустив следующие в своем терминале.
xcode-select --install
Я рекомендую использовать домеров. Перейти к https://bret.sh/ И следуйте инструкциям на первой странице, чтобы установить его.
После установки доморожения запускайте следующие действия варить
Команды для установки Python 3.
brew update brew install python3
Домашний путь уже добавляет Python 3 на путь, поэтому вам не нужно ничего делать.
Установка Python 3 на Linux
Установить использование APT
, Доступно в Ubuntu и Debian, введите следующее:
sudo apt install python3
Установить использование ням
, Доступно в Redhat и Centos, введите следующее:
sudo yum install python3
Вы можете запустить код Python прямо в терминале в качестве команд, или вы можете сохранить код в файле с .py
Расширение и запустите файл Python.
Терминал
Запуск команд непосредственно в терминале рекомендуется, когда вы хотите запустить что-то простое.
Откройте командную строку и введите python3.
renan@mypc:~$ python3
Вы должны увидеть что-то вроде этого в вашем терминале, указывающее версию (в моем случае, Python 3.6.9), операционная система (я использую Linux), а некоторые основные команды, которые помогут вам.
>>>
говорит нам, что мы находимся в консоли Python.
Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Давайте проверим его, запустив нашу первую программу, чтобы выполнить базовую математику и добавить два числа.
>>> 2 + 2
Вывод:
4
Чтобы выйти из консоли Python просто введите Выход ()
Отказ
>>> exit()
Работает .py файлы
Если у вас есть сложная программа, со многими строками кода, Console Python не лучший вариант.
Альтернатива просто открыть текстовый редактор, введите код и сохранить файл с помощью .py
расширение.
Давайте сделаем это, создайте файл под названием Second_Program.py
со следующим контентом.
print('Second Program')
Печать ()
Функция печатает сообщение на экране.
Сообщение идет внутри скобок с одним кавычками или двойными кавычками, оба работают одинаково.
Чтобы запустить программу, на вашем терминале выполните следующие действия:
renan@mypc:~$ python3 second_program.py
Вывод:
Second Program
Python известен своим чистым синтаксисом.
Язык избегает использования ненужных символов для указания некоторой специфики.
Запястье
Python не использует запястья для завершения линий. Достаточно новая строка, чтобы сказать переводчику, что новая команда начинается.
Печать ()
Метод будет отображать что-то.
В этом примере у нас есть две команды, которые будут отображать сообщения внутри одинарных кавычек.
print('First command') print('Second command')
Выход:
First command Second command
Но следующее является Неправильно Из-за точек в конце концов:
print('First command'); print('Second command');
Отступ
Многие языки используют вьющиеся кронштейны для определения объема.
Переводчик Python использует только углубление для определения при заканчивании сферы и еще один.
Это означает, что вы должны знать о белых пробелах в начале каждой строки – у них есть значение и может нарушить ваш код, если нет.
Это определение функции работает:
def my_function(): print('First command')
Это не работает Потому что отступ второй строки отсутствует и бросит ошибку:
def my_function(): print('First command')
Чувствительность и переменные дела
Python чувствителен к регистру. Так что переменные Имя
и Имя
не то же самое и храните разные значения.
name = 'Renan' Name = 'Moura'
Как видите, переменные легко создаются, просто назначая им значение, используя =
символ.
Это значит Имя
магазины ‘Renan’ и Имя
магазины «Мура».
Комментарии
Наконец, чтобы прокомментировать что-то в своем коде, используйте хеш-марку #
Отказ
Прокомментированная часть не влияет на поток программы.
# this function prints something def my_function(): print('First command')
Это был просто обзор. Детали каждого из них станут яснее в следующих главах с примерами и более широкими объяснениями.
Цель комментариев – объяснить, что происходит в коде.
Комментарии написаны вместе с вашим кодом, но не влияют на ваш поток программы.
Когда вы работаете самостоятельно, возможно, комментарии не чувствуют, что то, что вы должны написать. В конце концов, в данный момент вы знаете, как к каждой нижней строке кода.
Но что, если новые люди приходят на борт вашего проекта через год, и в проекте есть 3 модуля, каждый с 10 000 строк кода?
Подумайте о людях, которые не знают о вашем приложении, и которые внезапно приходится поддерживать его, исправить его или добавлять новые функции.
Помните, нет единого решения для данной проблемы. Ваш способ решения вещей твой и твой только. Если вы запрашиваете 10 человек, чтобы решить ту же проблему, они придут 10 различных решений.
Если вы хотите, чтобы другие полностью понять ваши рассуждения, хороший дизайн кода является обязательным, но комментарии являются неотъемлемой частью любой кодовой базы.
Как написать комментарии в Python
Синтаксис комментариев в Python достаточно прост: просто используйте хеш-марку #
Символ перед текстом, который вы хотите быть комментарием.
#This is a comment and it won't influence my program flow
Вы можете использовать комментарий, чтобы объяснить, что делает некоторый кусок кода.
#calculates the sum of any given two numbers a + b
Многослойные комментарии
Может быть, вы хотите прокомментировать что-то очень сложное или описать, как работает какой-то процесс в вашем коде.
В этих случаях вы можете использовать многоуровневые комментарии.
Чтобы сделать это, просто используйте одну хеш-марку #
для каждой строки.
#Everything after the hash mark # is a comment #This is a comment and it won't influence my program flow #Calculates the cost of the project given variables a and b #a is the time in months it will take until the project is finished #b is how much money it will cost per month a + b * 10
В любой программе вам нужно хранить и управлять данными для создания потока или некоторой конкретной логики.
Это какие переменные для.
Вы можете иметь переменную для хранения имени, еще один, чтобы сохранить возраст человека, или даже использовать более сложный тип, чтобы сохранить все это сразу, как словарь.
Создание, также известное как объявление
Объявление переменной является базовая и простая операция в Python
Просто выберите имя и приписывайте значение для него, используя =
символ.
name='Bob' age=32
Вы можете использовать Печать ()
Функция, чтобы показать значение переменной.
print(name) print(age)
Bob 32
Обратите внимание, что в Python нет специального слова, чтобы объявить переменную.
В тот момент, когда вы назначаете значение, переменная создана в памяти.
Python также имеет динамическое набрав, что означает, что вам не нужно сообщать, если ваша переменная является текстом или числом, например.
Переводчик активирует набор на основе значения, назначенного.
Если вам это нужно, вы также можете повторно объявить переменную, просто изменив ее значение.
#declaring name as a string name='Bob' #re-declaring name as an int name = 32
Держите в уме, хотя это не рекомендуется, поскольку переменные должны иметь значение и контекст.
Если у меня есть переменная под названием Имя
Я не ожидаю, что он будет иметь номер, хранящийся в нем.
Соглашения об именах
Давайте продолжим в последнем разделе, когда я говорил о значении и контексте.
Не используйте имена случайных переменных, такие как х
или y
Отказ
Скажи, что вы хотите хранить время вечеринки, просто назовите это Party_Time
Отказ
О, вы заметили подчеркивание _
?
По соглашению, если вы хотите использовать имя переменной, состоит из двух или более слов, вы отделяете их подчеркиванием. Это называется змеиный чехол.
Другой вариант будет использовать камеру, как в вечеринка
Отказ Это очень распространено на других языках, но не конвенция в Python, как указано ранее.
Переменные чувствительны к регистру, поэтому Party_Time
и Party_Time
не то же самое. Кроме того, имейте в виду, что Конвенция говорит нам всегда использовать строчные буквы.
Помните, используйте имена, которые вы можете легко вспомнить внутри вашей программы. Плохое название может стоить вам много времени и вызвать раздражающие ошибки.
Таким образом, имена переменных:
- Чувствительны к регистру:
время
иВремя
не одинаковы - Должны начать с подчеркивания
_
или письмо (не начинайте с номера) - Разрешено иметь только цифры, буквы и подчеркивания. Нет специальных символов, таких как: #, $, & @ и т. Д.
Это, например, это не Допускается: вечеринка # время
, 10Partytime
Отказ
Чтобы сохранить данные в Python, вам нужно использовать переменную. И каждая переменная имеет свой тип в зависимости от значения хранимых данных.
Python имеет динамическое печатать, что означает, что вам не нужно явно объявлять тип вашей переменной – но если вы хотите, вы можете.
Списки, кортежи, наборы и словари – это все типы данных и имеют специальные разделы позже с более подробно, но мы кратко посмотрим на них.
Таким образом, я могу показать вам наиболее важные аспекты и операции каждого в своем собственном разделе, сохраняя его более лаконичный и сосредоточенный на предоставлении вам широкого представления основных типов данных в Python.
Определение типа
Прежде всего, давайте узнаем, как определить тип данных.
Просто используйте Тип ()
Функция и передайте переменную по вашему выбору в качестве аргумента, как пример ниже.
print(type(my_variable))
Логический
Булевой тип является одним из самых основных типов программирования.
Переменная типа логика может представлять только Правда или Ложь Отказ
my_bool = True print(type(my_bool)) my_bool = bool(1024) print(type(my_bool))
Числа
Существует три типа числовых типов: int, float и комплекс.
Целое число
my_int = 32 print(type(my_int)) my_int = int(32) print(type(my_int))
Плавать
my_float = 32.85 print(type(my_float)) my_float = float(32.85) print(type(my_float))
Сложный
my_complex_number = 32+4j print(type(my_complex_number)) my_complex_number = complex(32+4j) print(type(my_complex_number))
Нить
Тип текста является одним из наиболее распространенных типов и часто называют строка Или, в Python, просто ул ...| Отказ
my_city = "New York" print(type(my_city)) #Single quotes have exactly #the same use as double quotes my_city = 'New York' print(type(my_city)) #Setting the variable type explicitly my_city = str("New York") print(type(my_city))
Вы можете использовать +
Оператор к объединенным строкам.
ConcateNation – это когда у вас есть две или более строки, и вы хотите присоединиться к ним в один.
word1 = 'New ' word2 = 'York' print(word1 + word2)
New York
Тип строки имеет много встроенных методов, которые позволяют им манипулировать их. Я продемонстрирую, как работают некоторые из этих методов.
Лен ()
Функция возвращает длину строки.
print(len('New York'))
8
заменить ()
Способ заменяет часть строки другой. В качестве примера давайте заменим «новую» для «старых».
print('New York'.replace('New', 'Old'))
Old York
Верхний ()
Метод вернет все символы в верхнем регистре.
print('New York'.upper())
NEW YORK
ниже ()
Способ выполняет противоположное и возвращает все символы в нижнем регистре.
print('New York'.lower())
new york
Списки
Список имеет свои предметы заказанными, и вы можете добавить тот же элемент столько раз, сколько вы хотите. Важной деталью в том, что списки являются смежными.
MUTALY означает, что вы можете изменить список после его создания, добавляя элементы, удаляя их или даже просто изменяйте их значения. Эти операции будут продемонстрированы позже в разделе, посвященном спискам.
my_list = ["bmw", "ferrari", "maclaren"] print(type(my_list)) my_list = list(("bmw", "ferrari", "maclaren")) print(type(my_list))
Кортежи
Текурный кортеж похож на список: заказанный и допускает повторение предметов.
Есть только одно отличие: кортеж неизменен.
Непомышленность означает, что вы не можете изменить кортеж после его создания. Если вы попытаетесь добавить элемент или обновить один, например, Python IntePreter покажет вам ошибку. Я покажу, что эти ошибки встречаются позже в разделе, посвященных корзам.
my_tuple = ("bmw", "ferrari", "maclaren") print(type(my_tuple)) my_tuple = tuple(("bmw", "ferrari", "maclaren")) print(type(my_tuple))
Набор
Наборы не гарантируют порядку предметов и не проиндексированы.
Основная точка при использовании наборов: они не позволяют повторитению элемента.
my_set = {"bmw", "ferrari", "maclaren"} print(type(my_set)) my_set = set(("bmw", "ferrari", "maclaren")) print(type(my_set))
Словари
Словарь не гарантирует порядка элементов и является смешным.
Одной из важных характеристик в словарях является то, что вы можете установить свои собственные клавиши доступа для каждого элемента.
my_dict = {"country" : "France", "worldcups" : 2} print(type(my_dict)) my_dict = dict(country="France", worldcups=2) print(type(my_dict))
Типопередача позволяет конвертировать между различными типами.
Таким образом, вы можете иметь int
превратился в ул ...| или
плавать превратился в
int , например.
Явное преобразование
Чтобы изменить переменную в строку, просто используйте str ()
функция.
# this is just a regular explicit intialization my_str = str('32') print(my_str) # int to str my_str = str(32) print(my_str) # float to str my_str = str(32.0) print(my_str)
32 32 32.0
Чтобы изменить переменную в целое число, просто используйте int ()
функция.
# this is just a regular explicit intialization my_int = int(32) print(my_int) # float to int: rounds down to 3 my_int = int(3.2) print(my_int) # str to int my_int = int('32') print(my_int)
32 3 32
Бросить переменную на поплавок, просто используйте поплавок ()
функция.
# this is an explicit intialization my_float = float(3.2) print(my_float) # int to float my_float = float(32) print(my_float) # str to float my_float = float('32') print(my_float)
3.2 32.0 32.0
То, что я сделал выше, называется явный Тип преобразования.
В некоторых случаях вам не нужно делать конвертацию явно, поскольку Python может сделать это сам по себе.
Неявное преобразование
Пример ниже показывает неявное преобразование при добавлении int
и а плавать
Отказ
Обратите внимание, что my_sum
это плавать
Отказ Python использует плавать
Чтобы избежать потери данных, поскольку int
Тип не может представлять десятичные цифры.
my_int = 32 my_float = 3.2 my_sum = my_int + my_float print(my_sum) print(type(my_sum))
35.2
С другой стороны, в этом примере, когда вы добавите int
и а ул ...| , Python не сможет сделать неявное преобразование, а явное преобразование типа необходимо.
my_int = 32 my_str = '32' # explicit conversion works my_sum = my_int + int(my_str) print(my_sum) #implicit conversion throws an error my_sum = my_int + my_str
64 Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for +: 'int' and 'str'
Такая же ошибка брошена при попытке добавить плавать
и ул ...| типы без явного преобразования.
my_float = 3.2 my_str = '32' # explicit conversion works my_sum = my_float + float(my_str) print(my_sum) #implicit conversion throws an error my_sum = my_float + my_str
35.2 Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for +: 'float' and 'str'
Если вам нужно взаимодействовать с пользователем при запуске программы в командной строке (например, чтобы запросить часть информации), вы можете использовать вход ()
функция.
country = input("What is your country? ") #user enters 'Brazil' print(country)
Brazil
Захваченное значение всегда строка
Отказ Просто помните, что вам может потребоваться преобразовать его, используя типости.
age = input("How old are you? ") #user enters '29' print(age) print(type(age)) age = int(age) print(type(age))
Выход для каждого Печать ()
является:
29
Обратите внимание, что 29 лет захвачен как строка
а затем явно преобразован в int
Отказ
На языке программирования операторы являются специальными символами, которые вы можете применить к вашим переменным и значениям, чтобы выполнять такие операции, как арифметические/математические и сравнение.
У Python есть много операторов, которые вы можете подать заявку на ваши переменные, и я продемонстрирую самые используемые.
Арифметические операторы
Арифметические операторы являются наиболее распространенным типом операторов, а также наиболее узнаваемыми.
Они позволяют вам выполнять простые математические операции.
Они есть:
+
: Добавление-
: Вычитание*
: Умножение/
: Разделение**
: Экспонция//
: Пол Дивизия, раунд по результатам разделения%
: Модуль, дает вам остаток подразделения
Давайте посмотрим на программу, которая показывает, как используется каждый из них.
print('Addition:', 5 + 2) print('Subtraction:', 5 - 2) print('Multiplication:', 5 * 2) print('Division:', 5 / 2) print('Floor Division:', 5 // 2) print('Exponentiation:', 5 ** 2) print('Modulus:', 5 % 2)
Addition: 7 Subtraction: 3 Multiplication: 10 Division: 2.5 Floor Division: 2 Exponentiation: 25 Modulus: 1
Согласие
ConcateNation – это когда у вас есть две или более строки, и вы хотите присоединиться к ним в один.
Это полезно, когда у вас есть информация в нескольких переменных и хочу объединить их.
Например, в этом следующем примере я объединяю две переменные, которые содержат мое имя и мою фамилию, соответственно, чтобы мое полное имя.
+
Оператор также используется для объединения.
first_name = 'Renan ' last_name = 'Moura' print(first_name + last_name)
Renan Moura
Поскольку ConcateNation применяется к строкам, к объединению строк с другими типами, вы должны сделать явную типовую почту, используя str ()
Отказ
Я должен почитать int
Значение 30 в строку с str ()
объединить его с остальной частью строки.
age = 'I have ' + str(30) + ' years old' print(age)
I have 30 years old
Операторы сравнения
Используйте операторы сравнения для сравнения двух значений.
Эти операторы возвращают либо Правда
или Ложь
Отказ
Они есть:
==
: Равный! =
: Не равный>
: Больше чем<
: Меньше, чем> =
: Больше или равно<=
: Меньше или равно
Давайте посмотрим на программу, которая показывает, как используется каждый из них.
print('Equal:', 5 == 2) print('Not equal:', 5 != 2) print('Greater than:', 5 > 2) print('Less than:', 5 < 2) print('Greater than or equal to:', 5 >= 2) print('Less than or equal to:', 5 <= 2)
Equal: False Not equal: True Greater than: True Less than: False Greater than or equal to: True Less than or equal to: False
Операторы назначения
Как подразумевает имя, эти операторы используются для назначения значений в переменные.
х
В первом примере прямое задание, хранящее число 7
В переменной х
Отказ
Работа назначения принимает значение справа и назначает его переменной слева.
Другие операторы – это простые сокращения для арифметических операторов.
Во втором примере х
начинается с 7
и х
просто еще один способ написать х + 2
Отказ Это означает предыдущее значение х
добавляется 2
и переназначен на х
который сейчас равен 9
Отказ
=
: Простое назначение
x = 7 print(x)
7
+ =
: добавление и назначение
x = 7 x += 2 print(x)
9
- =
: вычитание и назначение
x = 7 x -= 2 print(x)
5
* =
: умножение и назначение
x = 7 x *= 2 print(x)
14
/=
: разделение и назначение
x = 7 x /= 2 print(x)
3.5
% =
: модуль и задание
x = 7 x %= 2 print(x)
1
//=
: пола подразделение и назначение
x = 7 x //= 2 print(x)
3
** =
: Эффективность и назначение
x = 7 x **= 2 print(x)
49
Логические операторы
Логические операторы используются для объединения заявлений, применяющих булевую алгебру.
Они есть:
и
:Правда
только когда оба заявления верныили
:Ложь
только когда и х, так и Y ложныене
:не
Оператор просто инвертирует вход,Правда
становитсяЛожь
и наоборот.
Давайте посмотрим программу, которая показывает, как используется каждый.
x = 5 y = 2 print(x == 5 and y > 3) print(x == 5 or y > 3) print(not (x == 5))
False True False
Операторы членства
Эти операторы обеспечивают простой способ проверить, присутствует ли определенный объект в последовательности: строка
, Список
, кортеж
, Установить
и Словарь
Отказ
Они есть:
в
: возвращаетПравда
Если объект присутствуетне в
: возвращаетПравда
Если объект нет
Давайте посмотрим программу, которая показывает, как используется каждый.
number_list = [1, 2, 4, 5, 6] print( 1 in number_list) print( 5 not in number_list) print( 3 not in number_list)
True False True
Условные условия являются одним из краеугольных камней любого языка программирования.
Они позволяют вам контролировать поток программы в соответствии с конкретными условиями, которые вы можете проверить.
If выписка
То, как вы реализуете условную, проходят через Если
утверждение.
Общая форма Если
Заявление:
if expression: statement
выражение
содержит какую-то логику, которая возвращает логию и Заявление
выполняется только в том случае, если возврат – Правда
Отказ
Простой пример:
bob_age = 32 sarah_age = 29 if bob_age > sarah_age: print('Bob is older than Sarah')
Bob is older than Sarah
У нас есть две переменные, указывающие в возрасте Боб и Сары. Состояние в простом английском языке говорит: «Если возраст Боба больше, чем возраст Сары, а затем напечатайте фразу« Боб старше Сары ».
Так как условие возвращается Правда
Фраза будет напечатана на консоли.
ЭТОТ ИЛИ ИЛИ ЭЛИФ
В нашем последнем примере программа делает только что-то, если условие возвращает Правда
Отказ
Но мы также хотим, чтобы это сделать что-то, если он возвращается Ложь
Или даже проверьте второе или третье место, если первый не был выполнен.
В этом примере мы поменяли возрасту Боба и Сары. Первое условие вернется Ложь
Так как Сара старше сейчас, а затем программа будет распечатать фразу после еще
вместо.
bob_age = 29 sarah_age = 32 if bob_age > sarah_age: print('Bob is older than Sarah') else: print('Bob is younger than Sarah')
Bob is younger than Sarah
Теперь рассмотрим пример ниже с Элиф
Отказ
bob_age = 32 sarah_age = 32 if bob_age > sarah_age: print('Bob is older than Sarah') elif bob_age == sarah_age: print('Bob and Sarah have the same age') else: print('Bob is younger than Sarah')
Bob and Sarah have the same age
Цель Элиф
состоит в том, чтобы предоставить новое условие для проверки перед еще
выполняется.
Еще раз мы изменили свои возрасты, и теперь оба 32 года.
Как таковое, состояние в Элиф
встречается. Поскольку оба имеют тот же возраст, что программа будет печатать «Боб и Сара у одного возраста».
Обратите внимание, что вы можете иметь столько Элиф
Как вы хотите, просто положите их в последовательность.
bob_age = 32 sarah_age = 32 if bob_age > sarah_age: print('Bob is older than Sarah') elif bob_age < sarah_age: print('Bob is younger than Sarah') elif bob_age == sarah_age: print('Bob and Sarah have the same age') else: print('This one is never executed')
Bob and Sarah have the same age
В этом примере еще
никогда не выполняется, потому что все возможности покрываются в предыдущих условиях и, следовательно, могут быть удалены.
Вложенные условные
Вам может потребоваться проверить более одного условного для чего-то, что произошло.
В этом случае вы можете закрыть свой Если
заявления.
Например, вторая фраза «Боб – самая старая» напечатана только в том случае, если оба Если
S Pass.
bob_age = 32 sarah_age = 28 mary_age = 25 if bob_age > sarah_age: print('Bob is older than Sarah') if bob_age > mary_age: print('Bob is the oldest')
Bob is older than Sarah Bob is the oldest
Или, в зависимости от логики, сделайте его проще с булевой алгеброй.
Таким образом, ваш код меньший, более читаемый и легкий для обслуживания.
bob_age = 32 sarah_age = 28 mary_age = 25 if bob_age > sarah_age and bob_age > mary_age: print('Bob is the oldest')
Bob is the oldest
Тровые операторы
Темнарный оператор – это одна линия Если
утверждение.
Это очень удобно для простых условий.
Вот как это выглядит:
if else
Рассмотрим следующий код Python:
a = 25 b = 50 x = 0 y = 1 result = x if a > b else y print(result)
1
Здесь мы используем четыре переменных, А
и B
для условия, в то время как х
и y
представлять выражения.
А
и B
Являются ли значения, которые мы проверяем друг другу, чтобы оценить некоторые условия. В этом случае мы проверяем, если А
больше чем B
Отказ
Если выражение верно, то есть А
больше чем B
тогда стоимость х
будет отнесено к Результат
который будет равен 0.
Однако, если А
меньше чем B
тогда у нас есть ценность y
назначен Результат
и Результат
будет держать значение 1
Отказ
С А
меньше чем B
25 <50, Результат
будет иметь 1
как конечная стоимость от y
Отказ
Простой способ вспомнить, как оценивается условие, – это прочитать его на простом английском языке.
Наш пример будет читать: Результат
будет х
Если А
больше чем B
в противном случае y
Отказ
Как и обещали в разделе «Типы», этот раздел и следующие три о кортежах, наборах и словарях будут более глубокими объяснениями каждого из них, поскольку они являются очень важными и широко используемые структуры в Python, чтобы организовать и иметь дело с данными.
Список имеет свои предметы заказанными, и вы можете добавить тот же элемент столько раз, сколько вы хотите.
Важной деталью в том, что списки являются смежными.
MUTALY означает, что вы можете изменить список после его создания, добавляя элементы, удаляя их или даже просто изменяйте их значения.
Инициализация
Пустой список
people = []
Список с начальными значениями
people = ['Bob', 'Mary']
Добавление в список
Чтобы добавить элемент в конце списка, используйте Добавить ()
Отказ
people = ['Bob', 'Mary'] people.append('Sarah') print(people)
['Bob', 'Mary', 'Sarah']
Чтобы указать позицию для нового элемента, используйте Вставить ()
метод.
people = ['Bob', 'Mary'] people.insert(0, 'Sarah') print(people)
['Sarah', 'Bob', 'Mary']
Обновление в списке
Укажите положение элемента для обновления и установки нового значения
people = ['Bob', 'Mary'] people[1] = 'Sarah' print(people)
['Bob', 'Sarah']
Удаление в списке
Используйте Удалить ()
Способ удаления элемента, данного в качестве аргумента.
people = ['Bob', 'Mary'] people.remove('Bob') print(people)
['Mary']
Чтобы удалить всех, используйте Очистить ()
Метод:
people = ['Bob', 'Mary'] people.clear()
Получение в списке
Используйте индекс для ссылки на элемент.
Помните, что индекс начинается в 0.
Поэтому для доступа к второму элементу используйте индекс 1.
people = ['Bob', 'Mary'] print(people[1])
Mary
Проверьте, существует ли данный товар в списке
people = ['Bob', 'Mary'] if 'Bob' in people: print('Bob exists!') else: print('There is no Bob!')
Подключаемый кортеж похож на список: он заказывается и позволяет повторение предметов.
Есть только одно отличие: кортеж неизменен.
Неизмермость, если вы помните, означает, что вы не можете изменить кортеж после его создания. Если вы попытаетесь добавить элемент или обновить один, например, интерпретатор Python покажет вам ошибку.
Инициализация
Пустой кортеж
people = ()
Кортеж с начальными значениями
people = ('Bob', 'Mary')
Добавление в кортеж
Кортежи неизменны. Это означает, что если вы попытаетесь добавить элемент, вы увидите ошибку.
people = ('Bob', 'Mary') people[2] = 'Sarah'
Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object does not support item assignment
Обновление в кортеже
Обновление элемента также вернет ошибку.
Но есть трюк: вы можете преобразовать в список, изменить элемент, а затем преобразовать его обратно в кортеж.
people = ('Bob', 'Mary') people_list = list(people) people_list[1] = 'Sarah' people = tuple(people_list) print(people)
('Bob', 'Sarah')
Удаление в кортеже
По той же причине вы не можете добавить элемент, вы также не можете удалить элемент, поскольку они неизменяются.
Восстановление в кортеже
Используйте индекс для ссылки на элемент.
people = ('Bob', 'Mary') print(people[1])
Mary
Проверьте, существует ли данный товар в кортеже
people = ('Bob', 'Mary') if 'Bob' in people: print('Bob exists!') else: print('There is no Bob!')
Наборы не гарантируют порядок предметов и не проиндексированы.
Основная точка при использовании наборов: они не позволяют повторитению элемента.
Инициализация
Пустой набор
people = set()
Установить с начальными значениями
people = {'Bob', 'Mary'}
Добавление в набор
Используйте Добавить ()
Способ добавить один элемент.
people.add('Sarah')
Используйте Обновление ()
Способ добавить несколько элементов одновременно.
people.update(['Carol', 'Susan'])
Помните, наборы не позволяют повторить, поэтому, если вы добавите «Мэри» снова, ничего не изменится.
people = {'Bob', 'Mary'} people.add('Mary') print(people)
{'Bob', 'Mary'}
Обновление в комплекте
Предметы в комплекте не смещаются. Вы должны либо добавить или удалить элемент.
Удаление в комплекте
Убрать Боб из словаря:
people = {'Bob', 'Mary'} people.remove('Bob') print(people)
{'Mary'}
Удалить всех:
people.clear()
Проверьте, существует ли данный товар в наборе
people = {'Bob', 'Mary'} if 'Bob' in people: print('Bob exists!') else: print('There is no Bob!')
Словарь не гарантирует порядок элементов, и он сметен.
Одной из важных характеристик словарей является то, что вы можете установить настройки ключей доступа для каждого элемента.
Инициализация словаря
Пустой словарь
people = {}
Словарь с начальными значениями
people = {'Bob':30, 'Mary':25}
Добавление в словаре
Если ключ пока не существует, он добавляется в словарь.
people['Sarah']=32
Обновление словаря
Если ключ уже существует, значение просто обновляется.
#Bob's age is 28 now people['Bob']=28
Обратите внимание, что код в значительной степени одинаково.
Удаление в словаре
Убрать Боб из словаря:
people.pop('Bob')
Удалить всех:
people.clear()
Восстановление в словаре
bob_age = people['Bob'] print(bob_age)
30
Проверьте, будет ли данный ключ уже существует в словаре
if 'Bob' in people: print('Bob exists!') else: print('There is no Bob!')
Петли используются, когда вам необходимо повторить блок кода определенное количество раз, либо применить ту же логику по каждому элементу в коллекции.
Есть два типа петель: для
и в то время как
Отказ
Вы узнаете о для
петли в следующем разделе.
Основной синтаксис
Основной синтаксис в то время как
петля, как показано ниже.
while condition: statement
Цикл будет продолжаться в то время как Состояние – Правда
Отказ
Площадь ряда
Пример ниже принимает каждое значение Номер
и рассчитывает свое квадратное значение.
number = 1 while number <= 5: print(number, 'squared is', number**2) number = number + 1
1 squared is 1 2 squared is 4 3 squared is 9 4 squared is 16 5 squared is 25
Вы можете использовать любое имя переменной, но я выбрал Номер
Потому что это имеет смысл в контексте. Обычный общий выбор будет просто Я
Отказ
Цикл будет продолжаться до Номер
(инициализирован 1) меньше или равно 5.
Обратите внимание, что после Печать ()
Команда, переменная Номер
увеличивается на 1, чтобы принять следующее значение.
Если вы не сделаете прикрепление, у вас будет бесконечная петля с Номер
никогда не достигнет ценности более 5. Это очень важная деталь!
остальное блок
Когда условие возвращает Ложь
, еще
блок будет вызван.
number = 1 while number <= 5: print(number, 'squared is', number**2) number = number + 1 else: print('No numbers left!')
1 squared is 1 2 squared is 4 3 squared is 9 4 squared is 16 5 squared is 25 No numbers left!
Обратите внимание на фразу «Нет номеров не осталось!» печатается после окончания петли, то есть после условия Номер
оценивает Ложь
Отказ
Как вырваться из бурного цикла в Python
Просто используйте Перерыв
Ключевое слово, и цикл остановит его выполнение.
number = 1 while number <= 5: print(number, 'squared is', number**2) number = number + 1 if number == 4: break
1 squared is 1 2 squared is 4 3 squared is 9
Лент работает нормально, а когда Номер
достигает 4 Если
Заявление оценивает на Правда
и Перерыв
команда вызывается. Это заканчивает цикл до того, как рассчитывается квадратная стоимость чисел 4 и 5.
Как пропустить элемент во время цикла
Продолжить
сделаю это для тебя.
Я должен был инвертировать порядок Если
заявление и Печать ()
показать, как это работает должным образом.
number = 0 while number < 5: number = number + 1 if number == 4: continue print(number, 'squared is', number**2)
1 squared is 1 2 squared is 4 3 squared is 9 5 squared is 25
Программа всегда проверяет, если 4 является текущим значением Номер
Отказ Если это так, квадрат из 4 не будет рассчитан и Продолжить
пропустит следующую итерацию, когда стоимость Номер
5. *
для
петли похожи на в то время как
Петли в том смысле, что они используются для повторения блоков кода.
Самое важное отличие состоит в том, что вы можете легко повторить последовательные типы.
Основной синтаксис
Основной синтаксис для
петля, как показано ниже.
for item in collection: statement
Петля по списку
Чтобы закрутить список или любую другую коллекцию, просто продолжайте, как показано в примере ниже.
cars = ['BMW', 'Ferrari', 'McLaren'] for car in cars: print(car)
BMW Ferrari McLaren
Список Автомобили
Содержит три предмета. для
Цикл переполняет перечень и хранить каждый элемент в Автомобиль
Переменная, а затем выполнить оператор, в этом случае Печать (автомобиль)
, чтобы распечатать каждую машину в консоли.
Функция диапазона ()
Функция диапазона широко используется для циклов, потому что она дает вам простой способ перечисления номеров.
Этот код будет циклически через номера от 0 до 5 и распечатать каждый из них.
for number in range(5): print(number)
0 1 2 3 4
Напротив, без Диапазон ()
Функция, мы бы сделали что-то подобное.
numbers = [0, 1, 2, 3, 4] for number in numbers: print(number)
0 1 2 3 4
Вы также можете определить Начать
и Стоп
Использование Диапазон ()
Отказ
Здесь мы начинаем 5 и останавливающиеся в 10. Номер, который вы устанавливаете, чтобы остановить не включен.
for number in range(5, 10): print(number)
5 6 7 8 9
Наконец, также можно установить шаг.
Здесь мы начинаем 10 и увеличение на 2 до 20, так как 20 – Стоп
это не включено.
for number in range(10, 20, 2): print(number)
10 12 14 16 18
остальное блок
Когда предметы в списке закончились, еще
блок будет вызван.
cars = ['BMW', 'Ferrari', 'McLaren'] for car in cars: print(car) else: print('No cars left!')
BMW Ferrari McLaren No cars left!
Как вырваться из петли в Python
Просто используйте Перерыв
Ключевое слово, и цикл остановит его выполнение.
cars = ['BMW', 'Ferrari', 'McLaren'] for car in cars: print(car) if car == 'Ferrari': break
BMW Ferrari
Цикл перейдет через список и распечатать каждую машину.
В этом случае после петли достигает «Ferrari», Перерыв
называется и «McLaren» не будет напечатан.
Как пропустить предмет в цикле
В этом разделе мы узнаем, как Продолжить
могу сделать это для вас.
Я должен был инвертировать порядок Если
заявление и Продолжить
показать, как это работает должным образом.
Обратите внимание, что я всегда проверяю, является ли «Ferrari» текущим элементом. Если это так, «Ferrari» не будет напечатано, а Продолжить
Перейдет к следующему пункту «McLaren».
cars = ['BMW', 'Ferrari', 'McLaren'] for car in cars: if car == 'Ferrari': continue print(car)
BMW McLaren
Петля над петлей: вложенные петли
Иногда у вас есть более сложные коллекции, такие как список списков.
Чтобы повторить эти списки, вам нужно вложенный для
петли.
В этом случае у меня есть три списка: один из моделей BMW, другой на моделях Ferrari и, наконец, один с моделями McLaren.
Первый цикл Iterate по поводу списка каждого бренда, а вторая повторяется по моделям каждой марки.
car_models = [ ['BMW I8', 'BMW X3', 'BMW X1'], ['Ferrari 812', 'Ferrari F8', 'Ferrari GTC4'], ['McLaren 570S', 'McLaren 570GT', 'McLaren 720S'] ] for brand in car_models: for model in brand: print(model)
BMW I8 BMW X3 BMW X1 Ferrari 812 Ferrari F8 Ferrari GTC4 McLaren 570S McLaren 570GT McLaren 720S
Петля по другим структурам данных
Та же логика, которая применяется для
петли над Список
Может быть распространен на другие структуры данных: кортеж
, Установить
и Словарь
Отказ
Я буду кратко продемонстрировать, как сделать базовый цикл над каждым из них.
Петлю на кортеже
people = ('Bob', 'Mary') for person in people: print(person)
Bob Mary
Петлю над набором
people = {'Bob', 'Mary'} for person in people: print(person)
Bob Mary
Петля по словарю
Чтобы распечатать ключи:
people = {'Bob':30, 'Mary':25} for person in people: print(person)
Bob Mary
Для печати значений:
people = {'Bob':30, 'Mary':25} for person in people: print(people[person])
30 25
Как код растет, сложность также растет. И функции помогают организовать код.
Функции – это удобный способ создания блоков кода, которые вы можете повторно использовать.
Определение и призыв
В Python используйте def
Ключевое слово для определения функции.
Дайте ему имя и используйте скобки для информирования 0 или более аргументов.
В линии после начала объявления не забудьте отступить к блоку кода.
Вот пример функции под названием print_first_function ()
Это только печатает фразу «моя первая функция!».
Чтобы вызвать функцию, просто используйте его имя, как определено.
def print_first_function(): print('My first function!') print_first_function()
My first function!
вернуть значение
Используйте Возвращение
Ключевое слово для возврата значения из функции.
В этом примере функция second_function ()
Возвращает строку «Мою вторую функцию!».
Обратите внимание, что Печать ()
Это встроенная функция, и наша функция вызывается изнутри ее.
Строка, возвращенная second_function ()
передается как аргумент для Печать ()
функция.
def second_function(): return 'My second function!' print(second_function())
My second function!
вернуть несколько значений
Функции также могут вернуть несколько значений одновременно.
return_numbers ()
Возвращает два значения одновременно.
def return_numbers(): return 10, 2 print(return_numbers())
(10, 2)
Аргументы
Вы можете определить параметры между скобками.
При вызове функции с параметрами вы должны пропускать аргументы в соответствии с определенными параметрами.
Прошедшие примеры не имели никаких параметров, поэтому не было необходимости в аргументах. Скобки оставались пустыми, когда были вызваны функции.
Один аргумент
Чтобы указать один параметр, просто определите его внутри скобок.
В этом примере функция My_number
ожидает, что один номер как аргумент, определенный параметром Num
Отказ
Значение аргумента затем доступно внутри функции для использования.
def my_number(num): return 'My number is: ' + str(num) print(my_number(10))
My number is: 10
Два или более аргументов
Чтобы определить больше параметров, просто используйте запятую, чтобы отделить их.
Здесь у нас есть функция, которая добавляет два номера под названием Добавить
Отказ Ожидается, что два аргумента, определенные first_num
и Second_num
Отказ
Аргументы добавляются +
Оператор и результат тогда возвращается Возвращение
Отказ
def add(first_num, second_num): return first_num + second_num print(add(10,2))
12
Этот пример очень похож на последний. Единственное отличие состоит в том, что у нас есть 3 параметра вместо 2.
def add(first_num, second_num, third_num): return first_num + second_num + third_num print(add(10,2,3))
15
Эта логика определения параметров и передачи аргументов одинакова для любого количества параметров.
Важно отметить, что аргументы должны быть переданы в том же порядке, что параметры определены.
Значение по умолчанию.
Вы можете установить значение по умолчанию для параметра, если аргумент не приводится с использованием =
Оператор и значение выбора.
В этой функции, если аргумент не приведен, число 30 предполагается как ожидаемое значение по умолчанию.
def my_number(my_number = 30): return 'My number is: ' + str(my_number) print(my_number(10)) print(my_number())
My number is: 10 My number is: 30
Ключевое слово или названные аргументы
При вызове функции порядок аргументов должен соответствовать порядку параметров.
Альтернатива – это если вы используете ключевые или названные аргументы.
Установите аргументы своим соответствующим параметрам, непосредственно используя имя параметров и =
операторы.
Этот пример переворачивает аргументы, но функция работает, как и ожидалось, потому что я скажу, какая ценность идет к какому параметру по имени.
def my_numbers(first_number, second_number): return 'The numbers are: ' + str(first_number) + ' and ' + str(second_number) print(my_numbers(second_number=30, first_number=10))
The numbers are: 10 and 30
Любое количество аргументов: * args
Если вы не хотите указывать количество параметров, просто используйте *
перед именем параметра. Тогда функция примет столько аргументов по мере необходимости.
Имя параметра может быть что-нибудь вроде * Числа
Но есть конвенция в Python, чтобы использовать * args
Для этого определения переменного числа аргументов.
def my_numbers(*args): for arg in args: print(number) my_numbers(10,2,3)
10 2 3
Любое количество ключевых слов/названных аргументов: ** Kwargs
Похоже на * args
мы можем использовать ** kwargs
Чтобы пройти как можно больше аргументов ключевых слов, как мы хотим, до тех пор, пока мы используем **
Отказ
Опять же, имя может быть что-нибудь вроде ** номера
, но ** kwargs
это конвенция.
def my_numbers(**kwargs): for key, value in kwargs.items(): print(key) print(value) my_numbers(first_number=30, second_number=10)
first_number 30 second_number 10
Другие типы как аргументы
Прошедшие примеры используются в основном числа, но вы можете пройти любой тип в качестве аргумента, и их будут рассматриваться как таковые внутри функции.
Этот пример принимает строки в качестве аргументов.
def my_sport(sport): print('I like ' + sport) my_sport('football') my_sport('swimming')
I like football I like swimming
Эта функция принимает список в качестве аргумента.
def my_numbers(numbers): for number in numbers: print(number) my_numbers([30, 10, 64, 92, 105])
30 10 64 92 105
Место, где создается переменная определяет его доступность, доступ к которому доступен и манипулируется остальной частью кода. Это известно как Область Отказ
Есть два типа области: местный и глобальный.
Глобальный спектр
Глобальный объем позволяет вам использовать переменную в любом месте вашей программы.
Если ваша переменная находится вне функции, она имеет глобальную область по умолчанию.
name = 'Bob' def print_name(): print('My name is ' + name) print_name()
My name is Bob
Обратите внимание, что функция может использовать переменную Имя
и печать Меня зовут Боб
Отказ
Местный спектр
Когда вы объявляете переменную внутри функции, она существует только внутри этой функции и не может быть доступна снаружи.
def print_name(): name = "Bob" print('My name is ' + name) print_name()
My name is Bob
Переменная Имя
был объявлен внутри функции, поэтому вывод такой же, как раньше.
Но это бросит ошибку:
def print_name(): name = 'Bob' print('My name is ' + name) print(name)
Выход кода выше:
Traceback (most recent call last): File "", line 1, in NameError: name 'name' is not defined
Я пытался распечатать переменную Имя
С внешней функции, но объем переменной была локальной и не может быть найдена в глобальном объеме.
Смешивание областей
Если вы используете одно и то же имя для переменных внутри и снаружи функции, функция будет использовать одну в его объеме.
Так что, когда вы звоните print_name ()
, Имя = «Боб»
используется для печати фразы.
С другой стороны, при звонке Печать ()
за пределами функции, Имя = "Сара"
используется из-за его глобальной массы.
name = "Sarah" def print_name(): name = 'Bob' print('My name is ' + name) print_name() print(name)
Выход кода выше:
My name is Bob Sarah
Иногда мы хотим выполнить некоторые очень простые операции над элементами списка.
Пояснения списка дают нам краткий способ работать над списками как альтернативы другим методам итерации, например для
петли.
Основной синтаксис
Чтобы использовать список пометков для замены регулярного для цикла, мы можем сделать:
[expression for item in list]
Который такой же, как делать:
for item in list: expression
Если мы хотим некоторое условное применение выражения, у нас есть:
[expression for item in list if conditional ]
Который такой же, как делать:
for item in list: if conditional: expression
Пример 1: расчет куба числа
Регулярный путь
numbers = [1, 2, 3, 4, 5] new_list = [] for n in numbers: new_list.append(n**3) print(new_list)
[1, 8, 27, 64, 125]
Использование списка
numbers = [1, 2, 3, 4, 5] new_list = [] new_list = [n**3 for n in numbers] print(new_list)
[1, 8, 27, 64, 125]
Пример 2: расчет кубика номера только в том случае, если оно больше 3
Используя условный, мы можем фильтровать только значения, которые мы хотим, чтобы выражение было применено.
Регулярный путь
numbers = [1, 2, 3, 4, 5] new_list = [] for n in numbers: if(n > 3): new_list.append(n**3) print(new_list)
[64, 125]
Использование списка
numbers = [1, 2, 3, 4, 5] new_list = [] new_list = [n**3 for n in numbers if n > 3] print(new_list)
[64, 125]
Пример 3: Вызов функции со списком
Мы также можем вызывать функции, используя синтаксис понимания списка:
numbers = [1, 2, 3, 4, 5] new_list = [] def cube(number): return number**3 new_list = [cube(n) for n in numbers if n > 3] print(new_list)
[64, 125]
Функция Python Lambda может иметь только одно выражение и не может иметь несколько строк.
Предполагается, что он проще создать небольшую логику в одной строке вместо целой функции, как обычно делается.
Функции лямбда также анонимны, что означает, что их не нужно называть их.
Основной синтаксис
Основной синтаксис очень прост: просто используйте лямбда
Ключевое слово, определить необходимые параметры и использовать «:» для разделения параметров из выражения.
Общие формы:
lambda arguments : expression
Один пример параметра
Посмотрите на этот пример, используя только один параметр
cubic = lambda number : number**3 print(cubic(2))
8
Несколько параметров пример
Если вы хотите, вы также можете иметь несколько параметров.
exponential = lambda multiplier, number, exponent : multiplier * number**exponent print(exponential(2, 2, 3))
16
Вызов функции лямбда напрямую
Вам не нужно использовать переменную, как мы сделали раньше. Вместо этого вы можете использовать скобки вокруг функции лямбда и другой пары скобок вокруг аргументов.
Декларация функции и выполнение произойдет в той же линии.
(lambda multiplier, number, exponent : multiplier * number**exponent)(2, 2, 3)
16
Примеры с использованием функций лямбда с другими встроенными функциями
карта
Функция карты применяет выражение каждому элементу в списке.
Давайте рассчитаем кубику каждого числа в списке.
numbers = [2, 5, 10] cubics = list(map(lambda number : number**3, numbers)) print(cubics)
[8, 125, 1000]
Фильтр
Функция фильтра фильтрует список на основе выражения.
Давайте фильтруем только числа, превышающие 5.
numbers = [2, 5, 10] filtered_list = list(filter(lambda number : number > 5, numbers)) print(filtered_list)
[10]
Через некоторое время ваш код начинает становиться более сложным с большим количеством функций и переменных.
Чтобы облегчить организовать код, который мы используем модули.
Хорошо продуманный модуль также имеет преимущество в использовании многоразового использования, поэтому вы пишете код один раз и повторно повторно повторно повторно повсюду.
Вы можете написать модуль со всеми математическими операциями, а другие люди могут использовать его.
И, если вам нужно, вы можете использовать чужие модули для упрощения вашего кода, ускоряя ваш проект.
На других языках программирования они также называют библиотеками.
Используя модуль
Чтобы использовать модуль, мы используем Импорт
ключевое слово.
Как подразумевает имя, мы должны сообщить нашу программу, какой модуль для импорта.
После этого мы можем использовать любую функцию, доступную в этом модуле.
Давайте посмотрим пример, используя Математика
модуль.
Во-первых, давайте посмотрим, как иметь доступ к постоянному номеру Эйлера.
import math math.e
2.718281828459045
Во втором примере мы собираемся использовать функцию, которая рассчитывает квадратный корень числа.
Также возможно использовать как
Ключевое слово для создания псевдонима.
import math as m m.sqrt(121) m.sqrt(729)
11 27
Наконец, используя от
Ключевое слово, мы можем точно указать, что импортировать вместо всего модуля и использовать функцию непосредственно без имени модуля.
Этот пример использует пол ()
Функция, которая возвращает наибольшее целое число меньше или равно данному номеру.
from math import floor floor(9.8923)
9
Создание модуля
Теперь, когда мы знаем, как использовать модули, давайте посмотрим, как создать один.
Это будет модуль с основными математическими операциями Добавить
, вычесть
, Умножьте
, Разделить
И это будет называться Основные_операции
Отказ
Создать basic_operations.py
Файл с четырьмя функциями.
def add(first_num, second_num): return first_num + second_num def subtract(first_num, second_num): return first_num - second_num def multiply(first_num, second_num): return first_num * second_num def divide(first_num, second_num): return first_num / second_num
Тогда просто импортируйте Основные_операции
Модуль и используйте функции.
import basic_operations basic_operations.add(10,2) basic_operations.subtract(10,2) basic_operations.multiply(10,2) basic_operations.divide(10,2)
12 8 20 5.0
Вы находитесь в процессе построения модуля с основными математическими операциями Добавить
, вычесть
, Умножьте
и Разделить
называется Основные_операции
сохранено в basic_operations.py
файл.
Чтобы гарантировать, что все в порядке, вы можете запустить некоторые тесты.
def add(first_num, second_num): return first_num + second_num def subtract(first_num, second_num): return first_num - second_num def multiply(first_num, second_num): return first_num * second_num def divide(first_num, second_num): return first_num / second_num print(add(10, 2)) print(subtract(10,2)) print(multiply(10,2)) print(divide(10,2))
После запуска кода:
renan@pro-home:~$ python3 basic_operations.py
Вывод:
12 8 20 5.0
Выход для тех тестов – то, что мы ожидали.
Наш код прав и готов поделиться.
Давайте импортируем новый модуль, запущенный его в консоли Python.
Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import basic_operations 12 8 20 5.0 >>>
Когда модуль импортируется, наши тесты отображаются на экране, даже если мы ничего не делали, кроме импорта Основные_операции
Отказ
Исправить, что мы используем Если __name__
В basic_operations.py
файл, как это:
def add(first_num, second_num): return first_num + second_num def subtract(first_num, second_num): return first_num - second_num def multiply(first_num, second_num): return first_num * second_num def divide(first_num, second_num): return first_num / second_num if __name__ == '__main__': print(add(10, 2)) print(subtract(10,2)) print(multiply(10,2)) print(divide(10,2))
Запуск кода непосредственно на терминале будет продолжать отображать тесты. Но когда вы импортируете его как модуль, тесты не будут отображаться, и вы можете использовать функции, как вы намереваетесь.
Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import basic_operations >>> basic_operations.multiply(10,2) 20 >>>
Теперь, когда вы знаете, как использовать Если __name__
Давайте понять, как это работает.
Состояние рассказывает, когда интерпретатор лечит код в виде модуля или как сама программа выполняется напрямую.
Python имеет эту родную переменную под названием __name__
Отказ
Эта переменная представляет имя модуля, которое является названием .py
файл.
Создать файл my_program.py
со следующим и выполните его.
print(__name__)
Выход будет:
__main__
Это говорит нам, что когда программа выполняется напрямую, переменная __name__
определяется как __main__
Отказ
Но когда он импортируется как модуль, значение __name__
это название модуля.
Python 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import my_program my_program >>>
Вот как интерпретатор Python отличает поведение импортируемого модуля и программа, выполняемой непосредственно на терминале.
Создание, удаление, чтение и многие другие функции, применяемые к файлам, являются неотъемлемой частью многих программ.
Таким образом, очень важно знать, как организовать и иметь дело с файлами непосредственно из вашего кода.
Давайте посмотрим, как обрабатывать файлы в Python.
Создание файла
Первые вещи сначала создают!
Мы собираемся использовать Открыть ()
функция.
Эта функция открывает файл и возвращает соответствующий объект.
Первый аргумент – это имя файла, которое мы обрабатываем, второй относится к операции, которую мы используем.
Подведенный ниже код создает файл «Comply.txt», х
Аргумент используется, когда мы просто хотим создать файл. Если файл с тем же именем уже существует, он бросит исключение.
people_file = open("people.txt", "x")
Вы также можете использовать W
Режим для создания файла. В отличие от х
Режим, он не будет выбрасывать исключение, так как этот режим указывает на писать режим. Мы открываем файл для записи данных в него и, если файл не существует, он создан.
people_file = open("people.txt", "w")
Последний – это А
Режим, который означает Добавить Отказ Как подразумевает имя, вы можете добавить дополнительные данные в файл, а W
Режим просто перезаписывает любые существующие данные.
При добавлении, если файл не существует, он также создает его.
people_file = open("people.txt", "a")
Запись файла
Чтобы написать данные в файл, вы просто открываете файл с W
режим.
Тогда, чтобы добавить данные, вы используете возврат объекта по Открыть ()
функция. В этом случае объект называется Comply_File
Отказ Тогда вы называете Написать () Функция, передавающая данные в качестве аргумента.
people_file = open("people.txt", "w") people_file.write("Bob\n") people_file.write("Mary\n") people_file.write("Sarah\n") people_file.close()
Мы используем \ N
В конце разбить линию, в противном случае содержимое в файле останется в той же линии, что и «Бобмарисара».
Еще одна деталь – Закрыть () файл. Это не только хорошая практика, но также гарантирует, что ваши изменения были применены к файлу.
Помните, что при использовании W
Режим, данные, которые уже существовали в файле, будут перезаписаны новыми данными. Чтобы добавить новые данные без потери того, что уже было там, мы должны использовать режим добавления.
Файл добавить
А
Режим добавляет новые данные в файл, сохраняя существующий.
В этом примере после первого письма с W
Режим, мы используем А
Режим для добавления. Результатом заключается в том, что каждое имя будет отображаться дважды в файле «Comply.txt».
#first write people_file = open("people.txt", "w") people_file.write("Bob\n") people_file.write("Mary\n") people_file.write("Sarah\n") people_file.close() #appending more data #keeping the existing data people_file = open("people.txt", "a") people_file.write("Bob\n") people_file.write("Mary\n") people_file.write("Sarah\n") people_file.close()
Прочитать файл
Чтение файла тоже очень просто: просто используйте R
режим вроде так.
Если вы прочитаете файл «LOME.TXT», созданный в последнем примере, вы должны увидеть 6 имен в вашем выходе.
people_file = open("people.txt", "r") print(people_file.read())
Bob Mary Sarah Bob Mary Sarah
Читать ()
Функция считывает весь файл одновременно. Если вы используете readline ()
Функция, вы можете прочитать линию файла по строке.
people_file = open("people.txt", "r") print(people_file.readline()) print(people_file.readline()) print(people_file.readline())
Bob Mary Sarah
Вы также можете зацикливаться, чтобы прочитать такие линии, как пример ниже.
people_file = open("people.txt", "r") for person in people_file: print(person)
Bob Mary Sarah Bob Mary Sarah
Удалить файл
Чтобы удалить файл, вам также нужен ОС
модуль.
Используйте Удалить ()
метод.
import os os.remove('my_file.txt')
Проверьте, существует ли файл
Используйте OS.Path.exists ()
Метод проверки наличия файла.
import os if os.path.exists('my_file.txt'): os.remove('my_file.txt') else: print('There is no such file!')
Скопируйте файл
Для этого я люблю использовать copyfile ()
Метод от Шусил
модуль.
from shutil import copyfile copyfile('my_file.txt','another_file.txt')
Есть несколько вариантов копирования файла, но copyfile ()
самый быстрый.
Переименовать и переместить файл
Если вам нужно переместить или переименовать файл, вы можете использовать Переместить ()
Метод от Шусил
модуль.
from shutil import move move('my_file.txt','another_file.txt')
Классы и объекты являются фундаментальными концепциями объектно-ориентированного программирования.
В Python, Все это объект !
Переменная (объект) – это просто экземпляр его типа (класс).
Вот почему, когда вы проверяете тип переменной, вы можете увидеть Класс
Ключевое слово прямо рядом с его типом (класс).
Этот фрагмент кода показывает, что my_city
это объект, и это экземпляр класса ул ...| Отказ
my_city = "New York" print(type(my_city))
Дифференциация класса X объект
Класс дает вам стандартный способ создания объектов. Класс как базовый проект.
Сказать, что вы инженер, работающий на Boeing.
Ваша новая миссия состоит в том, чтобы построить новый продукт для компании, новая модель, называемая 747-пространством. Этот самолет летает выше высоты, чем другие коммерческие модели.
Boeing необходимо построить десятки тех, кто продает авиакомпаниям по всему миру, а самолеты должны быть все одинаковыми.
Чтобы гарантировать, что самолеты (объекты) выполняются теми же стандартами, вам нужно иметь проект (класс), который может быть репливируемым.
Класс – это проект, план для объекта.
Таким образом, вы делаете проект один раз, и повторно используете это много раз.
В нашем примере кода раньше рассмотрим, что каждая строка имеет одинаковое поведение и те же атрибуты. Так что это имеет смысл для строк иметь класс ул ...| определить их.
Атрибуты и методы
Объекты имеют некоторое поведение, которое дается атрибутами и методами.
Проще говоря, в контексте объекта атрибуты являются переменными, а методы являются функциями, прикрепленными к объекту.
Например, строка имеет много встроенных методов, которые мы можем использовать.
Они работают как функции, вам просто нужно разделить их от объектов, используя Отказ
Отказ
В этом кодеском фрагменте я называю заменить ()
Метод из строковой переменной my_city
который является объектом, а экземпляр класса ул ...| Отказ
заменить ()
Способ заменяет часть строки для другой и возвращает новую строку с изменением. Оригинальная строка остается прежней.
Давайте заменим «новую» для «старых» в «Нью-Йорке».
my_city = 'New York' print(my_city.replace('New', 'Old')) print(my_city)
Old York New York
Создание класса
Мы использовали много объектов (экземпляры классов), таких как строки, целые числа, списки и словари. Все они являются экземплярами предопределенных классов в Python.
Чтобы создать наши собственные классы, мы используем Класс
ключевое слово.
По соглашению имя класса соответствует названию .py
файл и модуль по следствию. Это также хорошая практика для организации кода.
Создать файл автомобиль .py
со следующим классом Автомобиль
Отказ
class Vehicle: def __init__(self, year, model, plate_number, current_speed = 0): self.year = year self.model = model self.plate_number = plate_number self.current_speed = current_speed def move(self): self.current_speed += 1 def accelerate(self, value): self.current_speed += value def stop(self): self.current_speed = 0 def vehicle_details(self): return self.model + ', ' + str(self.year) + ', ' + self.plate_number
Давайте сломаем класс, чтобы объяснить его в частях.
Класс
Ключевое слово используется для указания имени класса Автомобиль
Отказ
__init__
Функция – это встроенная функция, которую все классы имеют. Он называется, когда объект создан и часто используется для инициализации атрибутов, присвоения им значений, аналогично тому, что сделано для переменных.
Первый параметр Я
В __init__
Функция – это ссылка на саму объект (экземпляр). Мы называем это Я
По соглашению, и он должен быть первым параметром в каждом методе экземпляра, как вы можете видеть в других определениях метода Def Переместить (я)
, Def ускоряется (я, ценность)
, Остановить (я)
и Def Cross_details (Self)
Отказ
Автомобиль
имеет 5 атрибутов (включая себя): Год
, Модель
, Plate_Number
и Current_speed
Отказ
Внутри __init__
Каждый из них инициализируется параметрами, приведенными при создании объекта.
Обратите внимание, что Current_speed
инициализируется с 0
По умолчанию, что означает, что если значение не дано, Current_speed
будет равен 0, когда объект впервые создан.
Наконец, у нас есть три метода для манипулирования нашим транспортным средством относительно его скорости: Def Переместить (я)
, Def ускоряется (я, ценность)
и Остановить (я)
Отказ
И один метод отдать информацию о автомобиле: Def Cross_details (Self)
Отказ
Реализация внутри методов работает так же, как и в функциях. Вы также можете иметь Возвращение
Чтобы вернуть вам некоторое значение в конце метода, как продемонстрировано Def Cross_details (Self)
Отказ
Используя класс
Чтобы использовать класс в вашем терминале, импортируйте Автомобиль
класс от Автомобиль
модуль.
Создайте экземпляр под названием my_car
, инициализация Год
С 2009 годами Модель
С ‘F8’, Plate_Number
с ‘abc1234’ и Current_speed
с 100.
Я
Параметр не принимается во внимание при вызове методов. Переводчик Python активирует его значение как текущий объект/экземпляр автоматически, поэтому мы просто должны пройти другие аргументы при создании методов создания и вызова.
Теперь используйте методы для Переместить ()
машина, которая увеличивает ее Current_speed
К 1, ускорить (10)
что увеличивает его Current_speed
по значению, указанному в аргументе, и Стоп ()
которые устанавливают Current_speed
до 0.
Не забудьте распечатать значение Current_speed
при каждой команде, чтобы увидеть изменения.
Чтобы закончить тест, позвоните quice_details ()
Чтобы распечатать информацию о нашем автомобиле.
>>> from vehicle import Vehicle >>> >>> my_car = Vehicle(2009, 'F8', 'ABC1234', 100) >>> print(my_car.current_speed) 100 >>> my_car.move() >>> print(my_car.current_speed) 101 >>> my_car.accelerate(10) >>> print(my_car.current_speed) 111 >>> my_car.stop() >>> print(my_car.current_speed) 0 >>> print(my_car.vehicle_details()) F8, 2009, ABC1234
Если мы не устанавливаем начальное значение для Current_speed
, он будет нулевым по умолчанию, как указано до и продемонстрировано в следующем примере.
>>> from vehicle import Vehicle >>> >>> my_car = Vehicle(2009, 'F8', 'ABC1234') >>> print(my_car.current_speed) 0 >>> my_car.move() >>> print(my_car.current_speed) 1 >>> my_car.accelerate(10) >>> print(my_car.current_speed) 11 >>> my_car.stop() >>> print(my_car.current_speed) 0 >>> print(my_car.vehicle_details()) F8, 2009, ABC1234
Давайте определим общий Автомобиль
класс и сохранить его внутри автомобиль .py
файл.
class Vehicle: def __init__(self, year, model, plate_number, current_speed): self.year = year self.model = model self.plate_number = plate_number self.current_speed = current_speed def move(self): self.current_speed += 1 def accelerate(self, value): self.current_speed += value def stop(self): self.current_speed = 0 def vehicle_details(self): return self.model + ', ' + str(self.year) + ', ' + self.plate_number
У автомобиля есть атрибуты Год
, Модель
, Plate_Number
и Current_speed
Отказ
Определение автомобиля в Автомобиль
очень общий и может не подходить для грузовых автомобилей, например, потому что он должен включать в себя грузы
атрибут.
С другой стороны, атрибут груза не имеет большого смысла для небольших транспортных средств, таких как мотоциклы.
Чтобы решить это, мы можем использовать Наследование Отказ
Когда класс (ребенок) наследует другой класс (родитель), все атрибуты и методы из родительского класса унаследованы дочерним классом.
Родитель и ребенок
В нашем случае мы хотим нового Грузовик
класс, чтобы наследовать все из Автомобиль
класс. Тогда мы хотим добавить свой собственный конкретный атрибут Current_Cargo
Чтобы контролировать дополнение и удаление грузов от грузовика.
Грузовик
Класс называется ребенок класс, который наследует от его родитель Класс Автомобиль
Отказ
А родитель Класс также называется Superclass в то время как ребенок Класс также известен как подкласс Отказ
Создать класс Грузовик
и сохранить его внутри грузовик файл.
from vehicle import Vehicle class Truck(Vehicle): def __init__(self, year, model, plate_number, current_speed, current_cargo): super().__init__(year, model, plate_number, current_speed) self.current_cargo = current_cargo def add_cargo(self, cargo): self.current_cargo += cargo def remove_cargo(self, cargo): self.current_cargo -= cargo
Давайте сломаем класс, чтобы объяснить его в частях.
Класс Автомобиль
Внутри скобок при определении класса Грузовик
Указывает, что родитель Автомобиль
унаследован его ребенком Грузовик
Отказ
__init__
Метод имеет Я
как его первый параметр, как обычно.
Параметры Год
, Модель
, Plate_Number
и Current_speed
там, чтобы соответствовать те, что в Автомобиль
класс.
Мы добавили новый параметр Current_Cargo
Подходит для Грузовик
класс.
В первой строке __init__
Метод Грузовик
Класс, который мы должны позвонить в __init__
Метод Автомобиль
класс.
Для этого мы используем Super ()
Сделать ссылку на SupperClass Автомобиль
так, когда Super () .__ init __ (год, модель, plate_number, teake_speed)
называется мы избегаем повторения нашего кода.
После этого мы можем назначить значение Current_Cargo
обычно.
Наконец, у нас есть два метода для борьбы с Current_Cargo
: def add_cargo (self, cargo):
и Def Remove_Cargo (Self, Cargo):
Отказ
Помните, что Грузовик
наследует атрибуты и методы от Автомобиль
Таким образом, у нас также есть неявный доступ к методам, которые манипулируют скоростью: Def Переместить (я)
, Def ускоряется (я, ценность)
и Остановить (я)
Отказ
Использование класса грузовика
Чтобы использовать класс в вашем терминале, импортируйте Грузовик
класс от грузовик
модуль.
Создайте экземпляр под названием my_truck
, инициализация Год
С 2015 года Модель
с ‘v8’, Plate_Number
С ‘XYZ1234’, Current_speed
С 0, а Current_Cargo
с 0.
Использовать Add_Cargo (10)
увеличить Current_Cargo
К 10, Remove_Cargo (4)
, уменьшить Current_Cargo
на 4.
Не забудьте распечатать значение Current_Cargo
при каждой команде, чтобы увидеть изменения.
По наследству мы можем использовать методы из Автомобиль
класс до Переместить ()
грузовик, который увеличивает его Current_speed
К 1, ускорить (10)
что увеличивает его Current_speed
по значению, указанному в аргументе, и Стоп ()
которые устанавливают Current_speed
до 0.
Не забудьте распечатать значение Current_speed
при каждом взаимодействии, чтобы увидеть изменения.
Чтобы закончить тест, позвоните quice_details ()
Унаследовано от Автомобиль
Класс для печати информации о нашем грузовике.
>>> from truck import Truck >>> >>> my_truck = Truck(2015, 'V8', 'XYZ1234', 0, 0) >>> print(my_truck.current_cargo) 0 >>> my_truck.add_cargo(10) >>> print(my_truck.current_cargo) 10 >>> my_truck.remove_cargo(4) >>> print(my_truck.current_cargo) 6 >>> print(my_truck.current_speed) 0 >>> my_truck.accelerate(10) >>> print(my_truck.current_speed) 10 >>> my_truck.stop() >>> print(my_truck.current_speed) 0 >>> print(my_truck.vehicle_details()) V8, 2015, XYZ1234
Ошибки являются частью жизни каждого программиста и зная, как с ними разобраться – это навык самостоятельно.
Путь Python имеет дело с ошибками, называется «Обработка исключений».
Если какой-то кусок кода вступает в ошибку, интерпретатор Python будет поднять исключение.
Типы исключений
Давайте попробуем поднять некоторые исключения с целью и увидеть ошибки, которые они производят.
Типерр
Во-первых, попробуйте добавить строку и целое число
'I am a string' + 32
Traceback (most recent call last): File "", line 1, in TypeError: must be str, not int
IndexError.
Теперь попробуйте получить доступ к индексу, который не существует в списке.
Общая ошибка состоит в том, чтобы забыть о том, что последовательности 0 – индексированы, что означает, что первый элемент имеет индекс 0, а не 1.
В этом примере список Car_Brands
заканчивается на индексе 2.
car_brands = ['ford', 'ferrari', 'bmw'] print(car_brands[3])
Traceback (most recent call last): File "", line 1, in IndexError: list index out of range
NameError.
Если мы попытаемся распечатать переменную, которая не существует:
print(my_variable)
Traceback (most recent call last): File "", line 1, in NameError: name 'my_variable' is not defined
ZerodivisionError.
Математика не позволяет отделению на ноль, поэтому пытаясь сделать это, будет поднять ошибку, как и ожидалось.
32/0
Traceback (most recent call last): File "", line 1, in ZeroDivisionError: division by zero
Это был просто образец таких исключений, которые вы можете увидеть во время своей повседневной жизни, и что может привести к ним.
Обработка исключений
Теперь мы знаем, как вызвать ошибки, которые потерпят наш код и покажут нам некоторое сообщение, что что-то не так.
Чтобы обработать эти исключения, просто используйте попробуй/кроме
утверждение.
try: 32/0 except: print('Dividing by zero!')
Dividing by zero!
Пример выше показывает использование попробуйте
утверждение.
Поместите блок код, который может вызвать исключение внутри попробуйте
сфера. Если все работает хорошо, кроме
Блок не вызывается. Но если исключение поднимается, блок кода внутри кроме
выполняется.
Таким образом, программа не работает, и если у вас есть код после исключения, он будет продолжать работать, если вы этого хотите.
Определение определения исключения
В последнем примере кроме
Блок был универсальным, что означает, что все что угодно.
Хорошая практика это, чтобы указать тип исключения, который мы пытаемся поймать, что много помогает при отладке кода позже.
Если вы знаете, что блок кода может бросить IndexError
Укажите это в кроме
:
try: car_brands = ['ford', 'ferrari', 'bmw'] print(car_brands[3]) except IndexError: print('There is no such index!')
There is no such index!
Вы можете использовать кортеж, чтобы указать как можно больше типов исключений, сколько вы хотите в одном кроме
:
try: print('My code!') except(IndexError, ZeroDivisionError, TypeError): print('My Excepetion!')
еще
Можно добавить еще
Команда в конце попробуй/кроме
Отказ Он работает только в том случае, если нет исключения.
my_variable = 'My variable' try: print(my_variable) except NameError: print('NameError caught!') else: print('No NameError')
My variable No NameError
Повышение исключений
поднять
Команда позволяет вручную поднять исключение.
Это особенно полезно, если вы хотите поймать исключение и сделать что-то с ним – подобно регистрации ошибки в некоторых персонализированных способах, как перенаправляя его в агрегатор журнала, или заканчивая выполнением кода, поскольку ошибка не должна допускать прогресса программа.
try: raise IndexError('This index is not allowed') except: print('Doing something with the exception!') raise
Doing something with the exception! Traceback (most recent call last): File "", line 2, in IndexError: This index is not allowed
наконец-то
Наконец
Блок выполняется независимо от поднятия или нет исключения.
Обычно они должны позволять программе очистить такие ресурсы, как файлы, память, сетевые соединения и т. Д.
try: print(my_variable) except NameError: print('Except block') finally: print('Finally block')
Except block Finally block
Это оно!
Поздравляем с достижением конца.
Я хочу поблагодарить вас за чтение этой статьи.
Если вы хотите узнать больше, оформить мой блог Renanmf.com Отказ
Помните Для скачивания PDF версия этого руководства Python для начинающих Отказ
Вы также можете найти меня в Twitter: @renanmouraf Отказ