Питон что значит восклицательный знак

№8 Операторы в Python / Уроки по Python для начинающих

Операторами пользуются для выполнения операций с переменными и значениями.
Python делит операторы на следующие группы:

  • Арифметические операторы
  • Операторы присваивания
  • Операторы сравнения
  • Логические операторы
  • Операторы тождественности
  • Операторы принадлежности
  • Побитовые операторы

Арифметические операторы в Python

Арифметические операторы используются с числовыми значениями для выполнения общих математических операций:

Оператор Значение Пример
+ добавление 4 + 5
вычитание 8 — 3
* умножение 5 * 5
/ деление 4 / 2
% остаток от деления 7 % 2
** возведение в степень 2 ** 3
// целочисленное деление 15 // 4

Операторы присваивания в Python

Операторы присваивания используются для присваивания значений переменным:

Оператор Пример Так же как
= x = 5 x = 5
+= x += 3 x = x + 3
-= x -= 3 x = x — 3
*= x *= 3 x = x * 3
/= x /= 3 x = x / 3
%= x %= 3 x = x % 3
//= x //= 3 x = x // 3
**= x **= 3 x = x ** 3
&= x &= 3 x = x & 3
|= x |= 3 x = x | 3
^= x ^= 3 x = x ^ 3
>>= x >>= 3 x = x >> 3
Операторы сравнения в Python

Операторы сравнения используются для сравнения двух значений:

Оператор Значение Пример
== равно x == y
!= не равно x != y
> больше чем x > y
= больше чем или равно x >= y
Логические операторы в Python

Логические операторы используются для объединения условных операторов:

Оператор Значение Пример
and Возвращает значение True если оба утверждения верны x Операторы тождественности в Python

Операторы тождественности используются для сравнения объектов. Являются ли они одним и тем же объектом с одинаковым местоположением в памяти:

Оператор Значение Пример
is Возвращает true если переменные являются одним объектом x is y
is not Возвращает true если переменные разные x is not y

Операторы принадлежности в Python

Операторы принадлежности используются для проверки того, представлена ​​ли последовательность в объекте:

Оператор Значение Пример
in Возвращает True если последовательность присутствует в объекте x in y
not in Возвращает True если последовательность не присутствует в объекте x not in y

Побитовые операторы в Python

Побитовые операторы используются для работы в битовом (двоичном) формате:

Источник

Что означают восклицательные знаки в представлении объекта

Я пишу приложение с графическим интерфейсом с tkinter, и у меня есть разные классы, которые представляют разные страницы моего приложения. Я пытаюсь вызвать переменную из одного класса в другой, поэтому я использовал функцию repr (), чтобы получить представление о том, как вызывать этот объект из одного класса в другой.

Я позвонил print(repr(listbox))

Мой список находится в классе с именем SelectionPage и определен как listbox = tk.Listbox(self)

Представление напечатано как

Я новичок в Python, и я не понимаю, что означают эти восклицательные знаки. Это даже хороший способ отладки ?? Извините, если это дублирующий вопрос, я действительно запутался и не смог найти ответ в другом месте.

1 ответ

Что означают восклицательные знаки в представлении объекта

Они ничего не значат. Разработчики Tkinter просто решили дать всем своим автоматически сгенерированным именам внутренних виджетов лидирующий восклицательный знак.

Tkinter — это просто оболочка Python для интерпретатора tcl / tk. В tcl / tk виджет представлен в виде иерархии виджетов. Например, корневым виджетом является . . Кадр в корне может быть назван .frame . Список в этом кадре может быть назван .frame.lb . Tcl очень широка в том, что он будет принимать — по сути, именем виджета может быть любой символ, кроме «.» поэтому использование восклицательного знака является законным, хотя в мире tcl / tk это необычно.

Когда вы создаете виджет Tkinter путем создания экземпляра одного из его классов, tkinter должен создать действительное имя виджета для передачи интерпретатору tcl для создания фактического виджета. В старых версиях Tkinter использовались уникальные номера (например: ‘.4368693152.4368765368’ ). В python3 tkinter решил использовать более понятные для человека имена с префиксом восклицательного знака.

Насколько я знаю, восклицательный знак не имеет особого значения, хотя я полагаю, что он может быть полезен при определении, было ли имя виджета создано tkinter или каким-либо другим способом.

Я пытаюсь вызвать переменную из одного класса в другой, поэтому я использовал функцию repr (), чтобы получить представление о том, как вызывать этот объект из одного класса в другой.

Почти наверняка есть лучшие способы сделать это, чем использовать внутреннее имя виджета. Однако если вы знаете внутреннее имя виджета (например, «.!selectionpage.!listbox» ) и настаиваете на том, чтобы делать это таким образом, вы можете преобразовать имя строки в экземпляр виджета tkinter с помощью универсального метода виджета nametowidget .

Кстати, вы можете дать виджетам имя, если вам не нравится автоматически сгенерированное имя. Это работает для всех виджетов, кроме корневого.

Источник

Все операторы Python. Синтаксис и примеры кода

Оператор – один из ключевых терминов языка Python. Они бывают разными: арифметическими, логическими и так далее. Они нужны для того, чтобы выполнять определенное действие с информацией, которая введена пользователем или возвращена другой функцией. Сегодня мы подробно рассмотрим, какие бывают операторы в языке Python и продемонстрируем примеры их использования.

Что такое оператор?

Под оператором в любом языке программирования подразумевают символ, который выполняет определенную операцию с частями информации – переменными или значениями. Такие данные называются операндами.

В Python есть 7 базовых типов операторов:

  1. Арифметические. Предназначены для выполнения стандартных операций типа сложения, вычитания, умножения или деления. Также есть ряд других арифметических операторов, которые будут рассмотрены далее.
  2. Операторы сравнения. Они берут операнд 1, операнд 2 (и так далее) и сравнивают их между собой. Например, этот оператор может сказать, является ли первая переменная больше второй, или же они равны и так далее.
  3. Операторы присваивания. Один из самых часто используемых типов операторов в Python. С его помощью осуществляется целый комплекс операций как самых простых (присваивание значения переменной), так и более сложных (возврат вывода функции в переменную).
  4. Логические операторы. С их помощью программист может соединить несколько условий, или сравнивать их между собой по логическому признаку.
  5. Операторы принадлежности. Выполняют простую проверку, относится ли конкретное значение определенному объекту (например, кортежу или списку).
  6. Операторы тождественности. С помощью этих операторов также выполняется сравнение операнд на предмет того, являются ли они одинаковыми. Но это немного отличается от операторов сравнения, поскольку проверка выполняется на предмет того, занимают ли они одно и то же место в памяти.
  7. Битовые. Эти операторы во многом работают так же, как другие, только выполняют операции по битам.

А теперь перейдем к рассмотрению каждого из этих типов операторов более подробно.

Арифметические операторы

Самые классические арифметические операторы – это сложение, вычитание, умножение и деление. Также рассмотрим ряд других, которые также выполняют арифметические действия.

Сложение . Соответствует математическому знаку +. Выполняет стандартную арифметическую операцию сложения. Синтаксис функции такой же, как и в математике: операнд 1 + операнд 2.

Вычитание . Выполняет стандартную арифметическую операцию вычитания. Первый операнд – это первое число, а второй – это второе число соответственно. Сам оператор выглядит точно так же, как и математический знак минуса.

Умножение. Умножает первое число на такое количество раз, которое указано во втором числе.

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

Деление . Последовательность действий такая же самая, как и с умножением: сначала идет операнд 1, потом знак деления (/), а потом – операнд 2.

Возведение в степень . Берет число 1 и возводит в степень числа 2.

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

Деление по модулю . Выполняет похожую операцию на предыдущий пример, только возвращает как раз остаток. Этот оператор – знак процента, который находится между операндами. Например:

Операторы сравнения

С помощью операторов сравнения, как мы уже поняли, мы сравниваем между собой несколько операндов. Приведем операторы сравнения и примеры их использования.

Меньше. Соответствует математическому знаку «меньше». С его помощью программа сравнивает два значения. Если первое оказывается меньше второго, то выдает логическое значение True .

Больше . Этот оператор выполняет ту же самую операцию. Но возвращает значение True только в том случае, если первый операнд больше второго. То есть, противоположный предыдущему оператор.

Меньше или равно . Проверяет два условия:

  1. Левая часть меньше правой, или нет?
  2. Являются ли левая и правая части одинаковыми.

Если да, она возвращает True . То есть, должно соблюдаться или первое условие или второе.

В этом примере мы видим, что число 7 равняется числу 7. Соответственно, программа выводит результат «истина». Ничего удивительного!

Больше или равно . Противоположный предыдущему оператор, возвращающий значение «истина» при соблюдении одного из этих условий:

  1. Два операнда являются одинаковыми.
  2. Первый операнд больше второго.

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

Равно. В Python знак «равно» отличается от математического, поскольку последний выглядит так же, как оператор присваивания, о котором поговорим немного позже. В Python этот оператор выглядит, как два знака равно, которые идут друг за другом.

Проверка очевидна: этот оператор возвращает значение «истина» в случае, если оба операнда являются одинаковыми. При этом 1 и 0 могут выполнять роль логических операторов. То есть, их можно сравнивать между собой.

Давайте приведем несколько примеров, чтобы было более понятно, как этот оператор работает с различными операндами. Сначала пишется строка кода, а сразу вслед за ней – вывод.

Не равно . Этот арифметический символ также не выглядит, как зачеркнутый знак равно, как в математике. Этот оператор состоит из двух частей – восклицательного знака и математического знака «равно». То есть, он выглядит, как !=.

Полностью противоположный оператору «равно» символ. Если этот оператор обнаруживает, что операнды одинаковые, он возвращает значение «ложь», а не «истина», как в случае с оператором равенства.

Раньше была еще одна версия этого оператора – <>. Но сейчас она не используется, поскольку была убрана в Python третьей версии.

Операторы присваивания

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

Таким образом, спектр применений операторов этого типа довольно обширный.

Присваивание . Выглядит, как математический знак «равно». Это классический оператор, типичный пример применения которого – присваивание значения переменной. Давайте приведем такой пример.

Сложение и присваивание. Этот оператор не просто присваивает правую часть левой, но и увеличивает её на определённое значение.

Выглядит он, как знак плюса и равно вместе (+=).

Чтобы было более понятно, давайте рассмотрим этот код.

После выполнения соответствующих арифметических действий интерпретатор выдаст значение 9 при условии, что значение переменной a было 7.

То есть, этот оператор идентичен выражению a = a + 2 .

Вычитание и присваивание. Противоположный предыдущему оператор. Если мы используем выражение a -= 2, это будет значить то же самое, что и выражение a = a – 2 .

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

Умножение и присваивание . Выполняет аналогичную последовательность действий для двух операндов. Сначала выполняется арифметическая операция с двумя операндами, а потом получившееся значение присваивается левому. В данном случае такой арифметической операцией служит умножение.

Деление по модулю и присваивание . Этот оператор выполняет сразу три действия:

  1. Делит первый операнд на второй.
  2. Определяет целое число.
  3. Присваивает это целое число той переменной, которая находится в правом операнде.

Эта программа выполняет три описанных выше действия, после чего получившийся результат печатает в консоли или нижней строке онлайн-интерпретатора. Например, если переменная a = 10, то будет выведено число 3.

Возведение в степень и присваивание . Этот оператор выполняет два действия:

  1. Берет левый операнд и возводит его в степень, равная числу справа.
  2. Получившееся число сразу становится значением переменной слева.

Здесь, как и в других операторах, можно использовать переменные в качестве правого операнда. Например, если в левой части находится переменная с числом 4, а в правой – число 2, то на вывод будет отправлено число 16.

Деление с остатком и присваивание . В принципе, вы уже поняли, как работает и записывается выражение с этим оператором. Он может получать остаток от деления первого числа на второе и возвращать его в ту переменную, которая стоит справа. Например, эта программа выводит остаток от деления на экран.

Логические операторы

Логические операторы – одни из самых важных, поскольку позволяют управлять потоком выполнения программы. В Python предусмотрено три оператора этого типа – and , or, not. Их легко запомнить, потому что они идентичны аналогичным словам на английском языке. Соответственно, они обозначают «и», «или», «не» соответственно. Рассмотрим эти операторы подробнее.

И (and). Оператор, выполняющий следующий алгоритм:

  1. Сравнивает между собой два операнда.
  2. Если оба выражения являются истинными, возвращается значение True . Если же хотя бы одно из них ложное, то возвращается False .

Приведем пример использования выражения.

>>> a = 7 > 7 and 2 > -1

Аналогично примерам, приведенным выше, здесь программа печатает результат выполнения своих операций по предыдущей строчке. Поскольку после обработки обнаружится результат «Ложь», то консоль также выдаст значение False .

Или (or). В этом случае истиной будет считаться тот результат, когда хотя бы одно из условий в операндах является истинным. Если же оба из них ложные, то выдается значение False .

>>> a = 7 > 7 or 2 > -1

Не (not). Этот оператор осуществляет инверсию значений. То есть, если на входе находится «Истина», то на выходе будет «Ложь». И наоборот. Так, в примере, который будет чуточку ниже, цифра 0 используется в качестве аргумента функции not . Соответственно, в консоли было выведено обратное значение – True ( Ведь 0 – это «ложь» в классификации этого языка).

Операторы принадлежности

С помощью этих операторов можно определить, входят ли значения в определенную последовательность. Она может быть любой – строкой, списком или кортежем. К этой категории относится всего два оператора – in и not in.

In. С английского переводится, как «В». Соответственно, с помощью этого оператора осуществляется проверка, является ли определенное значение частью последовательности списка, кортежа или строки.

Хотя принцип прост, покажем пример для наглядности.

Попробуйте определить, какое значение будет возвращено в этой ситуации. Правильный ответ – «False». Почему? Да, fox – это действительно лиса, и она является животным. Но она не входит в список домашних питомцев, куда относятся только собаки, коты и хорьки. Поэтому возвращается значение «ложь».

Если же написать такую строку, то будет возвращено «истина».

Почему? Потому что кот есть в списке питомцев.

Теперь приведем пример проверки вхождения фразы в строку.

>>> ‘me’ in ‘disappointment’

Какой вывод будет у этой фразы? Правильно, «истина», потому что слог «me» в этом слове есть.

Not in. Этот оператор выполняет противоположное действие. Оно возвращает значение «истина» исключительно в случае, если не входит в состав последовательности та конструкция, которая находится в первом операнде.

Если бы мы в примерах выше использовали этот оператор, то были бы выданы такие результаты:

  1. Если бы мы проверяли вхождение лисы в перечень домашних питомцев, то было бы выдано значение True , потому что она не входит.
  2. Если бы мы проверяли вхождение кота в этот список, было бы возвращено значение false , поскольку он также не входит.
  3. Если бы мы проверяли факт вхождения слога «me» в слово «disappointment», то был бы выдан ответ false .

То есть, эти операторы работают полностью противоположным друг другу образом.

Операторы тождественности

Разберем более подробно операторы тождественности, поскольку они – наименее очевидны для новичка.

Это (is). Этот оператор проверяет тождественность. Если это так, то возвращается значение True . Если же нет, False. Давайте для демонстрации этого оператора приведем несколько примеров.

Здесь сравниваются числа 2 и 20. Они не являются одинаковыми, поэтому вернулось значение False .

А здесь сравниваются две двойки. При этом кавычки не учитываются, поскольку они не меняют объекты, это лишь системный символ, который позволяет людям и интерпретатору ориентироваться в коде. А поскольку кавычки этого не делают, то и возвращается значение True . Ведь они – идентичны.

Это не (is not). Как и любой обратный оператор, этот показывает полностью противоположное предыдущему значение.

