Числа в python

Объединение множеств

Предположим, у нас есть два множества, А и В. Объединение этих двух множеств — это множество со всеми элементами обеих множеств. Такая операция выполняется при помощи функции Python под названием .

Рассмотрим пример:

Python

months_a = set()
months_b = set()

all_months = months_a.union(months_b)
print(all_months)

1
2
3
4
5

months_a=set(«Jan»,»Feb»,»March»,»Apr»,»May»,»June»)

months_b=set(«July»,»Aug»,»Sep»,»Oct»,»Nov»,»Dec»)

all_months=months_a.union(months_b)

print(all_months)

Результат:

Python

{‘Oct’, ‘Jan’, ‘Nov’, ‘May’, ‘Aug’, ‘Feb’, ‘Sep’, ‘March’, ‘Apr’, ‘Dec’, ‘June’, ‘July’}

1 {‘Oct’,’Jan’,’Nov’,’May’,’Aug’,’Feb’,’Sep’,’March’,’Apr’,’Dec’,’June’,’July’}

Объединение может состоять из более чем двух множеств, и все их элементы сложатся в одно большое множество. Например:

Python

x = {1, 2, 3}
y = {4, 5, 6}
z = {7, 8, 9}

output = x.union(y, z)

print(output)

1
2
3
4
5
6
7

x={1,2,3}

y={4,5,6}

z={7,8,9}

output=x.union(y,z)

print(output)

Результат:

Python

{1, 2, 3, 4, 5, 6, 7, 8, 9}

1 {1,2,3,4,5,6,7,8,9}

При выполнении операции объединения, дубликаты игнорируются, так что только один из двух элементов дубликатов будет отображаться. Например:

Python

x = {1, 2, 3}
y = {4, 3, 6}
z = {7, 4, 9}

output = x.union(y, z)

print(output)

1
2
3
4
5
6
7

x={1,2,3}

y={4,3,6}

z={7,4,9}

output=x.union(y,z)

print(output)

Результат:

Python

{1, 2, 3, 4, 6, 7, 9}

1 {1,2,3,4,6,7,9}

Оператор может также использоваться при поиске объединения двух или более множеств. Например:

Python

months_a = set()
months_b = set()

print(months_a | months_b)

1
2
3
4

months_a=set(«Jan»,»Feb»,»March»,»Apr»,»May»,»June»)

months_b=set(«July»,»Aug»,»Sep»,»Oct»,»Nov»,»Dec»)

print(months_a|months_b)

Результат:

Python

{‘Feb’, ‘Apr’, ‘Sep’, ‘Dec’, ‘Nov’, ‘June’, ‘May’, ‘Oct’, ‘Jan’, ‘July’, ‘March’, ‘Aug’}

1 {‘Feb’,’Apr’,’Sep’,’Dec’,’Nov’,’June’,’May’,’Oct’,’Jan’,’July’,’March’,’Aug’}

Если вы хотите создать объединение из более двух множеств, разделите названия множеств при помощи оператора . Взглянем на пример:

Python

x = {1, 2, 3}
y = {4, 3, 6}
z = {7, 4, 9}

print(x | y | z)

1
2
3
4
5

x={1,2,3}

y={4,3,6}

z={7,4,9}

print(x|y|z)

Результат:

Python

{1, 2, 3, 4, 6, 7, 9}

1 {1,2,3,4,6,7,9}

Словари

Словарь – это неупорядоченный изменяемый массив данных, состоящий из пар «ключ-значение». Словари обозначаются фигурными скобками ({}).

Словари обычно хранят связанные данные. Словарь имеет такой вид:

Кроме фигурных скобок, в словарях используется двоеточие. Слева от двоеточия пишутся ключи, в данном случае это ‘name’, ‘animal’, ‘color’, ‘location’.

Справа от двоеточия находятся значения. Значения могут быть представлены любым типом данных. В приведённом примере значениями являются ‘Jake’, ‘dog’, ‘yellow’, ‘Tree Fort’.

Попробуйте создать переменную для словаря, а затем вывести её на экран.

Чтобы запросить только один из элементов словаря, используйте квадратные скобки. Например:

Операции с числами

Является ли переменная числом

Любую переменную можно проверить на тип (int, float или complex):

Если вы хотите проверить, находится ли в строке число, воспользуйтесь методом

Однако стоит помнить, что метод не работает для отрицательных чисел и чисел с плавающей точкой.

Также для проверки на число, можно написать собственную функцию:

Арифметические операции

  • – сложение;
  • – вычитание;
  • – умножение;
  • – деление;
  • – целочисленное деление;
  • – остаток от деления;
  • – возведение в степень;
  • – смена знака;
  • – модуль числа;
  • – возвращает кортеж из частного и остатка от деления x на y;
  • – возведение числа в степень (z – деление по модулю);
  • – округление числа (ndigits — знаки после запятой).

Преобразования

  • – преобразование в целое число
  • – преобразование в число с плавающей точкой
  • – преобразование в комплексное число
  • – целоe числа в двоичную строку;
  • – целое число в восьмеричную строку;
  • – целое число в шестнадцатеричную строку;
  • – перевод целого числа 123 в список цифр этого числа;
  • – перевод списка цифр в целое число 123;
  • – число в строку;

Ввод чисел

Для ввода данных в программу на языке Python используется функция . Эта функция считывает то что вы ввели на клавиатуре, и записывает эти данные в переменную в виде одной строки. После этого, перевести строку в число можно простыми функциями , или

Если нужен список чисел, введите несколько чисел через пробел и выполните:

Вывод чисел

Для вывода числа используйте

На практике возникают ситуации, когда нужно вывести число вместе со строкой (например пояснить, что означает число). Существует несколько вариантов сделать это:

Другие полезные функции

  • – посчитает длину числа;
  • – если остаток от деления равен 0, то число четное;
  • – диапазон чисел от 0 до 5, по которому можно итерироваться;
  • – перевернет число (123 -> 321).

Где используется Python

Python широко распространен во многих сферах: от системного администрирования до Data Science.

Системное администрирование

Системным администраторам Python нужен для автоматизации задач. Он простой, мощный и поддерживает специальные пакеты, которые повышают его эффективность. И, самое главное, он по умолчанию установлен на все серверы с ОС Linux.

Благодаря лаконичности Python можно быстро прочитать код и найти слабые места. Форматирование в языке — часть синтаксиса.

Научные исследования

В Python есть несколько библиотек, которые пригодятся для проведения исследований и вычислений:

  • SciPy — библиотека с научными инструментами;
  • NumPy — расширение, которое добавляет поддержку матриц и многомерных массивов, а также математические функции для работы с ними;
  • Matplotlib — библиотека для работы с 2D- и 3D-графикой.

Благодаря библиотекам и простоте освоения языка многие учёные выбирают Python — особенно он популярен у математиков и физиков.

Data Science

Python — один из самых используемых в Data Science языков. На нём пишут алгоритмы программ с машинным обучением и аналитические приложения. С помощью него обслуживают хранилища данных и облачные сервисы.

Программа на Python с векторизацией и построением графиков

Вернемся к задаче, описывающей вертикальное положение \( y \) мяча после
подбрасывания. Предположим, что нас интересуют значения \( y \) в
каждую миллисекунду первой секунды полета. Это требует повторения
вычисления \( y = v_0 t — 0.5 g t^2 \) тысячу раз.

Также построим график зависимости \( y \) от \( t \) на отрезке
\( \). Построение такого графика на компьютере подразумевает
рисование прямых отрезков между точками кривой, поэтому нам
понадобится много точек, чтобы создать визуальный эффект гладкой
кривой. Тысячи точек, которые мы вычислим, нам будет достаточно для
этого.

Реализацию таких вычислений и построения графика может быть
реализовано следующим сценарием (ball_plot.py):

# -*- coding: utf-8 -*-

from numpy import linspace
import matplotlib.pyplot as plt

v0 = 5
g = 9.81
t = linspace(, 1, 1001)

y = v0*t - 0.5*g*t**2

plt.plot(t, y)
plt.xlabel(u't (с)')
plt.ylabel(u'y (м)')
plt.show()

def height(t):
	h =  v0*t - 0.5*g*t**2
	return h

h = lambda t: v0*t - 0.5*g*t**2

Замечание

В нашем сценарии для символьных аргументов мы использовали префикс
(например, ), чтобы указать, что
символы содержатся в кодировке UTF8.

Данный сценарий строит график зависимости вертикального положения мяча
от времени (см. рис. :numref:`%s`). Отметим, что строки для
вычисления из сценария ball.py из раздела
мало изменены, но значение
вычисляется для тысячи точек.

Рассмотрим различия рассматриваемого сценария от предыдущих. Первое
отличие это строки, которые могли выглядеть следующим образом:

from numpy import *
from matplotlib.pyplot import *

Мы видим, что является модулем Python. Этот модуль содержит
огромный функционал для математических вычислений, а модуль
реализует возможности для построения двумерных
графиков. Приведенные выше строки представляют быстрый способ загрузки
всего функционала, связанного с вычислениями и построением
графиков. Однако, фактически мы используем только несколько функций в
нашем сценарии: , , и
. Многие разработчики считают, что мы должны импортировать
только то, что нам нужно, а не весь возможный функционал:

from numpy import linspace
from matplotlib.pyplot import plot, xlabel, ylabel

Другие предлагают способ импорта, когда используется префикс для
функций модуля

import numpy as np
import matplotlib.pyplot as plt

...

t = np.linspace(, 1, 1001)
   
...

plt.plot(x,y)

Мы будем использовать все три способа. В нашем сценарии мы
использовали два из них.

from numpy import linspace
import matplotlib.pyplot as plt


Рисунок 1: График, построенный с помощью нашего сценария.

Функция принимает три аргумента и, в общем случае,
вызывается следующим образом:

linspace(start, stop, n)

Функция генерирует равноотстоящих координат,
начинающихся со значения , и заканчивающихся
. Выражение создает 1001 координату
от 0 до 1 включительно. Математически это означает, что отрезок
\( \) разбивается на 1000 равных отрезков и значения координат
в этом случае вычисляются следующим образом: \( t_i = i/1000,\ i = 0, 1,
\ldots, 1000 \).

Функция возвращает объект класса ,
т.е. некоторый набор чисел (массив). При выполнении арифметических операций с
такими объектами, на самом деле эти операции осуществляются для каждого
элемента массива. В результате получается аналогичный массив из 1001
элемента, который сохраняется в переменную . Таким образом
также является массивом.

Такой подход вычисления нескольких чисел в одну строку называется
векторизацией. Этот способ очень удобен, так как сокращает не только
количество кода, но и время вычислений по сравнению с использованием
циклов или .

Команды для построения графиков достаточно просты:

1. означает построение графика зависимости от

2. помещает текст на оси .

3. помещает текст на оси .

Арифметические операции

Целые числа поддерживают следующие математические операции, которые отсортированы по убыванию приоритета:

Операция Результат Замечание
1 возводит x в степень y (I)
2 возводит x в степень y по модулю z, где z – необязательный аргумент (I)
3 возвращает кортеж с парой чисел (II)
4 возвращает \(\bar{x}\) — число, которое комплексно сопряжено с \(x\)
5 преобразует re в комплексное число (по умолчанию ) (VI)
6 преобразует x в вещественное число (число с плавающей точкой) (VI)
7 переобразует x в целое число, представленное в десятичной системе счисления (V)(VI)
8 абсолютное значение (модуль) числа x
9 делает число x положительным
10 делает число x отрицательным
11 остаток от деления x на y (II)
12 результат целочисленного деления x на y (III) (II)
13 результат «истинного» деления x на y (IV)
14 произведение x и y
15 разность x и y
16 сумма x и y

Важно: приоритет математических операций выше побитовых логических операций и операций сравнения.

Замечания:

I. возведение \(0\) в степень \(0\) возвращает \(1\):

Извлечение корней четной степени из отрицательных чисел не вызывает ошибки, а возвращает комплексное число:

II. функция и операция , не работают для комплексных чисел. Для вас это может быть и очевидно, но не пользователя для которого вы пишите программу.

III. если оба числа типа int то и результат будет типа int. Данная операция всегда возвращает целое число, т.е. если число x можно представить в виде , то (r – остаток от деления). Так же следует иметь ввиду, что результат данной операции всегда округляется в сторону минус бесконечности:

Это немного сбивает с толку, но проверив результат по формуле , вы убедитесь что все верно.

IV. даже если оба числа типа int, то результат все равно будет преобразован к типу float.

V. встроенная функция пропускает числа (объекты) типа int «как есть», не выполняя над ними, абсолютно никаких действий.

VI. строго говоря эти функции не являются математическими, но они могут учавствовать в математических выражениях Python и поэтому должны обладать приоритетом.

Дополнительные задачи¶

  1. В школе решили набрать три новых математических класса. Так как занятия по
    математике у них проходят в одно и то же время, было решено выделить кабинет
    для каждого класса и купить в них новые парты. За каждой партой может сидеть
    не больше двух учеников. Известно количество учащихся в каждом из трёх
    классов. Сколько всего нужно закупить парт чтобы их хватило на всех учеников?
    Программа получает на вход три целых десятичных числа: количество учащихся в
    каждом из трех классов.

  2. Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для
    шнуровки будут расположены в два ряда, расстояние между рядами равно
    \(a\), а расстояние между дырочками в ряду \(b\). Количество дырочек
    в каждом ряду равно \(N\). Шнуровка должна происходить элитным способом
    «наверх, по горизонтали в другой ряд, наверх, по горизонтали и т.д.» (см.
    рисунок). Кроме того, чтобы шнурки можно было завязать элитным бантиком,
    длина свободного конца шнурка должна быть \(l\). Какова должна быть длина
    шнурка для этих ботинок?

    Программа получает на вход четыре натуральных числа \(a\), \(b\),
    \(l\) и \(N\) и должна вывести одно число — искомую длину шнурка.

3. Занятия в школе начинаются в 9:00. Продолжительность урока — 45 минут,
перемены — 10 минут. На вход принимается номер урока, а выводится время, в
которое он заканчивается (часы и минуты отдельно).
Пример вывода:

Урок №2 заканчивается в 10 часов 40 минут

4. Доработайте код задачи № 3 таким образом, чтобы он запрашивал время начала
занятий (минуты и часы отдельно) и номер урока, а далее также рассчитывал время
окончания уроков.

5. Пользователь вводит число и систему счисления этого числа. Программа
переводит число в десятичную, двоичную, восьмеричную и шестнадцетеричную
системы счисления с использованием стандартных функций.
Пример вывода:

Преобразование типов

Перечислим основные типы данных в Python, которые понадобятся на ближайших уроках:

  • int – целочисленные значения;float – вещественные (дробные) значения;bool – логические значения — истина (True) или ложь (False);str – символьная строка или единичный символ.

Рассмотрим примеры использования основных типов в Python:Целые числа (int):

num = 13
print(num)  # 13
 
num = 
print(num)  # 0
 
num = -10
print(num)  # -10
 
num = 500_000_000  # для удобства чтения
print(num) # 500000000

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

num = 13.4
print(num) # 13.4
 
num = 0.0
print(num) # 0.0
 
num = -15.2
print(num) # -15.2
 
num = 100_000.000_002 # для удобства чтения
print(num) # 100000.000002
 
num = 1.7e2 # 1.7 умножить на 10 в степени 2
print(num) # 170

Логический тип (bool):

print(15 == 15) # True
 
print(1 != 3) # True
 
print(3 > 4) # False
 
print(3 <= 3) # True
 
print(6 >= 6) # True
 
print(6 < 5) # False
 
x = 2
print(1 < x < 3) # True

Строки (str):

example_string = "Очень интересно"
print(example_string) # Очень интересно
 
example_string = 'Пьеса "На дне"'
print(example_string) # Пьеса "На дне"
 
example_string = "Пьеса \"На дне\"
print(example_string) # Пьеса "На дне"
 
example_string = "Как " \
                 "разбить " \
                 "объявление длинной строки"
print(example_string) # Как разбить объявление длинной строки
 
example_string = """
                 Как  
                 оставить сроку
                 в несколько строк
                 """
print(example_string) 
# Как  
# оставить сроку
# в несколько строк
# Как объединить две строки в одну
print("Можно их" + " сложить") # Можно их сложить 
 
print("Можно и так!" * 3) # Можно и так!Можно и так!Можно и так!

Рассмотрим примеры того, как используется преобразование типов в Питон:

  • преобразование в символьную строку:
1
2
3
a = 1.7
a=str(a)
print(a) # '1.7'

преобразование в целое:

1
2
3
x = 1.7
x=int(x)
print(x) # 1

преобразование в вещественное:

1
2
3
y=1
y=float(y)
print(y) # 1.0
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector