что означает символ в питоне
Символы в языке Python
Тип char – это тип данных, служащий для хранения одиночных символов в различных кодировках.
Он широко используется в более низкоуровневых языках программирования, таких как C. Даже строки там являются массивами, состоящими из элементов типа char.
В Python нет отдельного типа для символов. Даже если присвоить переменной значение ‘а’, она будет иметь строковый тип.
Альтернатива char в Python 3
Разработчики языка решили, что нет необходимости выделять под отдельные символы целый тип. На то есть несколько причин:
Поэтому как бы программист ни пытался, переменные будут иметь строковый тип:
Любой символ в Python является единичной строкой, что позволяет использовать для работы с ним те же функции, что и для строк.
Строка — это неизменяемая последовательность, а так как символ тоже строка, то при попытке изменить его, возбудится исключение:
Функции
Несмотря на объединение двух типов, язык программирования Python 3 имеет функции для работы именно с символами.
Функция возвращает числовое представление символа, переданного в качестве аргумента. То есть с её помощью в Python можно определить код символа (аналогичная функция есть и в C для приведения char к int), например:
Функция работает, только если в качестве аргумента передан один символ, при попытке передать строку возбудится исключение TypeError. С её помощью можно получить числовое представление любого символа кодировки Юникод.
Функция возвращает символ, соответствующий его числовому представлению, которое передается в качестве аргумента:
Экранирование
Экранированные символы — это специальные символы после обратной косой черты «\», выполняющие определенные действия и преобразования.
| Экранированная последовательность | Функция |
| \n | Переход на новую строку |
| \t | Табуляция |
| \r | Возврат каретки в начало строки |
| \x | Числа в шестнадцатеричном представлении |
| \o | Числа в восьмеричном представлении |
| \0 | Нулевой символ |
| \’ | Апостроф |
| \» | Двойная кавычка |
| \\ | Обратный слэш |
Экранированные символы также называются escape-последовательностями, с их помощью можно, например, форматировать строки —
Подавление экранирования
Иногда программисту нужно, чтобы обратный слеш не превращал элементы в escape-последовательности, например, при работе с путями к файлам. Для этого необходимо использовать сразу две косых черты: «C:\\Users\\Public».
Когда программист хочет использовать обратный слеш для вывода, но не подавляет экранирование, в некоторых случаях даже возбуждается исключение. В следующем примере есть синтаксическая ошибка из-за того, что с «\U» начинается записть 32-битного символа Юникода (с «\u» — 16-битного). После него должна быть последовательность из 8 цифр, поэтому возникла ошибка:
Чтобы избежать этого, используют приём подавления экранирования:
Подавить экранирование можно с помощью «r», который ставится перед началом строки (до кавычек). На самом деле интерпретатор, видя перед строкой «r», автоматически дублирует каждый символ обратного слеша. Если использовать это в интерактивном режиме, мы увидим:
Решить эту проблему можно несколькими способами:
Операторы Python
В этом руководстве речь пойдет об операторах языка программирования Python. Вы узнаете об арифметических, логических и битовых операторах, а также операторах сравнения, присваивания, принадлежности, тождественности и их синтаксисе. Все это будет проиллюстрировано примерами.
Оператор в Python — это символ, который выполняет операцию над одним или несколькими операндами.
Операндом выступает переменная или значение, над которыми проводится операция.
Введение в операторы Python
Операторы Python бывают 7 типов:
Арифметические операторы Python
Этот тип включает операторы для проведения базовых арифметических операций.
Сложение (+)
Складывает значение по обе стороны оператора.
Пример:
Вычитание (-)
Вычитает значение правой стороны из значения в левой.
Пример:
Умножение (*)
Перемножает значения с обеих сторон оператора.
Пример:
Деление (/)
Делит значение левой стороны на значение правой. Тип данных результата деления — число с плавающей точкой.
Пример:
Возведение в степень (**)
Возводит первое число в степень второго.
Пример:
Деление без остатка (//)
Выполняет деление и возвращает целочисленное значение частного, убирая цифры после десятичной точки.
Пример:
Деление по модулю (остаток от деления) (%)
Выполняет деление и возвращает значение остатка.
Пример:
Операторы сравнения
Операторы сравнения в Python проводят сравнение операндов. Они сообщают, является ли один из них больше второго, меньше, равным или и то и то.
Меньше (
Этот оператор проверяет, является ли значение слева меньше, чем правое.
Пример:
Больше (>)
Проверяет, является ли значение слева больше правого.
Пример:
Меньше или равно (
Проверяет, является ли левая часть меньше или равной правой.
Пример:
Больше или равно (>=)
Проверяет, является ли левая часть больше или равной правой.
Пример:
Равно (==)
Не равно (!=)
Проверяет, не равно ли значение слева правому. Оператор <> выполняет ту же задачу, но его убрали в Python 3.
Операторы присваивания
Оператор присваивания присваивает значение переменной. Он может манипулировать значением до присваивания. Есть 8 операторов присваивания: 1 простой и 7 с использованием арифметических операторов.
Присваивание (=)
Присваивает значение справа левой части. Стоит обратить внимание, что == используется для сравнения, а = — для присваивания.
Пример:
Сложение и присваивание (+=)
То же касается и все остальных операторов присваивания.
Пример:
Вычитание и присваивание (-=)
Вычитает значение справа из левого и присваивает его выражению слева.
Пример:
Деление и присваивание (/=)
Делит значение слева на правое. Затем присваивает его выражению слева.
Пример:
Умножение и присваивание (*=)
Перемножает значения обеих сторон. Затем присваивает правое левому.
Пример:
Деление по модулю и присваивание (%=)
Выполняет деление по модулю для обеих частей. Результат присваивает левой части.
Пример:
Возведение в степень и присваивание (**=)
Выполняет возведение левой части в степень значения правой части. Затем присваивает значение левой части.
Пример:
Деление с остатком и присваивание (//=)
Выполняет деление с остатком и присваивает результат левой части.
Пример:
Это один из важных операторов Python
Логические операторы Python
Это союзы, которые позволяют объединять по несколько условий. В Python есть всего три оператора: and (и), or (или) и not (не).
И (and)
Если условия с двух сторон оператора and истинны, тогда все выражение целиком считается истинным.
Пример:
Или (or)
Выражение ложно, если оба операнда с двух сторон ложные. Если хотя бы одно из них истинное, то и все выражение истинно.
Пример:
Не (not)
Операторы принадлежности
Нет в (not in)
Этот оператор проверяет, НЕ является ли значение членом последовательности.
Пример:
Операторы тождественности
Эти операторы проверяют, являются ли операнды одинаковыми (занимают ли они одну и ту же позицию в памяти).
Это (is)
Это не (is not)
Битовые операторы Python
Эти операторы работают над операндами бит за битом.
Бинарное И (&)
Бинарное ИЛИ (|)
Проводит побитовую операцию or на двух значениях. Здесь or для 10 (2) и 11 (3) возвращает 11 (3).
Пример:
Бинарное ИЛИ НЕТ (^)
Проводит побитовую операцию xor (исключающее или) на двух значениях. Здесь результатом ИЛИ НЕ для 10 (2) и 11 (3) будет 01 (1).
Пример:
Инвертирующий оператор (
Бинарный сдвиг влево (
Бинарный сдвиг вправо (>>)
Выводы
В этом уроке были рассмотрены все 7 типов операторов Python. Для каждого был предложен пример в IDE. Для понимания особенностей работы операторов нужно продолжать с ними работать, использовать в условных конструкциях и объединять.
2.5. Символы и строки¶
До сих пор наши программы работали только с числами. Но многим программам надо работать с текстовыми данными. Для этого есть два основных объекта — символы и строки.
2.5.1. Символьный тип данных¶
В питоне, чтобы сохранить символ в переменной, надо просто написать
Вводить символы можно обычной командой input() :
(именно прямо так), выводить — обычным print :
(На самом деле, в питоне нет отдельного «типа» для символов, символ в питоне — это просто строка длины 1, про строки см. ниже. Но часто удобно думать про символы отдельно от строк.)
2.5.2. Коды символов¶
Есть общепринятая договоренность, которая каждому числу от 0 до 255 ставит в соответствие некоторый символ. Точнее, таких договоренностей есть несколько, они называется кодировки, но для латинских букв, цифр и частоупотребимых символов типа того же доллара, запятой или плюса, во всех кодировках соответствующие числа одинаковы. Для русских букв это не так: в разных кодировках им соответствуют разные числа, но это отдельная тема.
Эта общепринятая сейчас кодировка для латинских букв, цифр и частоупотребимых символов называется ASCII, иногда говорят таблица ASCII. Основная часть этой таблицы выглядит так:
| 32 | 48 | 0 | 64 | @ | 80 | P | 96 | ` | 112 | p | |
| 33 | ! | 49 | 1 | 65 | A | 81 | Q | 97 | a | 113 | q |
| 34 | « | 50 | 2 | 66 | B | 82 | R | 98 | b | 114 | r |
| 35 | # | 51 | 3 | 67 | C | 83 | S | 99 | c | 115 | s |
| 36 | $ | 52 | 4 | 68 | D | 84 | T | 100 | d | 116 | t |
| 37 | % | 53 | 5 | 69 | E | 85 | U | 101 | e | 117 | u |
| 38 | & | 54 | 6 | 70 | F | 86 | V | 102 | f | 118 | v |
| 39 | ‘ | 55 | 7 | 71 | G | 87 | W | 103 | g | 119 | w |
| 40 | ( | 56 | 8 | 72 | H | 88 | X | 104 | h | 120 | x |
| 41 | ) | 57 | 9 | 73 | I | 89 | Y | 105 | i | 121 | y |
| 42 | * | 58 | : | 74 | J | 90 | Z | 106 | j | 122 | z |
| 43 | + | 59 | ; | 75 | K | 91 | [ | 107 | k | 123 | < |
| 44 | , | 60 | 76 | L | 92 | \ | 108 | l | 124 | | | |
| 45 | — | 61 | = | 77 | M | 93 | ] | 109 | m | 125 | > |
| 46 | . | 62 | > | 78 | N | 94 | ^ | 110 | n | 126 | |
| 47 | / | 63 | ? | 79 | O | 95 | _ | 111 | o | 127 | — |
Здесь символ номер 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 идут подряд, поэтому достаточно из кода символа вычесть код нуля. В итоге получаем
Дана строка. Посчитайте, сколько в ней маленьких латинских букв.
Входные данные: Вводится одна строка.
Входные данные: Выведите одно число — ответ на задачу.
№8 Операторы в Python / Уроки по Python для начинающих
Операторами пользуются для выполнения операций с переменными и значениями.
Python делит операторы на следующие группы:
Арифметические операторы в Python
Арифметические операторы используются с числовыми значениями для выполнения общих математических операций:
| Оператор | Значение | Пример |
|---|---|---|
| + | добавление | 4 + 5 |
| — | вычитание | 8 — 3 |
| * | умножение | 5 * 5 |
| / | деление | 4 / 2 |
| % | остаток от деления | 7 % 2 |
| ** | возведение в степень | 2 ** 3 |
| // | целочисленное деление | 15 // 4 |
Операторы присваивания в Python
Операторы присваивания используются для присваивания значений переменным:
Операторы сравнения используются для сравнения двух значений:
Логические операторы используются для объединения условных операторов: