Connect with us

Обучение

Python #9: Генераторы, and, or, copy, обработка исключений

65

 

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

Тернарный оператор

Это такой оператор, где операция возвращает первый или третий операнд в зависимости от выполнения условия. Тернарный оператор можно использовать вместо конструкции if…else, где нет условия elif

«выполняется_это_условие» если выражение истинно, иначе «_это_условие»

Служит он для того, чтобы уменьшить объем кода. Синтаксис очень простой:

Для примера можно использовать следующую задачу:

Результат:

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

Генераторы словарей и списков

[adace-ad id=»3482″]

 

Генератор списков или словарей — это специальная конструкция, которая помогает генерировать их по заданным условиям. В основном их используют как альтернативу циклу for, т.к. генераторы работают быстрее. Синтаксис генератора следующий:

param1 for param1 in dict if param1 ==0

param1 — это то, что мы записываем в список

for param1 in dict — цикл for, который записывает первый параметр в список или словарь

if param1 ==0 — условие, при котором это происходит

Генератор списка можно показать на таком примере:

Результат:

Теперь посмотрим на генератор словарей

Результат:

Примеры использования генераторов

[adace-ad id=»3475″]

 

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

 

Результат:

Приведение типов данных к bool

Все типы данных в питоне можно привести к логическому типу данных (bool), которое отдает нам либо false, либо true.

Истиной будет считаться любой не пустой список, словарь, кортеж + целые числа (не равные нулю) в т.ч. числа с плавающей точкой (float).

Ложью будет считаться пустые списки, кортежи, строки, число ноль и тип данных None.

Всё это служит для облегчения разработки, для создания лаконичного кода и улучшает его читаемость. Например:

[adace-ad id=»3473″]

 

 

Результат у нас одинаковый в классическом способе и в более удобном:

Оператор and

Оператор and служит для того, чтобы проверять все условия на true. Если он «споткнется» об элемент false (пусть он будет даже один из тысячи), то условие внутри цикла не выполнится.  Так же он выводит первую попавшуюся ложь в условии. С истиной наоборот — он выведет последнюю истину в условии

 

Результат:

Оператор or

Оператор or наоборот остановит перебор условий, если текущее будет true, т.е. является обратной «стороной» оператора and. Он будет возвращать первый истинный элемент или последний ложный

 

Результат:

Практика использования and и or

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

 

Результат:

Оператор сopy

Представьте, что у нас есть-какой либо список в переменной list. Если мы переприсваиваем этот список в переменную list2 и изменим там какое-то значение, то в списке list  — оно тоже изменится. Кстати, это правило работает только со списком. Например, если мы используем строку (str), то оригинал её не изменится Чтобы полноценную копию списка, которую можно изменять не в ущерб оригинальному списку используется либо срез (list2 = list[:]), либо оператор copy. Перед тем как его использовать, нужно сделать его импорт: import copy

 

Результат:

Для того, чтобы полностью скопировать список, который имеет в себе вложения (другие списки внутри списка), обычная функция copy не подойдет. Необходимо использовать функцию глубокого копирования list2 = copy.deepcopy(list1)

Обработка исключений

Во время выполнения программы может возникнуть ситуация, когда возникнет логическая ошибка и интерпритатор прекратит свою работу. Это называется исключительной ситуацией. Самое простой пример — это деление на ноль. Дело в том, что если мы не обработаем исключение, то программа завершит свою работу и последующий код не будет выполнен. Поэтому там, где возможна такая ситуация лучше перестраховаться.

В питоне имеются несколько типов таких «нештатных» ситуаций. Общие ошибки имеют тип Exception, также есть TypeError, ValueError  и т.д. Если вы знаете, что в этом условии может произойти какой-то конкретный тип ошибки — лучше его указывать. В целом конструкция обработки исключений выглядит как:

try — except — else — finaly (но может состоять только из первых двух)

try — это блок кода, где может возникнуть исключение

except — что делаем при возникновении исключения

else — что делать, если исключение не произошло

finaly — этот код выполнится в любом случае

Как это выглядит на практике:

 

Результат:

Чтобы вручную вызвать исключительную ситуацию можно воспользоваться оператором raise

Нажмите что бы оставить комментарий

Ответить

Ваш e-mail не будет опубликован.

Лучшие сервисы стриминга музыки в 2019 году

Сервисы

Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Ростелеком

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Гаджеты

LG WEB OS: приложения, обновления, настройка, проблемы со звуком

Гаджеты

.

Digital2.ru - Тренды, IT, WEB- разработка, Цифровая экономика
Свободное копирование и распространение материалов с сайта Digital2.ru
разрешено только с указанием активной ссылки на Digital2 как на источник.
Данный сайт в ходит структуру медиа группы: Online Payments Group Intellect Organic
Товарный знак: OPGIO
Copyright 2019 © All rights reserved

Connect
Подпишись на нас