Рубрики
Без рубрики

Ultimate Python Beginner’s Handbook

Автор оригинала: Renan Moura Ferreira.

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

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

Эта гида Python для начинающих позволяет узнать ядро языка в считанные часы вместо недель.

Быстрая информация: Вы можете скачать PDF версию этого руководства Python для начинающих Отказ

Готов погрузиться в?

  1. Введение в Питон
  2. Установка Python 3.
  3. Запуск кода
  4. Синтаксис
  5. Комментарии
  6. Переменные
  7. Типы
  8. Опечатка
  9. Пользовательский ввод
  10. Операторы
  11. Условные условные
  12. Списки
  13. Кортежи
  14. Набор
  15. Словари
  16. в то время как петли
  17. для петлей
  18. Функции
  19. Сфера
  20. Пояснение списка
  21. Лямбда функции
  22. Модули
  23. Если имя
  24. Файлы
  25. Классы и объекты
  26. Наследование
  27. Исключения
  28. Заключение

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 Отказ