SharedType_data / numbers.ipynbOpen in CoCalc
Numbers_type

Целые числа:

Нестандартные операции:

20 // 3 # целая часть от деления
6
20 % 3 # остаток от деления
2
2 ** 8 # возведение в степень
256
pow(2, 5, 16) # pow(x,y,z) = (x^y) % z
0
pow(2,5,3)
2
abs(-48) # модуль числа
48
divmod(31,5) # (x // y, x % y)
(6, 1)

Битовые операции:

x = 8
y = 7
x | y # побитовое "или"
15
x = 9
x ^ y # побитовое исключающее "или"
14
x & y # побитовое "и"
1
x << 2 # битовый сдвиг влево (дополняется нулями)
36
x = 8
x >> 2 # битовый сдвиг вправо ()
2
~x
-9

Системы счисления

a = int('12') # преобразование в целое число
print(a)
12
b = int('12.5')
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-20-a6a6772bb2ea> in <module>() ----> 1 a = int('12.5') ValueError: invalid literal for int() with base 10: '12.5'
c = int(12.5) # в данном случае просто отсекается дробная часть
print(c)
12
bin(a)
'0b1100'
oct(a)
'0o14'
hex(a)
'0xc'

Вещественные числа:

Вечественные числа не точны из-за преставления их в компьютере, так что с ними нужно быть аккуратными

f = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
print(f)
0.9999999999999999

Так же вещественные числа не поддерживают длинную арифметку из-за ограничений по размерам

f = 2 ** 1500
f = f + 0.8
print(f)
--------------------------------------------------------------------------- OverflowError Traceback (most recent call last) <ipython-input-28-044ec6ce443e> in <module>() 1 f = 2 ** 1500 ----> 2 f = f + 0.8 3 print(f) OverflowError: int too large to convert to float
round(14.8)
15
round(14.5)
14
f = 0.3333333
f.as_integer_ratio() # пара целых чисел, чьё отношение равно этому числу
(6004798902680711, 18014398509481984)

Комплексные числа:

x = complex(1, 2)
print(x)
(1+2j)
y = complex(2,5)
print(y)
(2+5j)
print(x > y) # комплексные числа нельзя сравнить, но можно проверить на равенство
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-36-e2293128c0a1> in <module>() ----> 1 print(x > y) # комплексные числа нельзя сравнить, но можно проверить на равенство 2 print(x == y) TypeError: unorderable types: complex() > complex()
print(x == y)
False
abs(x) # модуль комплексного числа
2.23606797749979
print(x.imag)  # Мнимая часть
print(x.real)  # Действительная часть
2.0 1.0