Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708

Python на практике

21.06.2021, 15:45. Показов 4388. Ответов 33

Студворк — интернет-сервис помощи студентам
Введение
Типы данных, информационные структуры данных, алгоритмы, системы счисления, все это не возможно без фундаментальных знаний о самом числе и его разновидностей.
Нам необходимы основополагающие знания в математике для формирования собственного математического мышления при решении ежедневных задач на данном языке.
В первой части данного цикла статей предлагаю ответ на вопрос: «Что такое число, разновидности чисел и математическое мышление?»

Часть 1

Число

Определение «числа»
Арифметическое, или абсолютное значение (модуль) числа а называется само число а, если а — положительное число или нуль, и число -а, если а — отрицательное число.
Величина может быть измерена, т. е. тем или иным путем сравнена с некоторой определенной величиной того же рода, которая принимается за единицу меры.
Процесс сравнения — измерение. В результате измерения получается число.

Разновидности чисел

Иррациональные числа — это такие числа, которые в десятичной форме записи представляют собой бесконечные непериодические десятичные дроби. Величина несоизмерима с единицей меры.


Рисунок 1 — Разновидности чисел

Натуральные числа — числа, получаемые при естественном счёте: N = {0,1,2,3,...}.
Целые числа — числа, получаемые объединением натуральных чисел со множеством чисел противоположным натуральным и нулём: Z = {...-2, -1, 0, 1,2,...}.
Рациональные числа — числа, представимые в виде дроби.
Действительные(вещественные) числа - числа, представляющие собой расширение множества рациональных чисел, замкнутое относительно некоторых (важных для математического анализа) операций предельного перехода.
Комплексные числа - числа, являющиеся расширением множества действительных чисел.
В области вещественных чисел выполнимы первые четыре действия, кроме деления на нуль. Корень нечетной степени из любого вещественного числа имеет всегда одно определенное значение. Корень четной степени из положительного числа имеет два значения, которые различаются только знаком.

«Платон при помощи чисел различает подлинное бытие (то, что существует и мыслится само по себе) и не подлинное бытие (то, что существует лишь благодаря другому и познаётся только в отношении).»

Математическое мышление
Математические доказательства — строгие логические рассуждения.


Рисунок 2 — Математическое мышление

Для математики важна не природа рассматриваемых объектов, а существующие между ними отношения.

Название: JZQvmD.png
Просмотров: 280

Размер: 5.3 Кб
Рисунок 3 — Виды умозаключений

Принцип математической индукции гласит, что утверждение A(n), зависящее от натурального параметра n, считается доказанным, если доказано A(1) и для любого натурального числа n из предположения, что верно A(n), доказано, что верно также A(n+1).
Индукция — это вид обобщения, связанный с предвосхищением результатов наблюдений и экспериментов на основе данных опыта.
Дедукция — выведение, переход от посылок к заключению, опирающийся на логический закон, в силу чего заключение с логической необходимостью следует из принятых посылок.

Необходимые и достаточные условия

Например, для делимости числа на 6 необходимо и достаточно, чтобы оно делилось на 2 и 3.
«Необходимо и достаточно» равносильно: «тогда и только тогда», «если и только если», «в том и только в том случае».

Рисунок 4 — Определение кратности числа шести средствами IDLE

