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

Python на практике

21.06.2021, 15:45. Показов 4270. Ответов 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
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru