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

Мили в километры, галлоны в литры, доллары в рубли

26.03.2024, 13:55. Показов 1098. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попалась задача: Вы отправляетесь в отпуск в Америку. У себя на родине вы привыкли все считать в рублях, километрах и литрах.

Приехав в Америку, вы запланировали недельную поездку от Нью-Йорка до Лос-Анджелеса на машине. Весь день вы будете ехать, а ночью останавливаться в отеле.

Исходые данные:

Расстояние: 2790 миль;
Стоимость аренды авто на неделю: 820 долларов;
Стоимость одной ночи в отеле (всего 6 ночей): 110 долларов;
Расход бензина: 15.8 миль на один галлон;
Стоимость одного галлона 3.89 доллара;
Курс доллара 77.4 руб.
Необходимо вычислить в рублях, сколько потребуется денег, чтобы проехать этот путь на машине.

При выводе на экран все значения округлите до двух знаков после запятой.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mile = float(2790)
rent = float(820)
cost_hotel = float(110)
gasoline = float(15.8)
cost_oil = float(3.89)
exchange_rate = float(77.4)
 
a = round(mile / gasoline, 2)
b = round(a * cost_oil, 2)
c = round(b + cost_hotel * 6 + rent, 2)
d = round(c * exchange_rate, 2)
print(a, b, c ,d) 
# 167718.06
cost = print("Количество необходимых денег на поездку:", round((mile / gasoline * cost_oil + (cost_hotel * 6) + rent) * exchange_rate,2), "рублей")
# 167718.45
Собственно встал я на том что round можно применить лишь одно конечное число и соответственно значения выходят разные в этих примерах, порылся в гугле нашел numpy чуть почитал - понял пока рановато. Так вот есть ли простой аналог round только на все введённые переменные? Или как вариант не пудрить пока себе этим мозги?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2024, 13:55
Ответы с готовыми решениями:

Создать проект, позволяющий переводить рубли в доллары или доллары в рубли
Создать проект, позволяющий переводить рубли в доллары или доллары в рубли. Курс доллара можно вводить. Расчет выполняется по нажатию на...

Написать программу - конвертер валют (доллары в рубли, рубли в доллары). Цикл while
Написать конвертер валют. Реализовать общение с пользователем через меню (спросить какой перевод ему нужен, после перевода спросить...

Галлоны в литры
В США потребление автомобильного топлива исчисляется в милях на галлон (miles-per-gallon – MPG). В то же время в Канаде этот показатель...

21
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.03.2024, 14:13
Цитата Сообщение от zSiDz Посмотреть сообщение
соответственно значения выходят разные
Потому что в одном случае ты округляешь результат вычислений, а в другом проводишь вычисления над уже округленными числами. Улавливаешь разницу?
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 14:15  [ТС]
Конечно улавливаю, поэтому и спрашиваю) возможно ли в одном примере на каждое арифметическое действие применять round
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.03.2024, 14:15
Цитата Сообщение от zSiDz Посмотреть сообщение
float(77.4)
Зачем float приводить к float?

Добавлено через 36 секунд
Цитата Сообщение от zSiDz Посмотреть сообщение
возможно ли в одном примере на каждое арифметическое действие применять round
Зачем?
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 14:20  [ТС]
Зачем float приводить к float?
это по глупости, ошибка была с type(она выводилась NoneType), все приравнял, ошибку нашел - вернуть забыл.
Зачем?
Записать все в одной строке вместо 5
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.03.2024, 14:22
Цитата Сообщение от zSiDz Посмотреть сообщение
Записать все в одной строке вместо 5
Зачем каждую операцию округлять?
Кликните здесь для просмотра всего текста
round(round(round(a*b)/c)+d)
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 14:27  [ТС]
я так понял смысл этой задачи, разве не так написано?
Цитата Сообщение от zSiDz Посмотреть сообщение
При выводе на экран все значения округлите до двух знаков после запятой.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.03.2024, 14:29
Цитата Сообщение от zSiDz Посмотреть сообщение
Необходимо вычислить в рублях, сколько потребуется денег, чтобы проехать этот путь на машине.
Мне видится тут одно значение.
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 14:58  [ТС]
так в том то и дело что значения выходят разные, которое из них верное? Спасибо подсказал как несколько round можно применить, я пробовал так :
Python
1
e = round(((a*b, 2)/c, 2)+d, 2)
он мне пытался словарь создать и ошибку выдавал. В общем все вроде понятно, еще раз спасибо.

Добавлено через 12 минут
что то не так:

