Переменные и функции.

Где взять ответы?

Заходим на документация на русском (https://docs.python.org/). Справочная информация разбита на две части: Справочник по библиотеке, Справочник по языку. Справочник по языку (Language Reference) описывает синтаксис и семантику языка. Справочник по библиотеке (Standard Library Reference) описывает стандартную библиотеку, распространяемую с Python.

Двоичная система счисления

Юникод. utf-8

Юникод - стандарт кодирования символов. Состоит из двух частей: универсального набора символов и семейства кодировок (Unicod transforation format UTF). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа (code point). Семейство кодировок определяет способы преобразования кодов символов для передачи в потоке или в файле.

Python читает текст программы как кодовые точки Юникод; кодировка исходного файла может быть задана объявлением кодировки и по умолчанию используется UTF-8. Пример объявления кодировки:


# vim:fileencoding=utf-8

Встроенные функции

Например, нас интересует функция печати print, заходим на документация, выбираем Справочник по библиотеке, затем Встроенные функции, в небольшом списке встроенных функции находим print.


print(*objects, sep=' ', end='\n', file=None, flush=False)

Первый параметр с звёздочкой означает, что может быть несколько параметров, разделённых запятыми, это позиционные параметры. Параметры set, end file, flush - именованные. sep - разделитель между параметрами в строке (значение по умолчанию пробел), end - ставится в конце строки (значение по умолчанию символ конца строки "\n"). Например:


print("Привет", 13, "Мир", sep=": ", end = "!!!")
print("Мыла Раму")

Следующий пример - функция ввода текста input. Смотрим справку.


input(promt)

Аргумент promt функция выводит на стандартное устройство вывода, затем считывает ввод, преобразует в строку и возвращает. Пример:


name = input('Как ваше имя?')
print('Привет,', name, "!")

Встроенные типы данных

Заходим на документация, выбираем Справочник по библиотеке, затем Встроенные типы. Стандартные типы, встроенные в интерпретатор.

Логический тип

В этом типе только два значения: True, False. Логические операции: or, and, not.

Числовые типы - int, float, complex.

Операции над числовыми типами:

операция результат
x + y сумма x и y
x - y разность x и y
x * y произведение
x / y деление x на y
x // y пол деления
x % y остаток делания x на y
abs(x) абсолютное значение x
int(x) x конвертируется в int
float(x) x конвертируется в float
x**y, pow(x, y) x в степени y
Побитовые операции над типом int.
операция результат
x | y побитовое или от x и y
x ^ y побитовое исключающее или от x и y
x & y побитовое и от x и y
x << n x сдвигается влево на n бит
x >> n x сдвигается вправо на n бит
~x инвертирование битов x
math - модуль предоставляет доступ к многим функциям. Например, вычислим наибольший общий делитель.


import math
x = int(input("x = "))
y = int(input("y = "))
print("gcd(", x ,", ", y, ") = ", math.gcd(x, y))

Форматированная строка

Смотрим Справка по языку-> Лексический анализ-> Форматированные строковые литералы. Форматированная строка начинается с f, может содержать поля замены, они заключены в {}.


z = 1.0 / 3.0;
print(f"1/3 = {z}")
print(f"1/3 = {z:.2f}")

str тип

Смотрим справку Справочник по библиотеке -> Встроенные типы-> Тип текстовой последовательности -str. Текст представляется объектом str. Есть несколько строковых литер:

Одинарные кавычки: 'пример'
Двойные кавычки: "пример"
Тройные кавычки: '''пример''', """пример"""

Тройные кавычки могут на несколько строк распространяться.

str методы

Приведём некоторые примеры методов. str.capitalize
Возвращает копию строки с заглавной первой буквой.

str.lower
Возвращает копию строки, в которой все символы преобразованы в нижний регистр.

str.split(sep=None, maxsplit=-1)
Возвращает список слов в строке, используя sep в качестве строки разделителя. .


s = '1,2,3'.split(',')
print(s)

str.format(*args, **kwrags). Строка может содержать литерал текст или поля замены ограниченные скобками {}. Поле замены может содержать индекс позиционного аргумента, или имя именованного аргумента. Можно задать опции форматирования. Смотри на мини язык форматирования. Рассмотрим пример.


import math
print('{0:a>10.2f}{1:,>10.3f}'.format(math.e, math.pi))
print('{n:b}'.format(n = 5))

Строки можно складывать и умножать на целое число.

a = 'Hello, '
b = 'Wordl! '
c = a + b
print(c)
c = c * 3
print(c)

Литералы строки. Приведём примеры управляющих последовательностей в строковых литералах.

Escape sequence Значение
\ Игнорируется символ новой строки
\' Одинарная ковычка
\n перевод строки
\N{name} Символ с именем name в Юникоде.
\Uxxxxxxxx Символ с 32-битным шестнадцатиричным значением xxxxxxxx
Например, символ 🙂 имеет имя Slightly Smiling Face, номер в Юникод 1f642 см. symbl.cc/ru/1f642. Мы можем его задать так:

print("🙂, \N{Slightly Smiling Face}, \U0001f642")

В X11 (Debian и другие Unix) нажмите в редакторе кода Ctrl+Shift+U, наберите 1f642, затем пробел или Enter.

Задание функции

Пример задания функции.


def main():
	x = int(input("x?"))
	print("x в квадрате будет", square(x))

def square(x):
	return x * x

main()