#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]