- Лекция: Числа. Модули, Графики
- Задание 4.1 Длина длинного числа
- Системы счисления
- Вещественные числа (float)
- Задание 4.2 Калькулятор v2
- Комплексные числа (complex)
- Модули
- Модуль math
- Модуль random
- Задание 4.3 Камень, ножницы, бумага
- Построение диаграмм в python
- Задание 4.4 График 'Улитки'
- Числа: целые, вещественные, комплексные
- Целые числа (int)
- Дополнительные методы
Лекция: Числа. Модули, Графики
Числа в Python 3: целые, вещественные, комплексные. Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций: + , — , * , / , // (целая часть от деления), % (остаток от деления), ** (возведение в степень)
def nod(a,b): while a!=0: a, b = b % a, a return b
Обратите внимание на строку №3 приведенного примера, где происходит парное присвоение, часто используемое в языке python.
Модуль числа можно найти при помощи функции abs(x) . Функция divmod(x,y) вернет пару чисел (x//y,x%y) . Для возведения в степень имеется функция pow(x,y[,z]) .
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
Задание 4.1 Длина длинного числа
Запросить у пользователя два целых числа X и Y. Найти число знаков в числе X Y .
Системы счисления
- int([object], [основание системы счисления]) — преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
- bin(x) — преобразование целого числа в двоичную строку.
- hex(х) — преобразование целого числа в шестнадцатеричную строку.
- oct(х) — преобразование целого числа в восьмеричную строку.
Вещественные числа (float)
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
s = 0 for i in range(10): s += 0.1 if s==1: print ('Нормально') else: print ('Странно')
Вещественные числа не поддерживают длинную арифметику.
Задание 4.2 Калькулятор v2
Необходимо запросить у пользователя строку для вычислений. В качестве операций вводятся символы +, -, *, /. Нужно вывести результат вычислений. Например:
Строка для вычисления: 6*-1+4.2 Результат:-1.8
Комплексные числа (complex)
В Python встроены также и комплексные числа:
x = complex(1, 2) print(x) #(1+2j) y = complex(3, 4) print(y) #(3+4j) z = x + y print(x) #(1+2j) print(z) #(4+6j) z = x * y print(z) #(-5+10j) z = x / y print(z) #(0.44+0.08j) print(x.conjugate()) # Сопряжённое число (1-2j) print(x.imag) # Мнимая часть 2.0 print(x.real) # Действительная часть 1.0 print(x > y) # Комплексные числа нельзя сравнить. Выведет ошибку! print(x == y) # Но можно проверить на равенство abs(3 + 4j) # Модуль комплексного числа 5.0 pow(3 + 4j, 2) # Возведение в степень (-7+24j)
Модули
Система модулей позволяет вам логически организовать ваш код на Python. Группирование кода в модули значительно облегчает процесс написания и понимания программы. Говоря простым языком, модуль в Python это просто файл, содержащий код на Python. Каждый модуль в Python может содержать переменные, объявления классов и функций. Кроме того, в модуле может находиться исполняемый код.
Вы можете использовать любой питоновский файл как модуль в другом файле, выполнив в нем команду import . Команда import в Python обладает следующим синтаксисом:
import math # Используем функцию sqrt из модуля math print (math.sqrt(9)) # Печатаем значение переменной pi, определенной в math print (math.pi)
Важно знать, что модуль загружается лишь однажды, независимо от того, сколько раз он был импортирован. Это препятствует цикличному выполнению содержимого модуля.
Команда from . import позволяет вам импортировать не весь модуль целиком, а только определенное его содержимое. Например:
# Импортируем из модуля math функцию sqrt from math import sqrt # Выводим результат выполнения функции sqrt. # Обратите внимание, что нам больше незачем указывать имя модуля print (sqrt(144)) # Но мы уже не можем получить из модуля то, что не импортировали print (pi) # Выдаст ошибку
Выражение from . import не импортирует весь модуль, а только предоставляет доступ к конкретным объектам, которые мы указали.
В Python так же возможно импортировать всё (переменные, функции, классы) за раз из модуля, для этого используется конструкция from . import * . Например:
from math import * # Теперь у нас есть доступ ко всем функция и переменным, определенным в модуле math print (sqrt(121)) print (pi) print (e)
Однако это конструкцию следует использовать с осторожностью, поскольку при импортировании нескольких модулей можно запутаться в своем собственном коде.
Модуль math
Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами. В нем вы найдете такие функции как sin() , cos() , sqrt() , cos() , log() , exp() , trunc() . В нем же определены константы pi , e .
Модуль random
Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности. Модуль собрал разные функции для имитации случайных процессов: random() , randint() , randrange() , choice() , shuffle() , gauss() и другие.
Задание 4.3 Камень, ножницы, бумага
Запрограммируйте игру с компьютером в «Камень, ножницы, бумага». Пример диалога:
Счет 0:0 Ваш ход (0-выход, 1-камень, 2-ножницы, 3-бумага): 1 Мой ход: 2 Вы выиграли! Счет 0:1 Ваш ход (0-выход, 1-камень, 2-ножницы, 3-бумага): 3 Мой ход: 3 Ничья! Счет 0:1 Ваш ход (0-выход, 1-камень, 2-ножницы, 3-бумага): 1 Мой ход: 3 Вы проиграли! Счет 1:1 Ваш ход (0-выход, 1-камень, 2-ножницы, 3-бумага): 0 Игра окончена со счетом 1:1
Построение диаграмм в python
простейший график, который можно построить в Matplotlib, это график синуса и косинуса:
import matplotlib as mpl import matplotlib.pyplot as plt import math dpi = 80 fig = plt.figure(dpi = dpi, figsize = (512 / dpi, 384 / dpi) ) mpl.rcParams.update() plt.axis([0, 10, -1.5, 1.5]) plt.title('Sine & Cosine') plt.xlabel('x') plt.ylabel('F(x)') xs = [] sin_vals = [] cos_vals = [] x = 0.0 while x < 10.0: sin_vals += [ math.sin(x) ] cos_vals += [ math.cos(x) ] xs += [x] x += 0.1 plt.plot(xs, sin_vals, color = 'blue', linestyle = 'solid', label = 'sin(x)') plt.plot(xs, cos_vals, color = 'red', linestyle = 'dashed', label = 'cos(x)') plt.legend(loc = 'upper right') fig.savefig('trigan.png') plt.show()
Задание 4.4 График 'Улитки'
Постройте график функции \(r=\phi\)
Числа: целые, вещественные, комплексные
Числа в Python 3: целые, вещественные, комплексные. Работа с числами и операции над ними.
Целые числа (int)
Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:
x + y | Сложение |
x - y | Вычитание |
x * y | Умножение |
x / y | Деление |
x // y | Получение целой части от деления |
x % y | Остаток от деления |
-x | Смена знака числа |
abs(x) | Модуль числа |
divmod(x, y) | Пара (x // y, x % y) |
x ** y | Возведение в степень |
pow(x, y[, z]) | x y по модулю (если модуль задан) |
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
Над целыми числами также можно производить битовые операции
x | y | Побитовое или |
x ^ y | Побитовое исключающее или |
x & y | Побитовое и |
x | Битовый сдвиг влево |
x >> y | Битовый сдвиг вправо |
~x | Инверсия битов |
Дополнительные методы
int.bit_length() - количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.
int.to_bytes(length, byteorder, *, signed=False) - возвращает строку байтов, представляющих это число.
int.from_bytes(bytes, byteorder, *, signed=False) - возвращает число из данной строки байтов.
Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:
- int([object], [основание системы счисления]) - преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
- bin(x) - преобразование целого числа в двоичную строку.
- hex(х) - преобразование целого числа в шестнадцатеричную строку.
- oct(х) - преобразование целого числа в восьмеричную строку.
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
Для высокой точности используют другие объекты (например Decimal и Fraction)).
Также вещественные числа не поддерживают длинную арифметику:
Простенькие примеры работы с числами:
float.as_integer_ratio() - пара целых чисел, чьё отношение равно этому числу.
float.is_integer() - является ли значение целым числом.
float.hex() - переводит float в hex (шестнадцатеричную систему счисления).
classmethod float.fromhex(s) - float из шестнадцатеричной строки.
Помимо стандартных выражений для работы с числами (а в Python их не так уж и много), в составе Python есть несколько полезных модулей.
Модуль math предоставляет более сложные математические функции.
В Python встроены также и комплексные числа:
: complex() Для работы с комплексными числами используется также модуль cmath.
Для вставки кода на Python в комментарий заключайте его в теги
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов