использование функций для отображения чисел в списке

#python

#python

Вопрос:

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

 nums = [30,34,40,36,36,28,29,32,34,44,36,35,28,33,29,40,36,24,26,30,30,32,34,32,28,36,24,32]
def fahrenToCel(c):
    c = (f - 32) * (5 / 9)
    return c
print fahrenToCel(nums)
  

это то, что у меня есть, может кто-нибудь, пожалуйста, помочь мне

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

1. В чем, собственно, вопрос?

2. Пожалуйста, делайте свою домашнюю работу в одиночку. Это пятый вопрос подряд, и вы просто копируете код, полученный из каждого ответа, на страницу следующего вопроса.

3. Обучение программированию путем задания случайных вопросов — утомительный и медленный процесс. Возможно, вы захотите начать сначала с руководства , написанного кем-то, кто продумал, как вводить концепции программирования по одной за раз, с большим количеством примеров и задач, которые вам предстоит решить, — несомненно, даст гораздо лучшие результаты, чем просто ходить вокруг да около, прося помощи здесь. Мы рады помочь, но Руководство Института Пастера выглядит как более полезный способ провести вечер.

Ответ №1:

Если у вас есть список the_list и вы хотите применить функцию f к каждому элементу, создайте новый список результатов:

 new_list = [f(x) for x in the_list]
  

Ответ №2:

Кажется, что ваша функция принимает в качестве входных данных одно число, но вы предоставляете ей список чисел. Если вы хотите сгенерировать список преобразованных чисел с помощью этой функции, вы можете использовать понимание списка:

 cels = [fahrenToCel(fah) for fah in nums]
  

Ответ №3:

 print ','.join([str(fahrenToCel(fahren)) for fahren in nums])
  

Это не только создаст новый список, но и присоединится к нему в виде строки, разделенной запятыми.

Если nums оно довольно длинное, вы можете сэкономить немного памяти и производительности, используя выражение генератора вместо понимания списка. Вам просто нужно снять квадратные скобки:

 print ','.join(str(fahrenToCel(fahren)) for fahren in nums)
  

Ответ №4:

Самым простым способом было бы использовать цикл for для перебора списка и вывода каждого результата:

 #!/usr/bin/env python

# def farentoCel(x): ...
# ...

if __name__ == '__main__':
    import sys

    for each_num in sys.argv[1:]:
        print farentoCel(int(each_num))
  

Как говорили другие, вы можете заменить этот явный цикл пониманием списка (expression) или даже пониманием генератора (в более новых версиях Python).

В данном случае я показываю очень простой скелет, который вы можете использовать для тестирования простых функций. If _ name _ == ‘_ main _’: suite — это соглашение Python, используемое для отделения вашей функции, класса и других определений от времени выполнения вашего кода. Это может быть использовано для структурирования вашего кода таким образом, чтобы его можно было повторно использовать (импортировать в) другой код, одновременно предоставляя некоторые функциональные возможности утилите командной строки (оболочке) или предоставляя интерфейс по умолчанию (возможно, графический интерфейс пользователя).

В довольно распространенном случае, когда в вашем модуле нет простой доступной утилиты (где она полезна только при включении в другой код), вы можете использовать набор ‘_ main _’ для размещения примеров модульных тестов.