Я учусь python, и мне трудно с тренировочным листом, где я пытаюсь преобразовать миллиметры в дюймы и наоборот. Я строю его по аналогичному сценарию, который конвертирует Фаренгейт в Цельсий (и также наоборот).
Вот скрипт, который конвертирует F <-> C:
temp = input("Input the temperature you like to convert? (e.g., 45F, 102C etc.) : ")
degree = int(temp[:-1])
i_convention = temp[-1]
if i_convention.upper() == "C":
result = int(round((9 * degree) / 5 + 32))
o_convention = "Fahrenheit"
elif i_convention.upper() == "F":
result = int(round((degree - 32) * 5 / 9))
o_convention = "Celsius"
else:
print("Input proper convention.")
quit()
print("The temperature in", o_convention, "is", result, "degrees.")
Я написал это основано на приведенном выше:
meas = input("Convert mm to in and vice versa, enter a value (e.g. 10mm, 2in): \n")
num = int(meas[:-2])
i_measType = meas[-2]
if i_measType.upper() == "MM":
result = int((num * (1/25.4)))
o_measType = "in"
elif i_measType.upper() == "IN":
result = int((num * 25.4))
o_measType = "mm"
else:
print("Input proper convention.")
quit()
print(meas, " = ", result, o_measType)
Я предполагаю, что проблема в [:-2]
и [-2]
, потому что, исходя из того, что я могу понять, эта часть используется, чтобы, возможно, вывести соглашение из номер? Я подумал, что если кто-то вводит 44 мм, meas[:-2]
используется для преобразования этого значения в 44, а meas[-2]
означает «мм». Но я явно ошибаюсь ...
Любая помощь и возможные объяснения будут с благодарностью.
Ошибка:
ValueError: invalid literal for int() with base 10: