Что означает символ «>>»?
Полученный вывод говорит, что >> это сдвиг в Питоне и подробности доступны как help(‘SHIFTING’) :
A right shift by n bits is defined as division by «pow(2, n)».
То есть, в Питоне, правый сдвиг определён как деление на соответствующую степень двойки. Дополнительно, в CPython n ограничено sys.maxsize .
>>> 22 >> 2 5 >>> 22 // 2**2 5 >>> -22 >> 2 -6 >>> -22 // 2**2 -6
Для неотрицательных чисел достаточно в двоичном представлении отбросить n бит, чтобы сдвинуть вправо x >> n :
>>> bin(0b10110 >> 2) '0b101'
Об отрицательных числах можно думать как будто они представлены в дополнительном коде (бесконечное число единиц слева), но так как бесконечное количество единиц нельзя показать, то Питон показывает -bin(abs(x)) и трюк с отбрасыванием битов при таком отображении уже не работает так как abs(x) для x < 0 равно -x = ~x + 1 :
>>> bin(-0b10110 >> 2) # . 11101010 >> 2 '-0b110' # . 11111010 = -(0b101+1) = -0b110
Операторы в Python
Операторы — специальные символы, которые выполняют арифметические и логические вычисления. Значения, на которые действует оператор, называются операндами.
>>> 2+3 5
Здесь оператор + выполняет сложение, 2 и 3 — операнды, а 5 — вывод операции.
Арифметические операторы
Арифметические операторы используются для выполнения математических операций — сложения, вычитания, умножения и т. д.
Оператор
Действие
Пример
Сложение двух операндов или унарный плюс
Вычитание правого оператора из левого или унарный минус
Умножение двух операндов
Деление левого операнда на правый (результат всегда типа float)
Остаток от деления левого операнда на правый
x % y (остаток от x / y)
Деление с округлением — деление, результат которого корректируется в меньшую сторону
Показатель степени — левый операнд возводится в значение правого операнда
x = 15 y = 4 # Вывод: x + y = 19 print('x + y =', x+y) # Вывод: x - y = 11 print('x - y =', x-y) # Вывод: x * y = 60 print('x * y =', x*y) # Вывод: x / y = 3.75 print('x / y =', x/y) # Вывод: x // y = 3 print('x // y =', x//y) # Вывод: x ** y = 50625 print('x ** y =', x**y)
Вывод:
x + y = 19
x - y = 11
x * y = 60
x / y = 3.75
x // y = 3
x ** y = 50625
Операторы сравнения
Операторы сравнения используются для сравнения значений, они возвращают True или False в зависимости от условия.
Оператор
Действие
Пример
Больше чем: True, если левый операнд больше правого
Меньше чем: True, если левый операнд меньше правого
Равно: True, если операнды равны между собой
Не равно: True, если операнды не равны между собой
Больше или равно: True, если левый операнд больше или равен правому
Меньше или равно: True, если левый операнд меньше или равен правому
x = 10 y = 12 # Вывод: x > y — False print('x > y —', x>y) # Вывод: x < y — True print('x < y —', x= y — False print('x >= y —', x>=y) # Вывод: x
Вывод:
x > y — False
x < y — True
x == y — False
x != y — True
x >= y — False
xЛогические операторы
Операторы and , or , not — логические.
Оператор
Действие
Пример
True, если значения обоих операндов True
True, если значение одного из операндов True
True, если значение операнда False (дополняет значение операнда)
x = True y = False print('x and y —', x and y) print('x or y —', x or y) print('not x —', not x)Вывод:
x and y — False
x or y — True
not x — FalseПобитовые операторы
Побитовые операторы работают с операндами как со строками из 0 и 1. Они действуют бит за битом, как и говорит название.
Например, 2 в двоичной системе счисления — 10 , а 7 — 111 .
В таблице ниже: x = 10 ( 00001010 в двоичной системе счисления) и y = 4 ( 00000100 в двоичной системе счисления)
Оператор
Действие
Пример
x & y = 0 ( 00000000 )
x | y = 14 ( 00001110 )
~x = -11 ( 11110101 )
x ^ y = 14 ( 00001110 )
Побитовый сдвиг вправо
x >> 2 = 2 ( 00000010 )
Побитовый сдвиг влево
Операторы присваивания
Операторы присваивания используются для назначения переменной некоторого значения.
a = 5 — простой оператор присваивания, который приравнивает значение 5 справа переменной а слева.
В Python множество составных операторов, подобных a += 5 — он прибавляет 5 к переменной a и позже присваивает ей получившееся значение. Этот оператор равносилен записи a = a + 5 .
Оператор
Пример
Эквивалентно
Особые операторы
В Python есть особые типы операторов: операторы тождественности и принадлежности.
Операторы тождественности
is и is not — операторы тождественности в Python. Они проверяют, находятся ли два значения (или две переменные) по одному адресу в памяти. То, что две переменные равны еще не значит, что они идентичны.
Оператор
Действие
Пример
True, если операнды идентичны (указывают на один объект)
True, если операнды не идентичны (не указывают на один объект)
x1 = 5 y1 = 5 x2 = 'Привет' y2 = 'Привет' x3 = [1,2,3] y3 = [1,2,3] # Вывод: False print(x1 is not y1) # Вывод: True print(x2 is y2) # Вывод: False print(x3 is y3)Вывод:
False
True
FalseМы видим, что x1 и y1 — целочисленные переменные с одинаковыми значениями, поэтому они равны и идентичны. То же с x2 и y2 (строки).
Но x3 и y3 — списки. Они равны, но не идентичны, поскольку интерпретатор кладет их в разные места в памяти, хоть эти списки и равны.
Операторы принадлежности
in и not in — операторы принадлежности в Python. Они проверяют, есть ли значение или переменная в последовательности (строке, списке, кортеже, множестве или словаре). Иначе говоря, проверяют вхождение элемента в коллекцию. В словаре можно проверить только присутствие ключа, не значения.
Оператор
Действие
Пример
True, если значение или переменная есть в последовательности
True, если значения или переменной нет в последовательности
x = 'Привет, мир' y = # Вывод: True print('П' in x) # Вывод: True print('привет' not in x) # Вывод: True print(1 in y) # Вывод: False print('б' in y)Вывод:
True
True
True
False'П' есть в x , а вот строки 'привет' в x нет (помните: Python чувствителен к регистру). Таким же образом образом 1 — ключ, а 'a' — значение в словаре y , поэтому вывод 'б' in y — False .
Операторы сравнения Python
Что такое оператор и операнды? Это можно объяснить простым примером: 10 > 5 . В этом выражении 10 и 5 — левый и правый операнды. Знак > — оператор.
Пусть переменная a = 10 , а переменная b = 5
| Оператор | Описание | Пример | Результат |
|---|---|---|---|
| == | Проверяет, равны ли значение операндов. Если равны, то условие является истиной | a == b | False |
| != | Проверяет, равны ли значение операндов. Если НЕ равны, то условие является истиной | a != b | True |
| > | Проверяет значение левого операнда. Если оно больше, чем значение правого, то условие является истиной | a > b | True |
| Проверяет значение левого операнда. Если оно меньше, чем значение правого, то условие является истиной | a < b | False | |
| >= | Проверяет значение левого операнда. Если оно больше, либо равно значению правого, то условие является истиной | a >= b | True |
| Проверяет значение левого операнда. Если оно меньше, либо равно значению правого, то условие является истиной | a | False |
Хотите выучить Python на практике?
С нуля и до создания компьютерной игры
Собственный онлайн-тренажер с проверкой практических задач
Операторы, типы данных и переменные¶
Мы использовали язык Python для создания интересных программ, рисующих картинки за счет всего нескольких строк кода, но наши программы были ограничены в возможностях. Мы просто запускали их и наблюдали, как они сами создают картинки.
А что если бы мы захотели взаимодействовать с нашими программами на Python? На этом занятии мы узнаем, как заставить Python запросить имя пользователя, а также попробуем применение операторов при рисовании картин, на один большой шаг приблизившись к созданию динамических анимаций!
Переменные: место, где мы храним данные¶
В предыдущем уроке, мы использовали переменную name для записи в неё имени «Вася». Теперь давайте посмотрим, что такое в действительности переменные и как они работают.
Переменная¶
Переменная — это нечто такое, что нужно запомнить вашему ком-ьютеру на время работы программы.
Когда Python «запоминает» что-либо, он сохраняет эту информацию в памяти компьютера. Python может запоминать значения нескольких типов данных, например числовые значения (такие как 7, 42 или даже дробные числа, вроде 3.1415) и строки (буквы, символы, слова, предложения — все, что вы можете набрать на клавиатуре). А также и пользовательские типы данных, но это уже забегая далеко вперёд.
В Python, как и в большинстве других современных языков программирования, мы присваиваем значение переменной с помощью знака равенства ( = ).
Например, в примере с именем «Вася» мы сделали это вот так:
name = "Вася"
Если мы присваиваем строку, то нужно не забыть взять её в кавычки ( "" )!
Также мы можем присваивать переменным и другие типы данных. Например, числа:
x = 42 y = 15 PI = 3.1415
Если это число, то кавычки ( "" ) не нужны. Если мы возмём в кавычки, например "3.1415" , то это уже будет не число, а строка!
Как Python различает типы данных?
Python - язык с динамичекой типизацией. Это означает, что он может сам, то есть без указания программиста, динамически адаптировать те или иные переменные к нужному типу данных. То есть, например, если мы сначала запишем в переменную число var = 42 , то ничто нам не помешает потом записать в неё строку var = "Hello" - Python всё сделает!
Имена переменных¶
Каждый раз при присвоении переменной какого-либо значения сначала (слева от знака равенства) необходимо указать имя этой переменной (чтобы мы могли к ней потом обращаться), а затем (справа от знака равенства) — присваиваемое значение.
Как правило, переменные называются простыми именами, описывающими содержащееся в переменной значение (как в случае с переменной name , хранящей имя).
Такой подход упрощает понимание предназначения переменных и их последующее использование. Однако следует запомнить несколько правил, которым должны соответствовать имена создаваемых переменных.
- Используевые буквы должны быть латинскими.
- Остальные символы в имени переменной должны быть буквами, цифрами или нижним подчеркиванием (``_``). Внутри имени переменной пробелы не допускаются (например, имя my name приведет к появлению сообщения о синтаксической ошибке, так как Python подумает, что вы перечислили две пе ременные и разделили их пробелом).
- Имена переменных в Python чувствительны к регистру (БОЛЬШИЕ или маленькие буквы). Это значит, что если в имени переменной мы использовали только буквы нижнего регистра (например, abc ), то воспользоваться значением, сохраненном в переменной, мы можем, только указав имя переменной в точно таком же виде, в том же регистре. Таким образом, переменная My_Name отличается от my_name , а MY_NAME от них обеих.
Использование переменных¶
Использовать переменные очень легко! Как присвоить (записать) значение переменной ты уже знаешь. А чтобы использовать её, то есть обратиться к тому значению, что в нём находится - нужно просто использовать её имя.
Например, как в программе приветствия Васи.
name = "Вася" print("Привет", name)
print("Привет", name) - здесь мы ввели строку "Привет" вместе с тем, что хранилось в name .
Чтобы лучше понять этот механизм - запусти интерпретатор Python и попробуй создать свои переменные и взять из них значения.
>>> num = 42 >>> num >>> 42 >>> hi = "hello" >>> hi >>> hello
Пользовательский ввод¶
Чтобы улучшить нашу программу, можно сделать так, чтобы в переменную сохранялось то значение, которое введёт пользователь.
Выглядеть это будет так:
name = input("Введите своё имя: ") print("Привет", name)
name = input("Введите своё имя: ") — создаём переменную name и записываем в неё результат выполнения команды (функции) input , а в скобочках к команде () передаём то, какую строку вывести в консоль при запросе.
print("Привет", name) — вывести в консоль «Привет» вместе с name , вставив между ними пробел.
- Переменные нужны, чтобы запоминать фрагменты данных, используемых в программе.
- Использовать в имени переменной мы можем только латинские буквы, цифры, знак подчёркивания ( _ ) и имя должно начинаться с буквы.
- Python может динамически адаптировать те или иные переменные для нужного типа данных.
Числа и математика¶
Компьютеры очень хороши в математических операциях (сложение, вычитание и так далее). Ваш компьютер способен совершать более одного миллиарда (1’000’000’000, или тысячи миллионов) математических операций в секунду!
Язык Python дает нам доступ к этому мощному ресурсу математических вычислений, предоставляя для этого числа двух основных видов:
- Целые числа. Например, 1, 2, 42, 1234 и тд.
- Вещественные (дробные) числа. Например, 1.5, 3.1415, 2.67842356 и тд. Их ещё называют числа с плавающей точкой
Но чтобы от чисел было больше пользы, мы должны уметь ими совершать с ними операции. И здесь Python предоставляет нам множество возможностей!
Операторы¶
Оператор — это символ, или несколько символов — в отличие от имени переменной или функции (команды). Например, «+» умеет брать два числа слева и справа от себя(они называются операнды), складывать и подставлять вместо себя и операндов то, что получается.
Математические символы, такие как + (плюс) и − (минус), являются операторами, так как они оперируют (или выполняют вычисления) числами в уравнении. Когда мы говорим вслух «4 + 2», чтобы ввести это на калькуляторе, мы хотим сложить числа 4 и 2, чтобы получить их сумму, 6.
В языке Python используется большинство операторов, которыми вы пользуетесь на уроках математики, в том числе +, -, скобки () и другие, которые показаны в таблице ниже.
Задания¶
Ну, самое время попробовать это всё в деле! Далее будут задания, с помощью которых ты сможешь опробовать и закрепить полученные знания.
Processing¶
- Напиши код, который объяснит Processing, как нарисовать дом с крышей, окном и дверью. Можешь добавить больше деталей: печную трубу, траву, облака — выбор не ограничен. Не забудь раскрасить! Чтобы было легче позиционировать объекты, используй переменные и операторы.
- По желанию, можешь попробовать изобразить более сложные или перейти к другим заданиям.
Стандартный Python¶
Чепуха¶
Вместо того чтобы спрашивать имя пользователя, мы попросим ввести прилагательное, существительное и глагол прошедшего времени мужского рода единственного числа и сохраним введенные данные в трех разных переменных точно так же, как мы поступали с переменной name в исходной программе. Потом мы выведем на печать какое-нибудь предложение, например «Этот прилагательное существительное глагол на ленивую рыжую собаку».
Результат работы программы должен выглядеть примерно следующим образом:
>>> Введите прилагательное: умный Введите существительное: учитель Введите глагол прошедшего времени: чихнул Этот умный учительно чихнул на ленивую рыжую собаку. >>>
Попробуй придумать ещё что-нибудь забавное 😉
И не забудь сохранить свою программу!
Новая чепуха!¶
Давайте сделаем нашу игру чуть более интересной.
- Создай новый файл для кода, сохрани под тем именем, которое тебе больше понравится.
- Добавьте строку, которая бы запрашивала ввод названия животного с предлогом «на».
- Затем измени команду print() , убрав слово собаку и добавив переменную animal после предложения, взятого в кавычки (не забудь в команде print() добавить запятую перед новой переменной).
При желании вы можете изменить предложение еще сильнее. К примеру, Эта весёлая меловая доска рыгнула на ленивого коричневого геккона! , или что-нибудь еще более забавное!
И не забудь сохранить свою программу!
Пиццерия¶
Давайте представим, что мы не только программисты, но и владельцы нашей собственной пиццерии.
Чтобы нам было удобно расчитывать общую стоимость заказа, с учетом налога, напишем небольшую программу, которая подсчитает это.
Предположим, что у нас заказывают одну или несколько пицц одинаковой стоимости, а налог в нашей стране составляет 8% с общей стоимости покупки. То есть за каждый рубль, уплаченный за пиццу, мы должны заплатить восемь копеек налога с продаж. На словах мы можем смоделировать данную программу следующим образом:
- Спросить человека, сколько пицц он желает заказать.
- Запросить стоимость каждой пиццы, указанную в меню.
- Подсчитать стоимость каждой пиццы как подытог.
- Подсчитать начисляемый налог с продаж по ставке 8 процентов от подытога.
- Добавить сумму налога с продаж к подытогу и получить итоговую стоимость.
- Показать пользователю общую сумму к оплате, в том числе налог.
Рефлексия¶
А теперь, давай подумаем над тем, как прошло занятие, что ты узнал нового, какие были трудности и что можно было бы сделать лучше.
Переходи по ссылке и заполни форму - рефлексия.
© Copyright 2020, Kalashnikov Ivan Revision 17a143dc .
Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions latest Downloads pdf html epub On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.
