Преобразование температуры по Фаренгейту в Цельсий и наоборот.

#python #split #list-comprehension

Вопрос:

Привет, я пытаюсь создать программу, которая принимает столько значений в градусах Цельсия или Фаренгейта, помещает их в список и преобразует в другое значение, а затем отображает результат. Я застрял в применении формулы для градуса Фаренгейта к Цельсию в списке. Вот мой код.

 if temp == "F":
input_string = input('Enter Fahrenheit values for conversion to celsius separated by space ')
print("n")
my_list = input_string.split()
print('list:', my_list)
for i in range(len(my_list)):
    my_list[i] = int(my_list[i])
    print("These temperatures in Celsius are...: ", (x - 32) * 5/9 for x in [my_list],)
 

Комментарии:

1. Заключите понимание списка в квадратные скобки, вы даже можете отпустить цикл for с помощью print("These temperatures in Celsius are...: ", [(int(x) - 32) * 5/9 for x in my_list])

Ответ №1:

Вы упускаете не так уж много, в значительной степени просто некоторые синтаксические ошибки. Вам также не нужен целый цикл только для ввода приведения при выполнении начальной операции.

 if temp == "F":
    input_string = input('Enter Fahrenheit values for conversion to Celsius separated by space ')
print("n")
my_list = input_string.split()
print('list:', my_list)

print("These temperatures in Celsius are...: ", [(int(x) - 32) * 5/9 for x in my_list])
 

Просто убедитесь, что у вас есть инструкция list comp, полностью инкапсулированная, и не заключайте список в квадратные скобки. Вы также можете сделать а round(value, 2) , если хотите просто получить степень до 2 знаков после запятой

Чтобы округлить значения, просто напишите понимание следующим образом

 [round((int(x) - 32) * 5/9, 2)  for x in my_list]