Top.Mail.Ru
Ответы
Аватар пользователя
5лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Простой конвертер, реализация (Python)

Прошу помощи, в сети находила отдаленно похожий конвертер валют, но сильно запуталась

Должны поддерживаться следующие единицы измерения:
мили (1 mile = 1609 m),
ярды (1 yard = 0.9144 m),
футы (1 foot = 30.48 cm),
дюймы (1 inch = 2.54 cm),
километры (1 km = 1000 m),
метры (m),
сантиметры (1 cm = 0.01 m)
миллиметры (1 mm = 0.001 m)

Формат ввода:
одна строка с фразой следующего вида:
15.5 mile in km, т. е. требуется перевести 15.5 миль в километры.

Формат вывода:
Представить в виде вывода на экран текста "Результат равен N <единица изменения, в которую конвертируем из строки ввода>"
Полученное число должно быть с точностью до пяти знаков после запятой.
Примечания:
Использовать словарь для единиц измерения, вынести логику конвертации в отдельную функцию.

Дано:
5.3 km in cm
22.39 foot in m
10200 mm in yard

На крайний случай может у кого есть схожие примеры, соберу по кусочкам

По дате
По рейтингу
Аватар пользователя
Новичок
5лет

Если без словарей и функций, так сказать, для затравки:

l=input('Ввести:').split()
if l[1]=='km' and l[3]=='cm':k=100000
if l[1]=='foot' and l[3]=='cm':k=30.48
print('Результат равен',float(l[0])*k,l[3])

RESTART: C:
Ввести: 5.3 km in cm
Результат равен 530000.0 cm
>>>

Точность результата отрегулировать командой round

Может кто-нибудь даст более полное решение, кому не лень с этим возиться.

Аватар пользователя
Ученик

как сделать программу которая будет переводить мили в километры

Аватар пользователя
Просветленный
5лет

W = ['mm', 'cm', 'm', 'km', 'inch', 'foot', 'yard', 'mile']
D = [0.001, 0.01, 1, 1000, 0.0254, 0.3048, 0.9144, 1609]

print('Конвертер единиц длины')
print('mm, cm, m, km, inch, foot, yard, mile')
print('Пример ввода: \n\
15.5 mile in km')
while 1:
~~~~s = input('>').split()
~~~~try:
~~~~~~~~x = float(s[0]) * D[W.index(s[1])] / D[W.index(s[3])]
~~~~~~~~print(x)
~~~~except:
~~~~~~~~print('Неправильный ввод')