Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
base:syntax [2022/07/24 10:38]
root
base:syntax [2022/08/10 23:36]
root удалено
Строка 1: Строка 1:
 <div slide> <div slide>
-====== Основы синтаксиса ====== 
  
-Типы данных в Python, которые мы будем рассматривать в начале курса, можно организовать так: +====== Функций, операторы, модули ====== 
- +
-  * Типы +
-    * Базовые неизменяемые +
-      * Числовые +
-        * Целые (''int''+
-        * Действительные (''float''+
-        * Комплексные (''complex''+
-        * Логические (''bool''+
-      * Перечислимые +
-        * Строки (''str''+
-        * Байтовые строки (''bytes''+
-      * ''NoneType'' +
-    * Базовые изменяемые +
-      * Перечислимые +
-        * Списки (''list''+
-        * Словари (''dict''+
-        * Наборы (''set''+
- +
-</div> +
-<div slide> +
-===== Некоторые базовые типы данных ===== +
- +
-^ Тип ^ Описание ^ Примечание ^ Пример ^ +
-| ''int''  | Целое число | Длина не ограничена (при выходе за пределы машинного long int включается "длинная" арифметика) | ''42''+
-| ''float''  | Число с плавающей запятой | Машинный ''double'' точнее в ''sys.float_info'' | ''3.14159''+
-| ''str''  | Строка | Типа "символ" нет, символ — это строка из одного символа | <code>"привет"</code>+
-| ''bytes''  | Байтовая строка | Типа "байт" нет, байт — это байтовая строка из одного символа | <code>b"hell\x00"</code>+
-| ''bool''  | Логический тип | Значения ''True'' и ''False'' | ''True''+
-| ''NoneType''  | Пустой объект | Единственное значение ''None''| ''None''+
- +
-Все эти типы являются неизменяемыми (immutable). С точки зрения памяти новая переменная создается при каждом присваивании. +
- +
-</div> +
-<div slide> +
- +
-===== Присвоение значений и динамическая типизация ===== +
- +
-Python — язык со строгой динамической типизацией. +
- +
-Переменные объявляются в момент присвоения значенияа тип переменной определяется по правой части выражения. +
- +
-<sxh python> +
-# Комментарий:  +
-a = 5 # int +
-b = 5.5 # float +
-c = "привет" # str +
-d = b"\x00\x7f\x2e" #bytes +
-e = True # bool +
-f = None # NoneType +
-</sxh> +
- +
-При повторном присваивании типы не проверяютсяа создается новая переменная с тем-же именем. +
- +
-<sxh python> +
-d = 42 # Успешно: d теперь имеет тип int и значение 42 +
-</sxh> +
- +
-При выполнении прочих операций типы проверяются +
- +
-<sxh python> +
-d = a + c # Ошибка: нельзя выполнить + для типов int и str +
-</sxh> +
- +
-Можно смешивать переменные разных **числовых** типов в одном выражении +
-<sxh python> +
-d = a + b # Успешно: d теперь имеет тип float и значение 27.5 +
-</sxh> +
- +
-</div> +
-<div slide> +
- +
-===== Строки ====== +
- +
-<sxh python> +
-s = "привет '!'+
-s = 'привет "!"+
-s = '''привет +
-я длинная строка''' +
-s = 'Строка \nс экранированием\n' +
-s = r'Строка без \n экранирования' +
-s = b'Byte String - Only Ascii and \x24' +
-</sxh> +
- +
-===== Распространенные непечатные символы ====== +
- +
-^ Символ ^ Значение ^ +
-| ''\n'' | Новая строка | +
-| ''\t'' | Табуляция | +
-| ''\r'' | Возврат каретки | +
-| ''\u????'' | Символ Unicode: ''????'' — код символа (для строк) | +
-| ''\x??'' | Байт ''??'' —  код байта (для байтовых строк) | +
-| ''\\'' | Символ ''\''+
- +
-Проблемы с экранированием возникают при работе с регулярными выражениями и именами папок в Windows: +
- +
-<sxh python> +
-pth 'C:\new_files\ret_id' # Ошибка \n и \r недопустимы в имени папки +
-pth = 'C:\\new_files\\ret_id' # Все хорошо +
-pth = r'C:\new_files\ret_id' # Все хорошо +
-pth = 'C:\files\' # Ошибка заэкранированный символ \' в конце строки +
-pth = 'C:\files'  # Все хорошо +
-</sxh> +
- +
-</div> +
-<div slide> +
- +
-===== Функций, операторы, модули ===== +
  
 ==== Функции ==== ==== Функции ====
Строка 178: Строка 70:
 <div slide> <div slide>
  
-==== Некоторые важные встроенные функции ====+==== Некоторые встроенные функции ====
  
 ^ Функция ^ Назначение ^ ^ Функция ^ Назначение ^
-^ ''len(x)'' | Длина ''x'', например строки, возвращает ''int''+^ ''len(x)'' | Длина перечисляемого ''x'', например строки, возвращает ''int''
-^ ''abs(x)'' | Абсолютное значение ''x''+^ ''abs(x)'' | Абсолютное значение числа ''x''
-^ ''type(x)'' | Тип данных ''x'', возвращает тип |+^ ''type(x)'' | Тип данных ''x'', возвращает специальный объект — тип |
 ^ ''print(x)'' | Печать на экран ''x'', возвращает ''None'' | ^ ''print(x)'' | Печать на экран ''x'', возвращает ''None'' |
-^ ''input(x)'' | Ввод пользователя в командной строке, ''x'' - строка приглашения, возвращает ''str''  |+^ ''id(x)'' | Возвращает уникальный идентификатор объекта  |
  
 </div> </div>
Строка 226: Строка 118:
 ^ <code>//</code> | <code>bool, int, float</code> | Целочисленное деление |<code>2//5</code> | ^ <code>//</code> | <code>bool, int, float</code> | Целочисленное деление |<code>2//5</code> |
 ^ <code>%</code> | <code>bool, int, float</code> | Остаток от деления  | <code>2%5</code> | ^ <code>%</code> | <code>bool, int, float</code> | Остаток от деления  | <code>2%5</code> |
-^ <code>%</code> | <code>str, bytes</code> | Операция подстановки для ''str'' | <code>"hello %s" % "world"</code> |+^ <code>%</code> | <code>str, bytes</code> | Операция **подстановки** для ''str'' | <code>"hello %s" % "world"</code> |
  
 Python позволяет смешивать переменные разных **числовых** типов в одном выражении, при этом тип результата определяется наиболее содержательным типом. Python позволяет смешивать переменные разных **числовых** типов в одном выражении, при этом тип результата определяется наиболее содержательным типом.
Строка 235: Строка 127:
 === Некоторые логические операторы === === Некоторые логические операторы ===
  
-Логические операторы возвращают значения типа ''bool'' и используются в основном в качестве различных условий.+Логические операторы возвращают значения типа ''bool'' и используютсяв основномв качестве различных условий.
  
 ^ Оператор ^ Действие ^ Пример ^ ^ Оператор ^ Действие ^ Пример ^
-^ <code>not</code> | Логическое НЕ для ''bool''| <code>not x</code>+^ <code>not</code> | Логическое НЕ для ''bool'', возвращает ''bool''| <code>not x</code>
-^ <code>and</code> | Логическое И для ''bool'' | <code>x and y</code>+^ <code>and</code> | Логическое И для ''bool'', возвращает ''bool'' | <code>x and y</code>
-^ <code>or</code> | Логическое ИЛИ для ''bool'' | <code>x or y</code>+^ <code>or</code> | Логическое ИЛИ для ''bool'', возвращает ''bool'' | <code>x or y</code>
-^ <code>!=, >, <, >=, <=</code>  | Неравенство, возвращает ''bool'' | <code>x >= y</code> |+^ <code>!=, >, <, >=, <=</code>  | Неравенство, возвращает ''bool'', возвращает ''bool'' | <code>x >= y</code> |
 ^ <code>==</code> | Равенство, возвращает ''bool''  |  <code>x == y</code> | ^ <code>==</code> | Равенство, возвращает ''bool''  |  <code>x == y</code> |
 ^ <code>is</code> | Тождество, возвращает ''bool''  |  <code>x is y</code> | ^ <code>is</code> | Тождество, возвращает ''bool''  |  <code>x is y</code> |
 +^ <code>~</code> | Логическое НЕ для ''int'', возвращает ''int'' | <code>~ x</code> |
 +^ <code>&</code> | Логическое И для ''int'', возвращает ''int'' | <code>x & y</code> |
 +^ <code>|</code> | Логическое ИЛИ для ''int'', возвращает ''int'' | <code>x | y</code> |
  
 </div> </div>
Строка 309: Строка 204:
  
 ^  ^  Исходный тип — переменная ''x''  ^^^^^ ^  ^  Исходный тип — переменная ''x''  ^^^^^
-^ Целевой тип ^ ''int'' ^ ''float'' ^ ''str'' ^ ''bytes'' ^ ''bool''+^ Целевой тип ^ ''bool''  ^ ''int'' ^ ''float'' ^ ''str'' ^ ''bytes''
-^ ''int'' | ''='' | ''round(x)''''math.ceil(x)''''math.trunc(x)'' | ''int(x)'' | ''struct.unpack(fmt,x)'' | ''int(x)'' +^ ''bool'' | ''='' ''bool(x)'' ''bool(x)'' ''bool(x)'' | ''bool(x)'' | 
-''float'' | ''float(x)'' ''='' ''float(x)'' | ''struct.unpack(fmt,x)'' | ''float(x)'' |  +''int'' | ''int(x)'' ''='' | ''round(x)''''math.ceil(x)''''math.trunc(x)'' | ''int(x)'' | ''struct.unpack(fmt,x)''
-^ ''str'' | ''str(x)'' | ''str(x)'' | ''='' | ''x.decode(encoding)'' | ''str(x)'' |  +^ ''float'' | ''float(x)'' | ''float(x)'' | ''='' | ''float(x)'' | ''struct.unpack(fmt,x)''
-^ ''bytes'' | ''struct.pack(fmt,x)'' | ''struct.pack(fmt,x)'' | ''x.encode(encoding)'' | ''='' | ''struct.pack(fmt, x)'' |  +^ ''str'' | ''str(x)'' | ''str(x)'' | ''str(x)'' | ''='' | ''x.decode(encoding)'' |  
-^ ''bool'' | ''bool(x)'' | ''bool(x)'' | ''bool(x)'' | ''bool(x)'' | ''=''+^ ''bytes'' | ''struct.pack(fmt, x)'' | ''struct.pack(fmt,x)'' | ''struct.pack(fmt,x)'' | ''x.encode(encoding)'' | ''='' | 
  
 Используются модули ''math'' и ''struct''. Используются модули ''math'' и ''struct''.