Есть один нюанс. Оба оператора проверяют, являются ли объекты одинаковыми. То есть, если ввести первый операнд 1 и второй операнд ‘1’, то результат будет True в данном случае. Если говорить про предыдущую – False.

Почему так? Дело в том, что единица не тождественна ‘1’, поскольку эти значения представляют разные типы данных. В прошлом примере кавычки не учитывались, поскольку и в первом операнде, и во втором стоят кавычки. Здесь же мы видим, что первый операнд не имеет кавычки. И в этом случае они не будут считаться идентичными, даже если внешне выглядят одинаково.

Битовые операторы

На практике, используются довольно редко. Но применяются. И знать их тоже надо.

Для начала надо раскрыть, что такое побитовые операции в целом. Они выполняются над разрядами числа по специальным формулам, каждая из которых зависит от операторов.

Поэтому важно рассмотреть их более подробно.

Бинарное И (&) . Полный аналог оператора and , только который работает с битами. Точно так же, как и любой другой битовый оператор, он выполняет операции с каждой парой битов по отдельности, осуществляя с ними действия в соответствии с этой таблицей.

То есть, если первый бит в первой последовательности будет 0 и во второй последовательности битов первый бит будет 0, то после выполнения этой операции получится значение 0.

Точно так же и с каждым последующим битом. Предположим, у нас есть две последовательности:

После того, как каждая из этих последовательностей битов будет обработана оператором, получится следующая последовательность:

Естественно, передавать значения можно и в десятичной форме. В таком случае они будут преобразованы в двоичную и выполнены соответствующие вычисления. А потом они снова будут преобразованы в десятичную систему.

Например, если выполнить побитовое «И» с числами 2 и 3, то получится две последовательности битов в двоичной форме:

Если сопоставить с таблицей выше, то после побитового И будет выдан следующий результат:

То есть, на вывод уйдет цифра 2, поскольку после выполнения операции побитового И 1 и 1 дали 1, а 0 и 1 дали 0. В результате, получилось значение 10, что соответствует 2.

По аналогичному принципу работают и другие бинарные операторы.

Бинарное ИЛИ (|) . Соответствует побитовой операции or .

Общая таблица сопоставления битов с использованием этого оператора следующая.

То есть, если ввести такую строку кода, получится на выходе 3.

Почему? Потому что эти две десятичные цифры переводятся в следующие две последовательности.

1 на 1 дает 1, и 0 на 1 дает 1. Соответственно, получилось число 11 в двоичной форме, что соответствует 3 в десятичной. Поэтому такой вывод.

Бинарное ИЛИ НЕТ (^) . С помощью этой функции выполняется исключающее между двумя операндами, переведенными в двоичную форму. Сопоставление осуществляется по таким правилам.

Таким образом, если выполнить соответствующую операцию с теми же самыми числами, то получится в результате 1. Ведь цифра 2 у нас 10, а 11 – это 3. Таким образом, если сопоставить разряды по правилам, получится в итоге 01.

Инвертирующий оператор . С его помощью пользователь может инвертировать 0 в 1 и наоборот.

Например, если применить его к 2, то получится в результате -3. Почему? Потому что в двоичном формате цифра 2 – это 00000010. Если же ее инвертировать, то получится 11111101, что соответствует двоичной -3. Таким образом, получится в итоге обычная 2.

Естественно, работает все и абсолютно наоборот. Ведь если 11111101 заменить на противоположные значения, то получится на выходе та же цифра 3.

Бинарный сдвиг влево и вправо . Осуществляет сдвиг левого оператора на ту позицию, которая есть справа. Например, если попробовать сдвинуть вправо бинарную 3 (то есть, 11) на два положения влево, то в результате получится число 00, поскольку единицы ушли за пределы разряда.

И такой принцип дальше. То есть, первый операнд – это то число, сдвиг которого надо осуществить. Второй же операнд – количество бит, на которое необходимо его выполнить.

Источник

Читайте также:  Положение эос отклонение влево что это значит у женщин
Оцените статью