что значит символ в python
№8 Операторы в Python / Уроки по Python для начинающих
Операторами пользуются для выполнения операций с переменными и значениями.
Python делит операторы на следующие группы:
Арифметические операторы в Python
Арифметические операторы используются с числовыми значениями для выполнения общих математических операций:
Оператор | Значение | Пример |
---|---|---|
+ | добавление | 4 + 5 |
— | вычитание | 8 — 3 |
* | умножение | 5 * 5 |
/ | деление | 4 / 2 |
% | остаток от деления | 7 % 2 |
** | возведение в степень | 2 ** 3 |
// | целочисленное деление | 15 // 4 |
Операторы присваивания в Python
Операторы присваивания используются для присваивания значений переменным:
Операторы сравнения используются для сравнения двух значений:
Логические операторы используются для объединения условных операторов:
Оператор | Значение | Пример | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
and | Возвращает значение True если оба утверждения верны | x Операторы тождественности в Python Операторы тождественности используются для сравнения объектов. Являются ли они одним и тем же объектом с одинаковым местоположением в памяти:
Операторы принадлежности в PythonОператоры принадлежности используются для проверки того, представлена ли последовательность в объекте:
Побитовые операторы в PythonПобитовые операторы используются для работы в битовом (двоичном) формате: Символы в языке PythonТип char – это тип данных, служащий для хранения одиночных символов в различных кодировках. Он широко используется в более низкоуровневых языках программирования, таких как C. Даже строки там являются массивами, состоящими из элементов типа char. В Python нет отдельного типа для символов. Даже если присвоить переменной значение ‘а’, она будет иметь строковый тип. Альтернатива char в Python 3Разработчики языка решили, что нет необходимости выделять под отдельные символы целый тип. На то есть несколько причин: Поэтому как бы программист ни пытался, переменные будут иметь строковый тип: Любой символ в Python является единичной строкой, что позволяет использовать для работы с ним те же функции, что и для строк. Строка — это неизменяемая последовательность, а так как символ тоже строка, то при попытке изменить его, возбудится исключение: ФункцииНесмотря на объединение двух типов, язык программирования Python 3 имеет функции для работы именно с символами. Функция возвращает числовое представление символа, переданного в качестве аргумента. То есть с её помощью в Python можно определить код символа (аналогичная функция есть и в C для приведения char к int), например: Функция работает, только если в качестве аргумента передан один символ, при попытке передать строку возбудится исключение TypeError. С её помощью можно получить числовое представление любого символа кодировки Юникод. Функция возвращает символ, соответствующий его числовому представлению, которое передается в качестве аргумента: ЭкранированиеЭкранированные символы — это специальные символы после обратной косой черты «\», выполняющие определенные действия и преобразования.
Экранированные символы также называются escape-последовательностями, с их помощью можно, например, форматировать строки — Подавление экранированияИногда программисту нужно, чтобы обратный слеш не превращал элементы в escape-последовательности, например, при работе с путями к файлам. Для этого необходимо использовать сразу две косых черты: «C:\\Users\\Public». Когда программист хочет использовать обратный слеш для вывода, но не подавляет экранирование, в некоторых случаях даже возбуждается исключение. В следующем примере есть синтаксическая ошибка из-за того, что с «\U» начинается записть 32-битного символа Юникода (с «\u» — 16-битного). После него должна быть последовательность из 8 цифр, поэтому возникла ошибка: Чтобы избежать этого, используют приём подавления экранирования: Подавить экранирование можно с помощью «r», который ставится перед началом строки (до кавычек). На самом деле интерпретатор, видя перед строкой «r», автоматически дублирует каждый символ обратного слеша. Если использовать это в интерактивном режиме, мы увидим: Решить эту проблему можно несколькими способами: Python. Краткий справочникКомментарииКомментарии в Python начинаются со знака # и могут появляться в любом месте программы. Комментарий может занимать всю строчку: или может находиться на строчке после какого-нибудь кода: Внимание: любую строку можно превратить в комментарий, достаточно в начале строки набрать комбинацию клавиш Ctrl+/ ЧислаЧисла в Python бывают трёх типов: СтрокиСтрока – это последовательность символов. Чаще всего строки – это просто некоторые наборы слов. Слова могут быть как на английском языке, так и почти на любом языке мира. Операции со строкамиМетоды работы сос строкамиКавычкиСтроку можно указать, используя одинарные кавычки, как например, ‘Это строка’. Любой одиночный символ в кавычках, например, ‘ю’ — это строка. Пустая строка » — это тоже строка. То есть строкой мы считаем всё, что находится внутри кавычек. Запись строки в одинарных кавычках это не единственный способ. Можно использовать и двойные кавычки, как например, »Это строка». Для интерпретатора разницы между записями строки в одинарных и двойных кавычках нет. Внимание : Театр » Современник ‘ ‘ Строка, занимающая несколько строк, должна быть обрамлена тройными кавычками ( » » » или »’ ). Например: »’В Python можно использовать одинарные, ОтступыОператор присваиванияПеременная – это именованная область памяти, в которой хранятся данные. Данные помещаются в эту область памяти, как в ящик, с помощью оператора присваивания. Общая форма записи операции присваивания: Знакомый нам знак равно (=) в программирование это знак операции присваивания. Различие между знаками равно и присваивания в следующем. b = 4 Основные операторыОператор Краткое описание Сложение (сумма x и y) Вычитание (разность x и y) Умножение (произведение x и y) Внимание! Если x и y целые, то результат всегда будет целым числом! Для получения вещественного результата хотя бы одно из чисел должно быть вещественным. Пример: 40/5 → 8, а вот 40/5.0 → 8.0 y+=x; эквивалентно y = y + x; y*=x; эквивалентно y = y * x; y/=x; эквивалентно y = y / x; y%=x; эквивалентно y = y % x; 4 % 2 в результате будет 0 4 // 3 в результате будет 1 Возведение в степень 5 ** 2 в результате будет 25 логическое отрицание НЕ Основные типы данныхОписание float Последовательность символов: « abc « , « pyhton « , « 123 « list Последовательность объектов: [ 1, 2.0, « Привет! « ] dist Список пар «ключ – значение» <"пять":5 > tuple Последовательность неизменных объектов:(20,25 ) Последовательность уникальных объектов: bool Логические значения: True или False СписокСписок (list) представляет тип данных, который хранит набор или последовательность элементов. Создание пустого списка Создание списка чисел: Создание списка слов: words = [» C «, » C ++», » Java «, » Python «] # имя списка words, он содержит 4 элемента Создание списка из элементов разного типа Для управления элементами списки имеют целый ряд методов. Некоторые из них: Кроме того, Python предоставляет ряд встроенных функций для работы со списками: ГенераторыДля создания списков, заполненных по более сложным формулам можно использовать генераторы: выражения, позволяющие заполнить список значениями, вычисленными по некоторым формулам. Общий вид генератора следующий :Прим ер. Создать список чисел от 0 до 10 [ i for i in range ( 0 , 10 )] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]что делаем: к значению элемента i применяем функцию chr ( i ). Внимание. Функция chr ( i ) – по числовому коду символа возвращает сам символ. Пример. chr (65) даст символ ‘ A ‘. [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’]Пример. Создать список строчный букв английского алфавита. Код символа ‘a’ – 97, код символа ‘z’ – 123. Поскольку символы идут подряд, то возможно использовать генератор. [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’]Библиотека mathimport math # подключение модуля библиотеки После подключения программа получает доступ ко всем функциям, методам и классам, содержащимся в нём. После подключения можно вызвать любую функцию из подключенной библиотеки по следующему правилу: указывается имя модуля и через точку имя функции Например, пусть мы хотим вызвать функцию вычисления Синус угла, задаваемого в радианах from math import sin # подключена только одна функция sin Функция Описание Округление int(x) Округляет число в сторону нуля. Это стандартная функция, для ее использования не нужно подключать модуль math . round(x) Округляет число до ближайшего целого. Если дробная часть числа равна 0.5, то число округляется до ближайшего четного числа. round(x, n) floor(x) ceil(x) abs(x) Модуль (абсолютная величина). Это — стандартная функция. Корни, логарифмы sqrt(x) Квадратный корень. Использование : sqrt(x) log(x) Натуральный логарифм. При вызове в виде log(x, b) возвращает логарифм по основанию b . Основание натуральных логарифмов e = 2,71828. Тригонометрия sin(x) Синус угла, задаваемого в радианах cos(x) Косинус угла, задаваемого в радианах tan(x) Тангенс угла, задаваемого в радианах asin(x ) Арксинус, возвращает значение в радианах acos(x) Арккосинус, возвращает значение в радианах atan(x) Арктангенс, возвращает значение в радианах atan2(y, x) Полярный угол (в радианах) точки с координатами (x, y). degrees(x) Преобразует угол, заданный в радианах, в градусы. radians(x) Преобразует угол, заданный в градусах, в радианы. Константа π = 3.1415. Генерация случайных чисел (модуль random)Python порождает случайные числа на основе формулы, так что они на самом деле не случайные, а, как говорят, псевдослучайные. Модуль random позволяет генерировать случайные числа и имеет большое множество важных для практики функций. Рассмотрим основные функции: Примеры Функция random . random () случайное число от 0 до 1. 2.5. Символы и строки¶До сих пор наши программы работали только с числами. Но многим программам надо работать с текстовыми данными. Для этого есть два основных объекта — символы и строки. 2.5.1. Символьный тип данных¶В питоне, чтобы сохранить символ в переменной, надо просто написать Вводить символы можно обычной командой input() : (именно прямо так), выводить — обычным print : (На самом деле, в питоне нет отдельного «типа» для символов, символ в питоне — это просто строка длины 1, про строки см. ниже. Но часто удобно думать про символы отдельно от строк.) 2.5.2. Коды символов¶Есть общепринятая договоренность, которая каждому числу от 0 до 255 ставит в соответствие некоторый символ. Точнее, таких договоренностей есть несколько, они называется кодировки, но для латинских букв, цифр и частоупотребимых символов типа того же доллара, запятой или плюса, во всех кодировках соответствующие числа одинаковы. Для русских букв это не так: в разных кодировках им соответствуют разные числа, но это отдельная тема. Эта общепринятая сейчас кодировка для латинских букв, цифр и частоупотребимых символов называется ASCII, иногда говорят таблица ASCII. Основная часть этой таблицы выглядит так:
Здесь символ номер 32 — это пробел. Например, символ доллар имеет номер (говорят код) 36, а символ N — 78. Обратите внимание, что все цифры идут подряд, все заглавные буквы идут подряд, и все маленькие буквы идут подряд. Это нам будет очень полезно. (Для русских букв это выполняется не всегда.) Узнать код символа в питоне можно операцией ord, а узнать символ по коду можно операцией chr. Например: Нам поможет то, что все цифры идут подряд. Поэтому достаточно из кода цифры вычесть код нуля: 2.5.3. Сравнения символов¶Символы можно сравнивать операторами =, >, =, len(s) : В-третьих, строки можно складывать. Сложить две строки — значит приписать к одной строке другую: Прибавлять можно и символы: Наконец, строковые константы — это уже привычные вам последовательности символов в кавычках: На самом деле, в питоне можно использовать как апострофы (символы ‘ ), так и кавычки (символы » ) Аналогично для записи символа «апостроф»/»кавычка» в переменную типа char: Поскольку символ \ имеет такой особый смысл, то чтобы записать в строку прямо этот символ, его надо написать два раза: Еще частный случай строки — пустая строка, т.е. строка длины ноль: Ну и наконец, строка — это все-таки массив символов. Можно использовать все известные вам операции над массивами (писать s[i], чтобы получить доступ к i-му символу строки, и т.д.). Например, так можно проверить, есть ли в строке пробелы: 2.5.6. int и т.п.¶Есть еще три полезных команды: Они переводят числа в строки и обратно, с int вы уже сталкивались. 2.5.7. Другие операции¶Вы знаете ряд хитрых команд работы с массивами, и иногда будет возникать желание их использовать при работе со строками. Лучше их не используйте, пока вы точно не будете понимать не только что, но и насколько быстро они работают. В большинстве случаев можно обойтись без них (и так даже будет проще!), плюс вы точно не знаете, как долго они работают. Например, пусть вам надо из строки удалить все пробелы. Можно писать примерно так (считаем, что у вас уже есть исходная строка s ): Но это работает долго (поверьте мне 🙂 ) и требует от вас помнить все эти команды, а еще и осознавать не самый тривиальный код. Проще так: 2.5.8. Примеры решения задач¶Приведу несколько примеров задач, аналогичных тем, которые встречаются на олимпиадах и в моем курсе. Дан символ. Определите, верно ли, что он является маленькой латинской буквой. Входные данные: Вводится один символ. Пример: Входные данные: Вводится один символ — цифра. Входные данные: Выведите число. Пример: Конечно, чтобы чисто пройти все тесты, в этой задаче можно просто вывести то же самое, что и вводится. Но давайте честно научимся превращать цифру в число. Считываем символ: и дальше надо понять, какая это цифра. Все цифры в таблице ASCII идут подряд, поэтому достаточно из кода символа вычесть код нуля. В итоге получаем Дана строка. Посчитайте, сколько в ней маленьких латинских букв. Входные данные: Вводится одна строка. Входные данные: Выведите одно число — ответ на задачу. Все операторы Python. Синтаксис и примеры кодаОператор – один из ключевых терминов языка Python. Они бывают разными: арифметическими, логическими и так далее. Они нужны для того, чтобы выполнять определенное действие с информацией, которая введена пользователем или возвращена другой функцией. Сегодня мы подробно рассмотрим, какие бывают операторы в языке Python и продемонстрируем примеры их использования. Что такое оператор?Под оператором в любом языке программирования подразумевают символ, который выполняет определенную операцию с частями информации – переменными или значениями. Такие данные называются операндами. В Python есть 7 базовых типов операторов: А теперь перейдем к рассмотрению каждого из этих типов операторов более подробно. Арифметические операторыСамые классические арифметические операторы – это сложение, вычитание, умножение и деление. Также рассмотрим ряд других, которые также выполняют арифметические действия. Умножение. Умножает первое число на такое количество раз, которое указано во втором числе. Деление без остатка. Все мы знаем, что после деления может оставаться остаток, если не получается разделить число на другое число непосредственно. С помощью этого оператора мы можем получить целое число, если разделить напрямую не получается. Например. Операторы сравненияС помощью операторов сравнения, как мы уже поняли, мы сравниваем между собой несколько операндов. Приведем операторы сравнения и примеры их использования. В этом примере мы видим, что число 7 равняется числу 7. Соответственно, программа выводит результат «истина». Ничего удивительного! Равно. В Python знак «равно» отличается от математического, поскольку последний выглядит так же, как оператор присваивания, о котором поговорим немного позже. В Python этот оператор выглядит, как два знака равно, которые идут друг за другом. Проверка очевидна: этот оператор возвращает значение «истина» в случае, если оба операнда являются одинаковыми. При этом 1 и 0 могут выполнять роль логических операторов. То есть, их можно сравнивать между собой. Давайте приведем несколько примеров, чтобы было более понятно, как этот оператор работает с различными операндами. Сначала пишется строка кода, а сразу вслед за ней – вывод. Полностью противоположный оператору «равно» символ. Если этот оператор обнаруживает, что операнды одинаковые, он возвращает значение «ложь», а не «истина», как в случае с оператором равенства. Раньше была еще одна версия этого оператора – <>. Но сейчас она не используется, поскольку была убрана в Python третьей версии. Операторы присваиванияТеперь перейдем к рассмотрению операторов присваивания. Они предназначены для того, чтобы передавать переменной определенные значения как принадлежащие другим переменным, так и появившиеся вследствие их обработки. Операторы присваивания нужны еще и для того, чтобы назначать переменным объекты, с которыми можно дальше выполнять определенные действия. Таким образом, спектр применений операторов этого типа довольно обширный. Сложение и присваивание. Этот оператор не просто присваивает правую часть левой, но и увеличивает её на определённое значение. Выглядит он, как знак плюса и равно вместе (+=). Чтобы было более понятно, давайте рассмотрим этот код. После выполнения соответствующих арифметических действий интерпретатор выдаст значение 9 при условии, что значение переменной a было 7. Деление и присваивание. Выполняет операцию деления между двумя операндами. После этого получившееся значение присваивается соответствующей переменной. Позволяет два действия: деление и присваивание запрограммировать всего одной строчкой кода. Можно также использовать переменные, объекты и другие значения, которые можно присвоить левой части, в правой. Эта программа выполняет три описанных выше действия, после чего получившийся результат печатает в консоли или нижней строке онлайн-интерпретатора. Например, если переменная a = 10, то будет выведено число 3. Здесь, как и в других операторах, можно использовать переменные в качестве правого операнда. Например, если в левой части находится переменная с числом 4, а в правой – число 2, то на вывод будет отправлено число 16. Логические операторыИ (and). Оператор, выполняющий следующий алгоритм: Приведем пример использования выражения. Операторы принадлежностиС помощью этих операторов можно определить, входят ли значения в определенную последовательность. Она может быть любой – строкой, списком или кортежем. К этой категории относится всего два оператора – in и not in. In. С английского переводится, как «В». Соответственно, с помощью этого оператора осуществляется проверка, является ли определенное значение частью последовательности списка, кортежа или строки. Хотя принцип прост, покажем пример для наглядности. Попробуйте определить, какое значение будет возвращено в этой ситуации. Правильный ответ – «False». Почему? Да, fox – это действительно лиса, и она является животным. Но она не входит в список домашних питомцев, куда относятся только собаки, коты и хорьки. Поэтому возвращается значение «ложь». Если же написать такую строку, то будет возвращено «истина». Почему? Потому что кот есть в списке питомцев. Теперь приведем пример проверки вхождения фразы в строку. >>> ‘me’ in ‘disappointment’ Какой вывод будет у этой фразы? Правильно, «истина», потому что слог «me» в этом слове есть. Not in. Этот оператор выполняет противоположное действие. Оно возвращает значение «истина» исключительно в случае, если не входит в состав последовательности та конструкция, которая находится в первом операнде. Если бы мы в примерах выше использовали этот оператор, то были бы выданы такие результаты: То есть, эти операторы работают полностью противоположным друг другу образом. Операторы тождественностиРазберем более подробно операторы тождественности, поскольку они – наименее очевидны для новичка. Это не (is not). Как и любой обратный оператор, этот показывает полностью противоположное предыдущему значение. Есть один нюанс. Оба оператора проверяют, являются ли объекты одинаковыми. То есть, если ввести первый операнд 1 и второй операнд ‘1’, то результат будет True в данном случае. Если говорить про предыдущую – False. Почему так? Дело в том, что единица не тождественна ‘1’, поскольку эти значения представляют разные типы данных. В прошлом примере кавычки не учитывались, поскольку и в первом операнде, и во втором стоят кавычки. Здесь же мы видим, что первый операнд не имеет кавычки. И в этом случае они не будут считаться идентичными, даже если внешне выглядят одинаково. Битовые операторыНа практике, используются довольно редко. Но применяются. И знать их тоже надо. Для начала надо раскрыть, что такое побитовые операции в целом. Они выполняются над разрядами числа по специальным формулам, каждая из которых зависит от операторов. Поэтому важно рассмотреть их более подробно. То есть, если первый бит в первой последовательности будет 0 и во второй последовательности битов первый бит будет 0, то после выполнения этой операции получится значение 0. Точно так же и с каждым последующим битом. Предположим, у нас есть две последовательности: После того, как каждая из этих последовательностей битов будет обработана оператором, получится следующая последовательность: Естественно, передавать значения можно и в десятичной форме. В таком случае они будут преобразованы в двоичную и выполнены соответствующие вычисления. А потом они снова будут преобразованы в десятичную систему. Например, если выполнить побитовое «И» с числами 2 и 3, то получится две последовательности битов в двоичной форме: Если сопоставить с таблицей выше, то после побитового И будет выдан следующий результат: То есть, на вывод уйдет цифра 2, поскольку после выполнения операции побитового И 1 и 1 дали 1, а 0 и 1 дали 0. В результате, получилось значение 10, что соответствует 2. По аналогичному принципу работают и другие бинарные операторы. Общая таблица сопоставления битов с использованием этого оператора следующая. То есть, если ввести такую строку кода, получится на выходе 3. Почему? Потому что эти две десятичные цифры переводятся в следующие две последовательности. 1 на 1 дает 1, и 0 на 1 дает 1. Соответственно, получилось число 11 в двоичной форме, что соответствует 3 в десятичной. Поэтому такой вывод. Таким образом, если выполнить соответствующую операцию с теми же самыми числами, то получится в результате 1. Ведь цифра 2 у нас 10, а 11 – это 3. Таким образом, если сопоставить разряды по правилам, получится в итоге 01. Естественно, работает все и абсолютно наоборот. Ведь если 11111101 заменить на противоположные значения, то получится на выходе та же цифра 3. И такой принцип дальше. То есть, первый операнд – это то число, сдвиг которого надо осуществить. Второй же операнд – количество бит, на которое необходимо его выполнить.
|