Python
1
2
3
cost = print("Количество необходимых денег на поездку:", round(round(round(round(round((mile / gasoline, 2) * cost_oil, 2) + (cost_hotel * 6, 2)) + rent,2)) * exchange_rate,2), "рублей")
                                                                                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
TypeError: can't multiply sequence by non-int of type 'float'
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,293
26.03.2024, 15:08
Цитата Сообщение от zSiDz Посмотреть сообщение
Записать все в одной строке вместо 5
ну так она просто длинная будет, что хорошего?
ошибка в сообщении 9 возникает при попытке умножить последовательность (например, строку или список) на число с плавающей запятой
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 15:13  [ТС]
Это скорее для общего развития, а как тогда используя round округлять каждое действие до сотых при этом не создавая список?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.03.2024, 15:15
Напиши свой класс-наследник от float и там округляй результаты любых действий. Профит
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 15:17  [ТС]
если попробовать так:

Python
1
2
cost = print("Количество необходимых денег на поездку:", round(round(round(round(round((mile / gasoline * cost_oil), 2) + (cost_hotel * 6), 2) + rent),2) * exchange_rate,3), "рублей")
#Количество необходимых денег на поездку: 167725.8 рублей
то он третье число выдает и округляет до десятых
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.03.2024, 15:18
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 15:19  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Напиши свой класс-наследник от float и там округляй результаты любых действий. Профит
через чур сложно для меня)
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,293
26.03.2024, 15:21
если речь идёт про рубли то не понятно почему не округлить только один раз - в конце?
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 33
26.03.2024, 15:27  [ТС]
в чем разница этого:

Python
1
round(round(round(round(round((mile / gasoline * cost_oil), 2) + (cost_hotel * 6), 2) + rent),2) * exchange_rate, 2)
с этим:

Python
1
2
3
4
a = round(mile / gasoline, 2)
b = round(a * cost_oil, 2)
c = round(b + cost_hotel * 6 + rent, 2)
d = round(c * exchange_rate, 2)
почему итог то разный???

Блин я либо тупой(что скорее всего) или мозги уже не соображают

Добавлено через 2 минуты
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
если речь идёт про рубли то не понятно почему не округлить только один раз - в конце?
я не в задаче хочу разобраться))) правильный ответ думаю этот:

Python
1
2
cost = print("Количество необходимых денег на поездку:", round((mile / gasoline * cost_oil + (cost_hotel * 6) + rent) * exchange_rate,2), "рублей")
# 167718.45
round не понимаю как он округляет...
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
26.03.2024, 16:03
zSiDz, ну, округление нужно только когда выводишь итог вычислений на экран, так как в результате вычислений бывает гораздо больше цифр после запятой, чем реально нужно. Округление в процессе вычислений практического смысла не имеет.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.03.2024, 16:33
Лучший ответ Сообщение было отмечено Red white socks как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mile = 2790.0
rent = 820.0
cost_hotel = 110.0
gasoline = 15.8
cost_oil = 3.89
exchange_rate = 77.4
 
a = mile / gasoline
b = a * cost_oil
c = b + cost_hotel * 6 + rent
d = c * exchange_rate
print(f'{a:.2f} {b:.2f} {c:.2f} {d:.2f}')
 
cost = (mile / gasoline * cost_oil + (cost_hotel * 6) + rent) * exchange_rate
print(f'Количество необходимых денег на поездку: {cost:.2f} рублей')
1
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
27.03.2024, 17:45
Ерунда какая-то. По здравому смыслу, на промежуточном этапе количество бензина нужно округлять до целого, а то и до десятков (полудесятков) вверх.
А если мы только планируем ехать, то на результат еще как минимум 10% накинуть. Какие 2 цифры после запятой???
Да и питаться путешественник чем должен?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.03.2024, 17:45
Помогаю со студенческими работами здесь

Перевести галлоны в литры
Дана такая программа: CLS REM … Один галлон равен 3.7854 литров FOR G = 1 TO 3 Litrs = G * 3.7854 PRINT G; “галлон...

Выбор самого выгодного курса для обмена долларов на рубли и рубли на доллары
В городе есть 7 банков. В каждом банке задается свой курс валюты. Необходимо написать программу выбирающую самый выгодный курс для обмена ...

Сформировать таблицу для пересчета милей в километры и километры в мили для расстояния от .1 до 100километров 1миль=1.609344километров
Сформировать таблицу для пересчета милей в километры и километры в мили для расстояния от .1 до 100километров 1миль=1.609344километров

Перевести доллары в рубли
Напечатать таблицу перевода 1,2,...20 долларов США в рубли по текущему курсу(значение курса вводится с клавиатуры)

Из рубли в доллары и евро
Составить алгоритм пересчета суммы денег в рублях в доллары и евро.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru