Арифметические операции имеют ожидаемые приоритеты. При необходимости используются скобки.
1+2*3
(1+2)*3
Возведение целого числа в целую степень даёт целое число, если показатель степени $\ge0$, и число с плавающей точкой, если он $<0$. Так что тип результата невозможно определить статически, если значение переменной n
неизвестно.
n=3
2**n
n=-3
2**n
Арифметические операции можно применять к целым и числам с плавающей точкой в любых сочетаниях.
n+1.0
Деление целых чисел всегда даёт результат с плавающей точкой, даже если они делятся нацело. Операторы //
и %
дают целое частное и остаток.
7/4
7//4
7%4
4/2
Если Вы попытаетесь использовать переменную, которой не присвоено никакого значения, то получите сообщение об ошибке.
x+1
x+=1
означает x=x+1
, аналогично для других операций. В питоне строго различаются операторы (например, присваивание) и выражения, так что таких операций, как ++
в C, нет. Хотя вызов функции в выражении может приводить к побочным эффектам.
x=1
x+=1
print(x)
x*=2
print(x)
Оператор del
уничтожает переменную.
del x
x
Любопытная особенность питона: можно использовать привычные из математики сравнения вроде $x<y<z$, которые в других языках пришлось бы записывать как x<y and y<z
.
1<2<=2
1<2<2
Логические выражения можно комбинировать с помощью and
и or
(эти операции имеют более низкий приоритет, чем сравнения). Если результат уже ясен из первого операнда, второй операнд не вычисляется. А вот так выглядит оператор if
.
n=4
# Кстати, это комментарий
if 1<2 and n<3:
print('T')
else:
print('F')
if 1<2 or n<3:
print('T')
else:
print('F')
После строчки, заканчивающейся :
, можно писать последовательность операторов с одинаковым отступом (больше, чем у строчки if
). Никакого признака конца такой группы операторов не нужно. Первая строчка после else:
, имеющая тот же уровень отступа, что и if
и else:
- это следующий оператор после if
.
Оператора, аналогичного case
или switch
, в питоне нет. Используйте длинную последовательность if
... elif
... elif
... else
.
if n==1:
print('один')
elif n==2:
print('два')
elif n==3:
print('три')
else:
print('много')
Есть и условные выражения:
(0 if n<0 else 1)+1
Обычно в начале пишется основное выражение, оно защищается условием в if
, а после else
пишется исключительный случай.
В питоне немного встроенных функций. Большинство надо импортировать. Элементарные функции импортируют из модуля math
. Заниматься импортозамещением (писать свою реализацию синуса) не нужно.
from math import sin,pi
pi
sin(pi/6)
Любой объект имеет тип.
type(2)
type(int)
type(2.1)
type(True)
Имена типов по совместительству являются функциями, преобразующими в этот тип объекты других типов (если такое преобразование имеет смысл).
float(2)
int(2.0)
int(2.9)
int(-2.9)
Преобразование числа с плавающей точкой в целое производится путём отбрасывания дробной части, а не округления. Для округления используется функция round
.
round(2.9)