О самом главном:
1. Какие типы данных используются для представления следующих разновидностей чисел:
- натуральных и целых чисел? Ответ: _____________________
- действительных(вещественных) чисел? Ответ: _______________
- комплексных чисел? Ответ: _________________
2. Существует ли возможность представления рациональных чисел в языке программирования Python?
3. Что является необходимых и достаточным условием для определения наибольшего общего делителя двух чисел в приведенном ниже примере?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
evclid.py - Алгоритм Евклида
Даны два целых положительных числа m и n.
Требуется найти их наибольший общий делитель,
т.е. наибольшее целое положительное число,
которое нацело делит оба числа m и n.
"""
import unittest
import pytest
 
def gcd_recursion(m: int,n: int)->int:
    """
    АЛГОРИТМ ЕВКЛИДА:
    1 Разделим m на n, и пусть остаток от деления будет равен r
    (где 0<=r<n).
    2 Если r = 0, то выполнение алгоритма прекращается; n - искомое значение.
    3 Присвоить m <-- n, n <-- r и вернуться к шагу 1.
    """
    m_int = isinstance(m, int)
    n_int = isinstance(n, int)
    if not(m_int or n_int):
        raise ValueError("Input arguments are not integers")
    elif (m_null == 0) or (n_null == 0) :
        raise ValueError("One or more input arguments equals zero")
    else:
        return (abs(m) if n==0 else gcd_recursion(abs(n), m%n))
 
def gcd_while(m: int,n: int)->int:
    """
    АЛГОРИТМ ЕВКЛИДА:
    1 Разделите m на n и пусть остатком будет m.
    2 Если m == 0, то работа алгоритма завершается и ответом будет n.
    3 Разделите n на m, и пусть остатком будет n.
    4 Если n=0, то работа алгоритма завершается и ответом будет m; в противном случае вернуться к первому шагу.
    """
    m_int = isinstance(m, int)
    n_int = isinstance(n, int)
    if not(m_int or n_int):
        raise ValueError("Input arguments are not integers")
    if (m == 0) or (n == 0) :
        raise ValueError("One or more input arguments equals zero")
    while n != 0:
        m, n = n, abs(m) % abs(n)
    return m
 
class TestGcd(unittest.TestCase):
        """[summary]
        Test for the file evclid.py
 
        Arguments:
            unittest {[type]} -- [description]
        """
        def test_gcd(self):
            self.assertEqual(4, gcd_while(8, 12))
            self.assertEqual(1, gcd_while(13, 17))
            self.assertEqual(57, gcd_recursion(2166, 6099))
            self.assertEqual(1, gcd_recursion(13, 17))
 
        def test_gcd_non_integer_input(self):
            with pytest.raises(ValueError, match=r"Input arguments are not integers"):
                gcd_while(1.0, 5)
                gcd_while(5, 6.7)
                gcd_while(33.8649, 6.12312312)
                gcd_recursion(1.0, 5)
                gcd_recursion(5, 6.7)
                gcd_recursion(33.8649, 6.12312312)
 
        def test_gcd_zero_input(self):
            with pytest.raises(ValueError, match=r"One or more input arguments equals zero"):
                gcd_while(0, 12)
                gcd_while(12, 0)
                gcd_while(0, 0)
 
        def test_gcd_negative_input(self):
            self.assertEqual(1, gcd_while(-13, -17))
            self.assertEqual(4, gcd_while(-8, 12))
            self.assertEqual(8, gcd_while(24, -16))
            self.assertEqual(1, gcd_recursion(-13, -17))
            self.assertEqual(4, gcd_recursion(-8, 12))
            self.assertEqual(8, gcd_recursion(24, -16))
 
if __name__ == '__main__':
    unittest.main()
Уважаемые читатели данной темы, прошу ответить на поставленные вопросы и оказать посильную помощь в добавлении примеров на python,
которые имели бы смысл в тексте статьи, а также указать на грамматические, орфографические и другие ошибки.
Ошибки в написании кода, лучшие варианты, ошибки в тексте, все открыто для критики.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2021, 15:45
Ответы с готовыми решениями:

Нужно выполнить задание по практике Python
Напишите скрипт создайте объект в виде ассоциативного массива (Словарь) У Вас есть на балансе 1500 person = {&quot;balance&quot; :...

Отчет по практике
Нужен отчет по практике, учусь АСОИУ 5 курс. Работаю электромонтажником и не знаю что в отчете писать, мщжет у кого остался свой отчет...

Отчет по практике
Привет всем! Нужен отчет по практике за второй курс по специальности &quot;программное обеспечение вт и ас&quot; если у кого дома на компьютере...

33
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.06.2021, 15:44  [ТС]
Студворк — интернет-сервис помощи студентам
Catstail, нужны все возможные (используемые в математической литературе) слова синонимы к предоставленным наименованиям разновидностей чисел
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 18:19
AlexMarkov, если бы ты знал питон, у тебя бы не возникали такие вопросы.

Давай немного отвкёмся от питона. Компьютер у нас большой калькулятор и работает только с числами (двоичными). Соответственно числа могут быть только целыми.

Пример:
8-битная (1 байт) ячейка памяти может хранить только 8 бит. От 00000000 до 11111111 или 2^8 комбинаций (число от 0 до 255). Вот это целые беззнаковые числа. 16 бит соответственно даст 2^16 комбинаций итд. Машина у вас скорее всего 64-битная.

Теперь хитрость: сдвигаем ноль и говорим, что половина значений в ячейке будем считать отрицательными, другую - положительными. В 8-ми битах уложится число от -128 до 127 (те же 256 комбинаций). Это целое знаковое число. В питоне это int.

Числа с плавающей запятой (float) хранятся сложнее: https://ru.wikipedia.org/w/ind... =108754292

Чтобы получить дробь, нужно уже хранить два числа: числитель и знаменатель. Благо, в питоне либа есть: https://docs.python.org/3/library/fractions.html (а в липсе поддержка дробей на уровне синтаксиса!)

Комплексные числа в питоне были доступны из коробки.
Python
1
2
3
4
5
6
7
8
9
10
11
>>> x = complex(3, 5)
>>> x
(3+5j)
>>> x.real
3.0
>>> x.imag
5.0
>>> 5j
5j
>>> 1+5j
(1+5j)
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.06.2021, 18:43  [ТС]
Рыжий Лис, у меня нет задачи углубленного описания происходящего в виртуальной машине интерпретатора.
О том что Вы говорите сказано, прочитано и замусолено тысячи раз. Но это настолько специфичная информация, что знать
и запоминать ее уже нет сил, потом столько разночтений в разных источниках об наименованиях чисел, что просто
кругом голова, поэтому я хочу для себя структурировать всю информацию, и прошу ответить на заданный вопрос, а не
описывать "программерский канцеляризм" которому уже 20 лет, это все равно что запоминать количество молекул
из которых состоит корпус моей настольной лампы. Ответьте пожалуйста на вопрос, больше я не о чем не прошу.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 18:51
Я ответил.

Добавлено через 51 секунду
Дочитай весь пост до конца.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.06.2021, 18:54  [ТС]
Рыжий Лис, я про математическую терминологию в предоставленном выше материале))Вы уж извините меня, но сейчас я об математике, а не о пайтоне.

Добавлено через 1 минуту
Рыжий Лис, я про большие и простые числа и т.п. ваши записи я включу в данный материал, ну этого не достаточно
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 18:58
Большие числа прекрасно хранятся в int (фича питона!)

Добавлено через 2 минуты
Смотри прикол:
Python
1
2
3
4
5
6
7
8
9
10
>>> from ctypes import c_int
>>> a = c_int(45)
>>> a
c_int(45)
>>> a = c_int(455644454545454545)
>>> a
c_int(-1592855087)
>>> b = int(455644454545454545)
>>> b
455644454545454545
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.06.2021, 19:05  [ТС]
Рыжий Лис, если ваш ответ на вопросы первого поста данной темы, так я написал "для представления чисел", а не какие числа используются

Добавлено через 1 минуту
Рыжий Лис, Вы не внимательно прочитали вопрос, я не настолько силен как Вы в программировании, поэтому и прошу помощи
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 19:19
Сформулируйте вопрос.

Добавлено через 1 минуту
Допустим, есть дробь. Можно ли её использовать и хранить в питоне - да.

Есть иррациональное (?) число. Можно ли его хранить - нет, так как оно бесконечное и потребует бесконечного объёма памяти (например, число пи).
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.06.2021, 21:26  [ТС]
Рыжий Лис, )) ну не до бесконечного значения числа пи, math.pi будет достаточно для примера и понимания как иррационального число сопоставимо с возможными и часто используемыми инструкциями/выражениями языка python.
У меня один вопрос:
Какие слова синонимы можно рассматривать в данном материале к следующим словосочетаниям:
- натуральные числа;
- целые числа;
- рациональные числа;
- вещественные числа;
- комплексные числа?
Данное знание необходимо для понимания читающего "не математика" практически любой книги
по программированию где рассматриваются числа. Я хочу включить полученную информацию в
материал статьи.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 21:35
* Натуральные = целое беззнаковое. В питоне нет.
* Целые = целое знаковое int. В том числе "большие" числа и длинная арифметика.
* Рациональные = дробь https://docs.python.org/3/library/fractions.html
* Вещественные = float
* Комплексные = complex

Вообще бред это всё. Есть типы переменных, а вы числа мучаете.

Добавлено через 2 минуты
Хотя я не понимаю, что такое "вещественное число"
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.06.2021, 21:35  [ТС]
Рыжий Лис, я хочу собрать свою базу данных по изученному материалу,
без данной информации она будет не полной. Ладно извиняюсь, если надоел, ну все таки
хотел бы услышать математические варианты.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 21:37
Про математику задавайте вопросы в разделе математики: https://www.cyberforum.ru/mathematics/

А здесь раздел про питон.
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
23.06.2021, 21:40  [ТС]
Рыжий Лис, не однозначный вариант развития событий.
По прочитанной мной книге: все совокупности рациональных и иррациональных образуют совокупность вещественных чисел.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.06.2021, 21:44
Тогда их можно сохранить во float (который на самом деле в питоне double). Тогда стоит учесть, что точность хранения во float всё равно не бесконечная. И могут быть всякие приколы типа машинного нуля.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.06.2021, 21:44

помогите в практике
Я недавно закончил прохождение книги шпака по контроллерам пик.вроде бы все понятно,но это все теория а мне сейчас нужна практика.самый...

Задания по практике
Не успеваю все сделать сам. Прошу вашей помощи. Это только часть заданий 10/25]. 1. Даны строки А и В. Вычислить длину большей...

Отчет по практике
Привет, если у кого есть отчет производственной практике программиста в сервисном центре, скиньте пожалуйста время жмет. В инете искал...

return на практике
Объясните пожалуйста как на практике применяется return, вопрос такой чем отличается 1 и 2 запись не могу понять где и как в каких случаях...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru