2011-04-12 22 views
-2

我有一個數字列表,我必須使用一個函數來顯示它們的攝氏度,它們現在在華氏溫度。使用函數來顯示列表中的數字

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) 

這就是我,有人可以幫我

+0

完全是什麼問題? – Santa 2011-04-12 22:17:31

+5

請單獨做功課。這是連續第五個問題,您只需複製/分頁從每個答案到下一個問題的代碼。 – halfdan 2011-04-12 22:18:47

+0

學習如何通過提問隨機問題進行編程是一個單調乏味的過程。您可能希望[首先從教程開始](http://wiki.python.org/moin/BeginnersGuide/NonProgrammers) - 由編寫思想的人編寫,如何一次一個地引入編程概念,例子和解決問題 - 無疑會帶來更好的結果,而不僅僅是在這裏尋求幫助。我們很樂意提供幫助,但[巴斯德研究所指南](http://www.pasteur.fr/formation/infobio/python/)看起來像是一個更有用的方式來度過一個晚上。 – sarnold 2011-04-12 23:55:25

回答

1

如果你有一個列表the_list,你想一個函數f應用到每個元素,創造成果的一個新的列表:

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

你的函數似乎將一個數字作爲輸入,但你給它一個數字列表。如果你想使用該功能,以產生轉換的數字的列表,你可以使用列表理解:

cels = [fahrenToCel(fah) for fah in nums] 
1
print ','.join([str(fahrenToCel(fahren)) for fahren in nums]) 

這不僅會創建一個新的列表,但也將加入它作爲一個逗號分隔的字符串。

如果nums比較長,可以使用生成器表達式而不是列表理解來節省一些內存和性能。你只需要脫下方括號:

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

最簡單的方法是使用一個循環遍歷表並打印每一個結果:

#!/usr/bin/env python 

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

if __name__ == '__main__': 
    import sys 

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

正如其他人所說你可以用一個列表理解(表達式),甚至一個生成器理解(在較新版本的Python中)替換這個顯式循環。

在這種情況下,我展示了一個非常簡單的框架,供您用於測試簡單函數。 如果_ 名稱 _ =='_ 主要 _':套件是一種Python慣例,用於將您的函數,類和其他定義與代碼的運行時分開。這可以用來構造代碼,以便可以在其他代碼中重新使用(導入到)代碼,同時還可以在命令行實用程序(包裝器)中公開某些功能或提供默認接口(可能是GUI)。

在您的模塊沒有簡單可訪問的實用程序的相當普遍的情況下(只有當它被合併到其他代碼中時它纔有用),那麼您可以使用'套件來包含單元測試用例。

相關問題