Типы данных и переменные. — it-black.ru
Типы данных и переменные. — it-black.ru Перейти к содержимомуТипы данных:
В языке Си различают понятия «тип данных» и «модификатор типа». Тип данных — это целый, а модификатор — со знаком или без знака. Целое со знаком будет иметь как положительные, так и отрицательные значения, а целое без знака — только положительные значения. В языке Си можно выделить пять базовых типов.
- char — символьный.
- int — целый.
- float — вещественный.
- double — вещественный двойной точности;
- void — не имеющий значения.
Переменная типа char имеет размер 1 байт, ее значениями являются различные символы из кодовой таблицы, например: ‘ф’, ‘:’, ‘j’ (при записи в программе они заключаются в одинарные кавычки).
Размер переменной типа int в стандарте языка Си не определен. В большинстве систем программирования размер переменной типа int соответствует размеру целого машинного слова. Например, в компиляторах для 16-разрядных процессоров переменная типа int имеет размер 2 байта.
Ключевое слово float позволяет определить переменные вещественного типа. Их значения имеют дробную часть, отделяемую точкой, например: -5.6, 31.28 и т.п. Вещественные числа могут быть записаны также в форме с плавающей точкой, например: -1.09e+4. Число перед символом «е» называется мантиссой, а после «е» — порядком. Переменная типа float занимает в памяти 32 бита. Она может принимать значения в диапазоне от 3.4е-38 до 3.4e+38.
Ключевое слово double позволяет определить вещественную переменную двойной точности. Она занимает в памяти в два раза больше места, чем переменная типа float. Переменная типа double может принимать значения в диапазоне от 1.7e-308 до 1.7e+308.
Ключевое слово void используется для нейтрализации значения объекта, например, для объявления функции, не возвращающей никаких значений.
Типы переменных:
Программы оперируют с различными данными, которые могут быть простыми и структурированными. Простые данные — это целые и вещественные числа, символы и указатели (адреса объектов в памяти). Целые числа не имеют, а вещественные имеют дробную часть. Структурированные данные — это массивы и структуры; они будут рассмотрены ниже.
Переменная — это ячейка в памяти компьютера, которая имеет имя и хранит некоторое значение. Значение переменной может меняться во время выполнения программы. При записи в ячейку нового значения старое стирается.
Хорошим стилем является осмысленное именование переменных. Имя переменной может содержать от одного до 32 символов. Разрешается использовать строчные и прописные буквы, цифры и символ подчёркивания, который в Си считается буквой. Первым символом обязательно должна быть буква. Имя переменной не может совпадать с зарезервированными словами.
Тип char
char — является самым экономным типом. Тип char может быть знаковым и беззнаковым. Обозначается, как «signed char» (знаковый тип) и «unsigned char» (беззнаковый тип). Знаковый тип может хранить значения в диапазоне от -128 до +127. Беззнаковый — от 0 до 255. Под переменную типа char отводится 1 байт памяти (8 бит).
Ключевые слова signed и unsigned указывают, как интерпретируется нулевой бит объявляемой переменной, т.е., если указано ключевое слово unsigned, то нулевой бит интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый.
Тип int
Целочисленная величина int может быть short (короткой) или long (длинной). Ключевое слово short ставится после ключевых слов signed или unsigned. Таким образом, есть типы: signed short int, unsigned short int, signed long int, unsigned long int.
Переменная типа signed short int (знаковая короткая целая) может принимать значения от -32768 до +32767, unsigned short int (беззнаковая короткая целая) — от 0 до 65535. Под каждую из них отводится ровно по два байта памяти (16 бит).
При объявлении переменной типа signed short int ключевые слова signed и short могут быть пропущены, и такой тип переменной может быть объявлен просто int. Допускается и объявление этого типа одним ключевым словом short.
Переменная unsigned short int может быть объявлена как unsigned int или unsigned short.
Под каждую величину signed long int или unsigned long int отводится 4 байта памяти (32 бита). Значения переменных этого типа могут находиться в интервалах от -2147483648 до 2147483647 и от 0 до 4294967295 соответственно.
Существуют также переменные типа long long int, для которых отводится 8 байт памяти (64 бита). Они могут быть знаковыми и беззнаковыми. Для знакового типа диапазон значений лежит в пределах от -9223372036854775808 до 9223372036854775807, для беззнакового — от 0 до 18446744073709551615. Знаковый тип может быть объявлен и просто двумя ключевыми словами long long.
Тип | Диапазон | Шестнадцатеричный диапазон | Размер |
unsigned char | 0 … 255 | 0x00 … 0xFF | 8 bit |
signed char или просто char | -128 … 127 | -0x80 … 0x7F | 8 bit |
unsigned short int или просто unsigned int или unsigned short | 0 … 65535 | 0x0000 … 0xFFFF | 16 bit |
signed short int или signed int или просто short или int | -32768 … 32767 | 0x8000 … 0x7FFF | 16 bit |
unsigned long int или просто unsigned long | 0 … 4294967295 | 0x00000000 … 0xFFFFFFFF | 32 bit |
signed long или просто long | -2147483648 … 2147483647 | 0x80000000 … 0x7FFFFFFF | 32 bit |
unsigned long long | 0 … 18446744073709551615 | 0x0000000000000000 … 0xFFFFFFFFFFFFFFFF | 64 bit |
signed long long или просто long long | -9223372036854775808 … 9223372036854775807 | 0x8000000000000000 … 0x7FFFFFFFFFFFFFFF | 64 bit |
Объявление переменных
Переменные объявляют в операторе описания. Оператор описания состоит из спецификации типа и списка имён переменных, разделённых запятой. В конце обязательно должна стоять точка с запятой.
[модификаторы] спецификатор_типа идентификатор [, идентификатор] ...
Модификаторы — ключевые слова signed, unsigned, short, long.
Спецификатор типа — ключевое слово char или int, определяющее тип объявляемой переменной.
Пример:
char x; int a, b, c; unsigned long long y;
При объявлении переменную можно проинициализировать, то есть присвоить ей начальное значение.
int x = 100;
В переменную x при объявлении сразу же будет записано число 100. Инициализируемые переменные лучше объявлять в отдельных строках.
- Виктор Черемных
- 10 августа, 2017
- No Comments
Группа в VK
Обнаружили опечатку?
Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!
Свежие статьи
Облако меток
Похожие статьи
Структуры в языке Си.
Структура в языке Си – это тип данных, создаваемый программистом, предназначенный для объединения данных различных типов в единое целое. Структуры делают программу более модульной, что
Функции в языке Си.
Функция — это самостоятельная единица программы, которая спроектирована для реализации конкретной подзадачи. Функция является подпрограммой, которая может содержаться в основной программе, а может быть создана
Указатели в языке Си.
Указатель — переменная, содержащая адрес объекта. Указатель не несет информации о содержимом объекта, а содержит сведения о том, где размещен объект. Указатели похожи на метки,
Массивы в языке Си.
Массив — это непрерывный участок памяти, содержащий последовательность объектов одинакового типа, обозначаемый одним именем. Массивы — очень полезные сущности, особенно в тех случаях, когда необходимо
Instagram Vk Youtube Telegram OdnoklassnikiПолезно знать
Рубрики
Авторы
Информатика и ИКТ — 01.
ПеременнаяДанные, обрабатываемые программой, могут быть:
- константами (их значение не меняется в процессе выполнения программы), например, 2; 1.236; pi
- переменными (значение которых может изменяться).
В языке Pascal константы создаются с помощью объявления констант. Оно выглядит следующим образом:
const имя = значение; например, const g = 9.81;
Переменная — это именованная область памяти для хранения данных, которые могут изменяться в процессе работы программы.
Каждая переменная характеризуется своим именем (идентификатором), типом и значением.
Имя переменной — это последовательность букв и цифр (иногда, еще некоторых символов), однозначно указывающая на переменную. В языке Pascal имя переменной может включать латинские буквы, цифры и знак подчеркивания, причем заглавные и строчные буквы не различаются (то есть WEIGHT, weight и WeiGhT считаются одним и тем же именем). Имя не может начинаться с цифры.
Тип переменной определяет диапазон значений, которые может принимать переменная, и допустимые над этими значениями действия. В языке Pascal есть следующие встроенные типы данных:
- вещественные (действительные) — принимающие действительные числовые значения; к ним относятся real, single, double и extended, отличающиеся точностью.
- целые — для представления целых чисел: integer и longint.
- логический — boolean (допускает только два значения: false — ложь и true — истина).
- символьный — char (значение — любой символ используемой кодовой таблицы).
- и некоторые другие.
Переменная в языке Pascal создается с помощью объявления переменных:
var имена : тип; например, var a, b: real; k: integer;
Чтобы переменная получила значение или изменила его, используется оператор (команда) присваивания:
имя_переменной := выражение; например, a := (b + c) / 2;
Заметьте: при выполнении операции присваивания старое значение переменной теряется безвозвратно. Рассмотрим, как меняются значения переменных при выполнении следующей последовательности команд:
Мы составили здесь так называемую таблицу исполнения программы (фрагмента программы).
Еще раз обратите внимание, что после изменения значения переменной используется только её новое значение. Старое перестает существовать.
Задания
- Запишите в тетради, что такое константа, переменная, тип переменной.
- Укажите, какие из следующих имен нельзя использовать в языке Pascal и почему:
AcDc, zyx32, Rex_T, Mc’Duck, E2e4, Wash&Go
sAlt, 7up, En4LB9, BigBrother, B-52, Abcdefg
- Запишите объявление следующих переменных:
k, m и n целого типа,
flag — логического.
a, b и z вещественного типа,
sym — символьного.
- Запишите оператор присваивания, чтобы…
а) …переменная z получила значение суммы переменных a, b и c;
б) …значение переменной m увеличилось в 5 раз.
а) …переменная k получила значение произведения переменных i, m и n;
б) …значение переменной w уменьшилось в 2 раза
- Составьте таблицу исполнения следующего фрагмента программы:
a := 2;
b := a * 5;
c := 10 * a + b;
a := c / 10;
c := 100 — c * a;
x := 100;
y := x / 5;
z := y * 2 — 30;
y := z * x;
z := y + z * 5;
переменных и типов данных
переменных и типов данных CSC108 Конспект лекций (Мэн Сунь)Переменные — это существительные языка программирования, т. е. это сущности (значения и данные), которые действуют или на которые действуют.
Объявление переменной всегда содержит два компонента:Например, «целое количество;» имеет целочисленный тип и имя «количество».
- тип переменной и
- его имя.
Все переменные в языке Java должны иметь тип данных. переменная тип данных определяет значения, которые может содержать переменная, и операции что можно на нем исполнить.
Например,
значений, которые он может содержать операций, которые могут быть выполнены с ним Целое число интегральных значений
(как положительный, так и отрицательный)стандартная арифметика (+, -, *, / и %) Целые числа могут содержать только целые значения (как положительные, так и отрицательные), и вы можете использовать стандартные арифметические операторы (+, -, *, / и %) над целыми числами для выполнения стандартных арифметических операций (сложение, вычитание, умножение и деление соответственно).
Оператор / и % : Оператор / является оператором деления, и % — оператор остатка. Например,
инт i =17/3; // Результат 5
int i = 17 % 3; // Результат равен 2, что является остатком после дивизион.
Типы данных
В языке Java есть две основные категории типов данных: примитивный и ссылка .Какие типы примитивов вам следует знать?
В следующей таблице перечислены по ключевым словам некоторые примитивные типы данных. на Java, которые вы должны знать, их размеры и форматы, а также краткое описание каждого.
Тип Размер/Формат Описание (целые числа) Целое число 32-битное дополнение до двух Целое число (настоящие числа) двойной 64-битный IEEE 754 Двойная точность с плавающей запятой (другие типы) символов 16-битный символ Unicode Один символ логический правда или ложь` Логическое значение (истина или ложь) Номера
Числа бывают разными, но самая важная классификация это: есть ли дробь? 98 (т. е. 3,86 умножить на 10 в степени 8). Поскольку верхние индексы традиционно распечатать не просто, степень 10 обозначается буквой E последовал по значению показателя:символов3.86E8
Чтобы отличить литералы double от литералов int, двойные литералы без десятичная точка или показатель степени (т. е. те, которые выглядят как литералы int) должны имеют конечный d, как, например,удвоить всего = 98d;
для не дробного числа используйте int — инт я = 50;
Бывают случаи, когда этот совет будет неверным, но на данном этапе карьера, вы не должны беспокоиться о тех временах.Логические значения
- Символы представлены типом char.
- Каждый char представляет один символ. Например:
символа с = ‘ч’;
- Строки состоят из символов: значение
«привет».charAt(0)
это «ч».- символы можно рассматривать как своего рода число. Вы можете написать
‘ч’+2
но вы не получаете «j»; вместо этого ‘h’+2 — это число, которым вы на самом деле не являетесь интересует. Чтобы получить j, напишите(символ) (‘ч’+2) // слепок
- Запомните два правила:
- ‘a’ … ‘z’, ‘A’ … ‘Z’, ‘0’ … ‘9’ расположены по порядку и являются смежными.
- ‘ ‘ (пробел) является символом и стоит «перед» всеми остальными печатными символами.
- Логические значения представляют собой «истинные значения» и могут иметь только значения правда и ложь .
- Чаще всего вы используете логические значения без явного объявления переменной логический тип. Например, выражение
номер < 0
на самом деле является логическим и имеет значение true если переменная «число» содержит значение меньше 0 и false иначе.Как мы увидим, мы редко объявляем логическую переменную для содержать результат; вместо этого мы каким-то образом использовали бы его внутри оператора.
- Одна вещь, которая вам понадобится, — это комбинации логических значений в такие выражения:
оператор пример выражения выражение оценивается как . .. Логическое И && (число > 0) && (число < 100) правда, если первое условие и второе условие оба удовлетворены;
ложь иначе.л логика ИЛИ || (число < 0) || (сумма < 100) правда, если выполняется либо первое условие, либо второе условие (или оба);
f или , иначе.равенство == объект1 == объект2 верно, если объект1 совпадает с объектом2;
ложь иначе.неравенство != объект1 != объект2 верно, если объект1 не совпадает с объектом2;
ложь иначе.
Purity Tip: На других языках формат и размер примитивные типы данных могут зависеть от платформы, на которой работает программа. Напротив, язык Java определяет размер и формат своего примитива. типы данных. Следовательно, вам не нужно беспокоиться о системных зависимостях.
Арифметика смешанного типа и литье
Иногда нам нужно работать с разными типами данных. Различные типы данных имеют разные форматы/размеры. Например, чар, int и double являются 16-битными, 32-битными и 64-битными соответственно. преобразование из одного типа данных в другой должно следовать определенным правилам.Правило продвижения
Правила продвижения определяют, как типы могут быть преобразованы в другие типы без потери данных. Например, int автоматически преобразуется на двойное без изменения его значения. Тем не менее, двойное преобразование to вводит дробную часть двойного значения.ЛитьеПравила продвижения применяются к выражениям, содержащим значения двух или больше типов данных; такие выражения также называются выражениями смешанного типа. Тип каждого значения в выражении смешанного типа повышается до «самого высокого» введите выражение (фактически создается временная версия каждого значения и используется для выражения — исходные значения остаются неизменными). В таблице ниже перечислены примитивные типы данных (boolean, char, int, double). и типы для каждого из них могут продвигаться автоматически.
Тип Разрешенные акции двойной Нет (нет примитивных типов больше чем double) Целое число двойной символов инт, двойной логический Нет (логические значения не считаются числами в Java) Если у вас естьдвойное д = 3,14;Компилятор будет жаловаться, что «это незаконное присвоение». Потому что двойное число имеет 64 бита, тогда как целое число (int) имеет только 32 бита. бит, т. е. тип double хранит больше информации, чем тип int.
интервал я = д; // это не верно!!Преобразование значений в более низкие типы может привести к неверным значениям. Поэтому в тех случаях, когда информация может быть потеряна из-за преобразования, Компилятор Java требует, чтобы программист использовал оператор приведения, чтобы заставить конверсия произойти.
Например, назначение двойного
двойной d = 3,1415926;к переменной типа intинт я;мы потеряли бы точность. Поэтому мы должны сделать преобразование явно сообщая Java, что мы хотим преобразовать double в int —я = (целое) д; // теперь мне 3Java сделает копию d, усечет дробную часть числа и присвоить результат i.
Вот еще несколько примеров приведения младших типов (меньше бит в формат/размер) до
Приоритет арифметических операций
В таблице ниже показаны приоритеты и операторов. Операторы показаны сверху вниз в порядке убывания приоритета.
Операторы Тип () круглая скобка ++ — + — (тип) унарный * / % мультипликатив + — добавка < <= > >= относительный == != равенство = += -= *= /= %= назначение
Примитивные и эталонные типы данных
В языке Java есть две основные категории типов данных: примитивный и ссылка .Примитивные типы данных
Типы справочных данныхПеременная примитивного типа содержит единственное значение соответствующего размер и формат для его типа: число, символ или логическое значение.
Например, значение int является целым числом, значение из char — это 16-битный символ Unicode и так далее.Массивы, классы и интерфейсы являются ссылочными типами. Значение переменной ссылочного типа, в отличие от значения примитива тип, является ссылкой на фактическое значение или набор значений, представленных переменная. Ссылка похожа на адрес вашего друга: адрес не ваш друг, но это способ связаться с вашим другом. Переменная ссылочного типа не является сам массив или объект, а способ добраться до него.
Это похоже на то, что зная адрес дома Джо, мы можем найти дом Джо дом.
Адрес — это ссылка на дом Джо, а не на сам объект.
Пример типа Переменная хранит. .. Примитивный тип данных int, double, char, boolean фактическое значение Тип справочных данных класс, массив, интерфейсы ссылка (например, адрес) Метод countChars использует одну переменную ссылочного типа, в, который является объектом Reader. При использовании в операторе или выражении имя в оценивается как ссылка на объект. Так что вы можете используйте имя объекта для доступа к его переменным-членам или вызова его методов (так же, как это делает countChars для вызова чтения).
Базовые типы данных в Python — Real Python
Смотреть сейчас К этому руководству есть соответствующий видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Основные типы данных в Python
Теперь вы знаете, как взаимодействовать с интерпретатором Python и выполнять код Python. Пришло время покопаться в языке Python. Сначала рассмотрим основные типы данных, встроенные в Python.
Вот что вы узнаете из этого руководства:
- Вы узнаете о нескольких основных числовых, строковых и логических типах , которые встроены в Python. К концу этого руководства вы будете знакомы с тем, как выглядят объекты этих типов и как их представлять.
- Вы также получите обзор встроенных в Python функций . Это предварительно написанные фрагменты кода, которые можно использовать для выполнения полезных действий. Вы уже видели встроенный
print()
, но есть и много других.
Примите участие в викторине: Проверьте свои знания с помощью нашей интерактивной викторины «Основные типы данных в Python». По завершении вы получите балл, чтобы вы могли отслеживать свой прогресс в обучении с течением времени:
Принять участие в викторине »
Целые числа
В Python 3 практически нет ограничений на длину целочисленного значения. Конечно, оно ограничено объемом памяти вашей системы, как и все остальное, но помимо этого целое число может быть сколь угодно длинным:
>>>
>>> print(123123123123123123123123123123123123123123123123 + 1) 123123123123123123123123123123123123123123123124
Python интерпретирует последовательность десятичных цифр без префикса как десятичное число:
>>>
>>> печать(10) 10
Следующие строки могут быть добавлены перед целым числом для обозначения основания, отличного от 10:
Префикс | Интерпретация | База |
---|---|---|
0b (ноль + строчная буква 'b' ) 0B (ноль + прописная буква 'B' ) | Двоичный | 2 |
0o (ноль + строчная буква 'o' ) 0O (ноль + прописная буква 'O' ) | Окталь | 8 |
0x (ноль + строчная буква 'x' ) 0X (ноль + заглавная буква 'X' ) | Шестнадцатеричный | 16 |
Например:
>>>
>>> печать (0o10) 8 >>> печать (0x10) 16 >>> печать (0b10) 2
Дополнительные сведения о целых числах с недесятичным основанием см. на следующих сайтах Википедии: Двоичный, Восьмеричный и Шестнадцатеричный.
Базовый тип целого числа Python, независимо от базы, используемой для его указания, называется 9.0523 интервал :
>>>
>>> тип(10) <класс 'целое число'> >>> тип (0o10) <класс 'целое число'> >>> тип (0x10) <класс 'целое число'>
Примечание: Самое время упомянуть, что если вы хотите отобразить значение во время сеанса REPL, вам не нужно использовать функцию print() . Просто введите значение в приглашении >>>
и нажмите Введите , чтобы отобразить его:
>>>
>>> 10 10 >>> 0x10 16 >>> 0b10 2
Эта функция используется во многих примерах из этой серии руководств.
Обратите внимание, что это не работает внутри файла сценария. Значение, появляющееся в отдельной строке в файле скрипта, ничего не делает.
Удалить рекламу
Числа с плавающей запятой
Тип float
в Python обозначает число с плавающей запятой. float
значения указываются с десятичной точкой. Необязательно, символ e
или E
, за которым может быть добавлено положительное или отрицательное целое число, чтобы указать экспоненциальное представление:
>>>
>>> 4.2 4.2 >>> тип(4.2) <класс 'плавающий'> >>> 4. 4.0 >>> .2 0,2 >>> .4e7 4000000,0 >>> тип (.4e7) <класс 'плавающий'> >>> 4.2e-4 0,00042
Глубокое погружение: представление с плавающей запятой
Ниже приведена более подробная информация о том, как Python представляет числа с плавающей запятой внутри. Вы можете легко использовать числа с плавающей запятой в Python, не понимая их до этого уровня, поэтому не беспокойтесь, если это кажется слишком сложным. Информация представлена здесь, если вам интересно.
Почти все платформы представляют значения Python
float
как 64-битные значения «двойной точности» в соответствии со стандартом IEEE 754. В этом случае максимальное значение, которое может иметь число с плавающей запятой, составляет примерно 1,8 ⨉ 10 308 . Python укажет число больше, чем это, строкойinf
:>>>
>>> 1.79e308 1,79е+308 >>> 1.8e308 инфСамое близкое к нулю число, отличное от нуля, приблизительно равно 5,0 ⨉ 10 -324 . Все, что ближе к нулю, эффективно равно нулю:
>>>
>>> 5e-324 5е-324 >>> 1Э-325 0,0Числа с плавающей запятой внутренне представлены в виде двоичных дробей (с основанием 2). Большинство десятичных дробей не могут быть точно представлены как двоичные дроби, поэтому в большинстве случаев внутреннее представление числа с плавающей запятой является приближенным к фактическому значению. На практике разница между фактическим значением и представленным значением очень мала и обычно не должна вызывать значительных проблем.
Дополнительная литература: Дополнительную информацию о представлении чисел с плавающей запятой в Python и возможных ловушках см. в разделе «Арифметика с плавающей запятой: проблемы и ограничения» в документации Python.
Комплексные числа
Комплексные числа задаются как <действительная часть>+<мнимая часть>j
. Например:
>>>
>>> 2+3j (2+3к) >>> тип(2+3j) <класс 'сложный'>
Струны
Строки — это последовательности символьных данных. Строковый тип в Python называется str
.
Строковые литералы могут быть заключены в одинарные или двойные кавычки. Все символы между открывающим разделителем и совпадающим закрывающим разделителем являются частью строки:
>>>
>>> print("Я строка") Я струна. >>> type("Я строка") <класс 'ул'> >>> print('Я тоже.') Я тоже. >>> type('Я тоже.') <класс 'ул'>
Строка в Python может содержать любое количество символов. Единственным ограничением являются ресурсы памяти вашей машины. Строка также может быть пустой:
>>>
>>> '' ''
Что делать, если вы хотите включить символ кавычки как часть самой строки? Вашим первым импульсом может быть попробовать что-то вроде этого:
.>>>
>>> print('Эта строка содержит символ одинарной кавычки (').') SyntaxError: неверный синтаксис
Как видите, это не очень хорошо работает. Строка в этом примере открывается одинарной кавычкой, поэтому Python предполагает, что следующая одинарная кавычка, заключенная в круглые скобки, которая должна была быть частью строки, является закрывающим разделителем. Тогда последняя одинарная кавычка является случайной и вызывает показанную синтаксическую ошибку.
Если вы хотите включить в строку символ кавычек любого типа, самый простой способ — разграничить строку символом другого типа. Если строка должна содержать одинарную кавычку, разделите ее двойными кавычками и наоборот:
>>>
>>> print("Эта строка содержит символ одинарной кавычки (')".") Эта строка содержит символ одинарной кавычки ('). >>> print('Эта строка содержит символ двойной кавычки ("").') Эта строка содержит символ двойной кавычки ("").
Escape-последовательности в строках
Иногда требуется, чтобы Python по-разному интерпретировал символ или последовательность символов в строке. Это может произойти одним из двух способов:
- Возможно, вы захотите подавить специальную интерпретацию определенных символов, которые обычно задаются в строке.
- Возможно, вы захотите применить специальную интерпретацию к символам в строке, которые обычно воспринимаются буквально.
Это можно сделать с помощью символа обратной косой черты ( \
). Символ обратной косой черты в строке указывает, что один или несколько символов, следующих за ним, должны обрабатываться особым образом. (Это называется escape-последовательностью, потому что обратная косая черта заставляет последующую последовательность символов «экранировать» ее обычное значение.)
Давайте посмотрим, как это работает.
Подавление значения специального символа
Вы уже видели проблемы, с которыми можно столкнуться при попытке включить в строку символы кавычек. Если строка заключена в одинарные кавычки, вы не можете напрямую указать символ одинарной кавычки как часть строки, потому что для этой строки одинарная кавычка имеет особое значение — она завершает строку:
>>>
>>> print('Эта строка содержит символ одинарной кавычки (').') SyntaxError: неверный синтаксис
Указание обратной косой черты перед символом кавычки в строке «экранирует» его и заставляет Python подавлять его обычное специальное значение. Затем он интерпретируется просто как буквальный символ одинарной кавычки:
.>>>
>>> print('Эта строка содержит символ одинарной кавычки (\').') Эта строка содержит символ одинарной кавычки (').
То же самое работает и в строке, заключенной в двойные кавычки:
>>>
>>> print("Эта строка содержит символ двойной кавычки (\").") Эта строка содержит символ двойной кавычки ("").
Ниже приведена таблица escape-последовательностей, которые заставляют Python подавлять обычную специальную интерпретацию символа в строке:
Выход Последовательность | Обычная интерпретация символов после обратной косой черты | Интерпретация «сбежавшего» |
---|---|---|
\' | Завершает строку открывающим разделителем одинарной кавычки | Буквенная одинарная кавычка ( ' ) символ |
| Завершает строку открывающим разделителем в виде двойной кавычки | Буквенная двойная кавычка ( " ) символ |
\<новая строка> | Завершает входную линию | Новая строка игнорируется |
\ | Вводит управляющую последовательность | Буквенная обратная косая черта ( \ ) символ |
Обычно символ новой строки завершает ввод строки. Так что нажимаю Ввод в середине строки заставит Python считать ее неполной:
>>>
>>> print('a SyntaxError: EOL при сканировании строкового литерала
Чтобы разбить строку более чем на одну строку, включите обратную косую черту перед каждой новой строкой, и новые строки будут игнорироваться:
>>>
>>> print('a\ ... б\ ... в') азбука
Чтобы включить буквальную обратную косую черту в строку, экранируйте ее обратной косой чертой:
>>>
>>> print('foo\\bar') фу\бар
Применение специального значения к символам
Далее предположим, что вам нужно создать строку, содержащую в себе символ табуляции. Некоторые текстовые редакторы позволяют вставлять символ табуляции прямо в код. Но многие программисты считают это плохой практикой по нескольким причинам:
- Компьютер может различать символ табуляции и последовательность пробелов, но вы не можете. Для человека, читающего код, символы табуляции и пробела визуально неразличимы.
- Некоторые текстовые редакторы настроены на автоматическое удаление символов табуляции путем расширения их до соответствующего количества пробелов.
- Некоторые среды Python REPL не вставляют в код вкладки.
В Python (и почти во всех других распространенных компьютерных языках) символ табуляции может быть указан с помощью управляющей последовательности \t
:
>>>
>>> print('foo\tbar') фу бар
Управляющая последовательность \t
приводит к тому, что символ t
теряет свое обычное значение, буквальное t
. Вместо этого комбинация интерпретируется как символ табуляции.
Вот список escape-последовательностей, которые заставляют Python применять особое значение вместо буквальной интерпретации:
Escape-последовательность | Интерпретация «сбежавшего» |
---|---|
\а | Колокольчик ASCII ( BEL ) символ |
\б | ASCII Backspace ( BS ) символ |
\ф | Символ перевода страницы ASCII ( FF ) |
\n | Символ перевода строки ASCII ( LF ) |
\N{<имя>} | Символ из базы данных Unicode с заданным <имя> |
\r | Символ возврата каретки ASCII ( CR ) |
\т | Горизонтальная вкладка ASCII ( TAB ) символ |
\uxxxx | Символ Unicode с 16-битным шестнадцатеричным значением xxxx |
\Uxxxxxxxxx | Символ Unicode с 32-битным шестнадцатеричным значением xxxxxxxx |
\v | Вертикальная вкладка ASCII ( VT ) символ |
\ооо | Символ с восьмеричным значением ooo |
\ххх | Символ с шестнадцатеричным значением hh |
Примеры:
>>>
>>> print("a\tb") а б >>> напечатать("а\141\x61") ааа >>> напечатать("а\нб") а б >>> print('\u2192 \N{стрелка вправо}') → →
Этот тип управляющей последовательности обычно используется для вставки символов, которые не могут быть легко сгенерированы с клавиатуры или которые трудно прочитать или распечатать.
Удалить рекламу
Необработанные строки
Необработанному строковому литералу предшествует r
или R
, что указывает на то, что escape-последовательности в связанной строке не переводятся. В строке остается символ обратной косой черты:
>>>
>>> print('foo\nbar') фу бар >>> print(r'foo\nbar') foo\nбар >>> print('foo\\bar') фу\бар >>> print(R'foo\\bar') фу\\бар
Строки в тройных кавычках
В Python есть еще один способ разграничения строк. Строки в тройных кавычках разделяются совпадающими группами из трех одинарных кавычек или трех двойных кавычек. Escape-последовательности по-прежнему работают в строках с тройными кавычками, но одинарные кавычки, двойные кавычки и символы новой строки могут быть включены без их экранирования. Это обеспечивает удобный способ создания строки как с одинарными, так и с двойными кавычками:
.>>>
>>> print('''Эта строка имеет одинарную (') и двойную (") кавычки.''') Эта строка имеет одинарную (') и двойную (") кавычки.
Поскольку новые строки могут быть включены без их экранирования, это также позволяет использовать многострочные строки:
>>>
>>> print("""Это строка, которая охватывает через несколько строк""") Это строка, которая охватывает через несколько строк
В предстоящем руководстве по структуре программы Python вы увидите, как можно использовать строки в тройных кавычках для добавления пояснительного комментария к коду Python.
Логический тип, логический контекст и «правдивость»
Python 3 предоставляет логический тип данных. Объекты типа Boolean могут иметь одно из двух значений: True
или False
:
>>>
>>> тип(правда) <класс 'буль'> >>> введите (ложь) <класс 'буль'>
Как вы увидите в следующих руководствах, выражения в Python часто оцениваются в логическом контексте, что означает, что они интерпретируются для представления истины или ложности. Значение, истинное в логическом контексте, иногда называют «истинным», а значение, ложное в логическом контексте, называют «ложным». (Вы также можете увидеть, что «falsy» пишется как «false».)
«Истинность» объекта логического типа очевидна: логические объекты, равные Истинно
, являются истинными (истинными), а равные Ложными
ложными (ложными). Но небулевы объекты также могут оцениваться в логическом контексте и определяться как истинные или ложные.
Вы узнаете больше об оценке объектов в логическом контексте, когда столкнетесь с логическими операторами в следующем учебнике по операторам и выражениям в Python.
Встроенные функции
Интерпретатор Python поддерживает множество встроенных функций: шестьдесят восемь, начиная с Python 3.6. Вы раскроете многие из них в следующих обсуждениях по мере их появления в контексте.
Сейчас следует краткий обзор, просто чтобы дать представление о том, что доступно. См. документацию Python по встроенным функциям для более подробной информации. Многие из следующих описаний относятся к темам и концепциям, которые будут обсуждаться в будущих руководствах.
Математика
Функция | Описание |
---|---|
абс() | Возвращает абсолютное значение числа |
разделмод() | Возвращает частное и остаток от целочисленного деления |
макс() | Возвращает наибольший из заданных аргументов или элементов в итерируемом |
мин() | Возвращает наименьший из заданных аргументов или элементов в итерируемом |
мощность() | Возводит число в степень |
раунд() | Округляет значение с плавающей запятой |
сумма() | Суммирует элементы итерируемого |
Удалить рекламу
Преобразование типа
Функция | Описание |
---|---|
ascii() | Возвращает строку, содержащую печатное представление объекта |
бин() | Преобразует целое число в двоичную строку |
логическое() | Преобразует аргумент в логическое значение |
чр() | Возвращает строковое представление символа, заданного целочисленным аргументом |
сложный() | Возвращает комплексное число, составленное из аргументов |
с плавающей запятой() | Возвращает объект с плавающей запятой, созданный из числа или строки |
шестнадцатеричный() | Преобразует целое число в шестнадцатеричную строку |
целое() | Возвращает целочисленный объект, составленный из числа или строки |
окт() | Преобразует целое число в восьмеричную строку |
порядок() | Возвращает целочисленное представление символа |
повтор() | Возвращает строку, содержащую печатное представление объекта |
стр() | Возвращает строковую версию объекта |
тип() | Возвращает тип объекта или создает объект нового типа |
Итераторы и итераторы
Функция | Описание |
---|---|
все() | Возвращает True , если все элементы итерируемого объекта истинны |
любой() | Возвращает True , если какие-либо элементы итерируемого объекта истинны |
перечислить() | Возвращает список кортежей, содержащих индексы и значения из итерируемого |
фильтр() | Фильтрует элементы из итерируемого |
итер() | Возвращает объект итератора |
лен() | Возвращает длину объекта |
карта() | Применяет функцию к каждому элементу итерируемого |
следующий() | Извлекает следующий элемент из итератора |
диапазон() | Генерирует диапазон целочисленных значений |
реверс() | Возвращает обратный итератор |
срез() | Возвращает объект среза |
отсортировано() | Возвращает отсортированный список из итерируемого |
zip() | Создает итератор, который объединяет элементы из итерируемых объектов |
Составной тип данных
Функция | Описание |
---|---|
bytearray() | Создает и возвращает объект класса bytearray |
байта() | Создает и возвращает объект размером байта (аналогичный bytearray , но неизменный) |
дикт() | Создает объект dict |
замороженный набор() | Создает замороженный набор объект |
список() | Создает список объект |
объект() | Создает новый безликий объект |
набор() | Создает набор объектов |
кортеж() | Создает кортеж объект |
Классы, атрибуты и наследование
Функция | Описание |
---|---|
метод класса() | Возвращает метод класса для функции |
делеттр() | Удаляет атрибут из объекта |
getattr() | Возвращает значение именованного атрибута объекта |
хасаттр() | Возвращает True , если объект имеет заданный атрибут |
экземпляр() | Определяет, является ли объект экземпляром данного класса |
подкласс() | Определяет, является ли класс подклассом данного класса |
свойство() | Возвращает значение свойства класса |
setattr() | Устанавливает значение именованного атрибута объекта |
супер() | Возвращает прокси-объект, который делегирует вызовы методов родительскому или одноуровневому классу |
Ввод/вывод
Функция | Описание |
---|---|
формат() | Преобразует значение в форматированное представление |
ввод() | Считывает ввод с консоли |
открыть() | Открывает файл и возвращает файловый объект |
печать() | Печатает в текстовый поток или консоль |
Переменные, ссылки и область действия
Функция | Описание |
---|---|
каталог() | Возвращает список имен в текущей локальной области или список атрибутов объекта |
глобальные() | Возвращает словарь, представляющий текущую глобальную таблицу символов |
идентификатор() | Возвращает идентификатор объекта |
местные () | Обновляет и возвращает словарь, представляющий текущую локальную таблицу символов |
варс() | Возвращает атрибут __dict__ для модуля, класса или объекта |
Разное
Функция | Описание |
---|---|
вызываемый() | Возвращает True , если объект кажется вызываемым |
компиляция() | Компилирует исходный код в код или объект AST |
оценка() | Вычисляет выражение Python |
exec() | Реализует динамическое выполнение кода Python |
хеш() | Возвращает хеш-значение объекта |
помощь() | Вызывает встроенную справочную систему |
просмотр памяти() | Возвращает объект представления памяти |
статический метод() | Возвращает статический метод для функции |
__импорт__() | Вызывается импортом выписка |
Заключение
В этом руководстве вы узнали о встроенных функциях и типов данных , предоставляемых Python .