Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 1 / 1
Регистрация: 29.03.2022
Сообщений: 22

Почему результат несложных вычислений на Python отличается от результата на калькуляторе?

02.04.2022, 04:50. Показов 1238. Ответов 1

Студворк — интернет-сервис помощи студентам
Есть такая задача:

СВЕТОФОР
Работа светофора для автомобилей запрограммирована следующим образом, с начала каждого часа, в течение N минут горит зеленый сигнал, затем в течение M минут горит желтый сигнал, а потом в течение L минут — красный. После снова загорается зеленый и тд.

Напишите программу traffic_light.py, которая получает четыре аргумента из командной строки: N, M, L и T, где T время в минутах, прошедшее с начала очередного часа. После программа должна вывести green, yellow или red в зависимости от того, сигнал какого цвета горит для автомобиля в этот момент.

Пример использования:
> python traffic_light.py 3 1 2 2
green


Вопрос: При параметрах N = 4, M = 2, T = 16 переменная а, которая вычисляется по формуле ниже равняется 3.999999999999999
А на калькуляторе выходит ровно а = 4.
1. Хочу понять точно особенности вычислений.
2. Напишите, пожалуйста, другие алгоритмы решения.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
N = 4
M = 2
T = 16
print(N, M, T)
 
a = (T / (N + M))
a = (a - int(a)) * (N + M)
print(a)
 
if T < N or a < N:
    print("green")
else:
    print("red")
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2022, 04:50
Ответы с готовыми решениями:

Необходимо вывести результат вычислений в калькуляторе
Необходимо найти выход из ситуации. В общем пытаюсь сделать калькулятор на JS. При нажатии на кнопки, текст выводится в textarea...

Почему синтаксис Python 2.* и Python 3.* так отличается?
Привет! Решил на досуге заняться изучением Python'a. Читаю книгу по второму питону, а пользуюсь третьим. Некоторые вещи приходится...

Почему результат вычислений не зависит от параметра
Здравствуйте! Скажите,пожалуйста,почему в этом коде при всех t k получается одинаковое clc; clear; t=0; y=(-10:0.01:10)'; ...

1
20 / 13 / 8
Регистрация: 14.03.2022
Сообщений: 36
02.04.2022, 07:01
Это особенность языков программирования при работе с рациональными числами, а если быть точнее, то их хранения в памяти. Есть и ещё более простой пример демонстрирующий это: 0.1+0.1+0. 1 == 0.3 - > False
Дря работы с рациональными числами есть дополнительные модули, которые дают более корректные результаты, например модуль fractions.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2022, 07:01
Помогаю со студенческими работами здесь

Журнал вычислений в калькуляторе
Сделал калькулятор в Visual studio c++, этого было недостаточно и теперь нужен еще журнал (история вычесление как в самсунге телефон) ...

Создать историю вычислений в калькуляторе язык С#
Здравствуйте, дали задание создать историю сделанных вычислений в калькуляторе. Но я не понимаю как это можно реализовать. Подскажите как...

Почему ответ на GET запрос из Python отличается от ответа на GET запрос из HTTP Analyzer
Добрый день. Делаю GET запрос из HTTP Analyzer Указываю только адрес запроса: https://www.nn.ru/community/sp/food/ Получаю ответ -...

Проверка результата вычислений
Здравствуйте! Возник вопрос, как сделать проверку, правильно ли посчитала программа + чтобы эта самая проверка результата где-нибудь...

Не отображается результат в калькуляторе
Доброго времени суток! Объясните пожалуйста почему не отображается результат счета калькулятора? Делала двумя способами, оба способа не...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru