Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Словари в логическом контексте




Словари в логическом контексте

Пустые словари — ложь, все остальные — истина.

Вы можете использовать словари в логическом контексте, например в операторе if.

> > > def is_it_true(anything):
... if anything:
... print(" да, это истина" )
... else:
... print(" нет, это ложь" )
...
> > > is_it_true({}) ①
нет, это ложь
> > > is_it_true({'a': 1}) ②
да, это истина

В логическом контексте пустой словарь ложен.
Любой словарь с хотя бы одной парой ключ—значение истинен.

Константа None

None — это специальная константа в Python. Она обозначает пустое значение. None — это не то же самое, что False. None также и не 0. None даже не пустая строка. Если сравнивать None с другими типами данных, то результатом всегда будет False.

None — это просто пустое значение. None имеет свой собственный тип (NoneType). Вы можете присвоить None любой переменной, но вы не можете создать других объектов типа NoneType. Все переменные, значение которых None равны друг другу.

> > > type(None)
< class 'NoneType'>
> > > None == False
False
> > > None == 0
False
> > > None == ''
False
> > > None == None
True
> > > x = None
> > > x == None
True
> > > y = None
> > > x == y
True

None в логическом контексте

В логическом контексте None всегда является ложью, а not None — истиной.

> > > def is_it_true(anything):
... if anything:
... print(" да, это истина" )
... else:
... print(" нет, это ложь" )
...
> > > is_it_true(None)
нет, это ложь
> > > is_it_true(not None)
да, это истина

Материалы для дальнейшего чтения

  • Логические операции
  • Численные типы
  • Типы-последовательности
  • Типы-множества
  • Типы-отображения
  • Модуль fractions
  • Модуль math
  • PEP 237: Унификация длинных целых и целых
  • PEP 238: Изменение оператора деления

Генераторы

 

Нам приходится сильнее напрягать свое воображение не для того, чтобы, как в художественной литературе, представить себе то, чего нет на самом деле, а для того, чтобы постичь то, что действительно происходит.
Ричард Фейнман

Погружение

В каждом языке программирования есть одна такая особенность, сложно устроенная, но специально упрощённая штука. Если вы раньше писали на другом языке, можете и не обратить на это внимания, поскольку ваш старый язык не так сильно упрощал эту штуку (потому что он был занят тем, что сильно упрощал какую-нибудь другую штуку). В этой главе вы изучите генераторы списков, словарей и множеств — три взаимосвязанные концепции, сконцентрированные вокруг одной очень мощной технологии. Но сначала я хочу немного отклониться от нашего повествования, чтобы рассказать вам о двух модулях, которые помогут вам передвигаться по вашей локальной файловой системе.

Работа с файлами и каталогами

Python 3 поставляется с модулем os, что означает «операционная система». Модуль os содержит множество функций для получения информации о локальных каталогах, файлах, процессах и переменных окружения (а в некоторых случаях, и для манипулирования ими). Python предлагает очень хороший унифицированный программный интерфейс для всех поддерживаемых операционных систем, так что ваши программы можно запускать на любом компьютере с минимальным количеством платформо-зависимого кода.

Текущий рабочий каталог

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

  1. Импортирование какого-либо модуля из папки примеров
  2. Вызов функции из этого модуля
  3. Объяснение результата

Всегда есть текущий рабочий каталог.

Если вы ничего не знаете о текущем рабочем каталоге, то, возможно, шаг 1 окажется неудачным и будет порождено исключение типа ImportError. Почему? Потому что Python будет искать указанный модуль в пути поиска оператора import, но не найдёт его, потому что каталог examples не содержится в путях поиска. Чтобы исправить это, вы можете сделать одно из двух:

  • либо добавить папку examples в путь поиска оператора import;
  • либо сделать текущим рабочим каталогом папку examples.

Текущий рабочий каталог является неявным параметром, который Python постоянно хранит в памяти. Текущий рабочий каталог есть всегда, когда вы работаете в интерактивной оболочке Python, запускаете свой сценарии из командной строки или CGI-сценарий где-то на веб-сервере.

Модуль os содержит две функции для работы с текущим рабочим каталогом.

> > > import os [1]
> > > print(os. getcwd()) C: \Python31 [2]
> > > os. chdir('/Users/pilgrim/diveintopython3/examples') [3]
> > > print(os. getcwd()) C: \Users\pilgrim\diveintopython3\examples [4]
  1. ↑ Модуль os поставляется вместе с Python; вы можете импортировать его когда угодно и где угодно.
  2. ↑ Используйте функцию os. getcwd() для получения значения текущего рабочего каталога. Когда вы работаете в графической оболочке Python, текущим рабочим каталогом является каталог из которого она была запущена. В Windows это зависит от того, куда вы установили Python; каталог по умолчанию c: \Python31. Если оболочка Python запущена из командной строки, текущим рабочим каталогом считается тот, в котором вы находились, когда запускали её.
  3. ↑ Используйте функцию os. chdir() чтобы сменить текущий рабочий каталог.
  4. ↑ Когда я вызывал функцию os. chdir(), я использовал путь в стиле Linux (косая черта, нет буквы диска) даже если на самом деле работал в Windows. Это одно из тех мест, где Python пытается стирать различия между операционными системами.
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...