2017-09-26 60 views
0

所以我知道如何定義的功能,但我不知道如何輸出兩個結果,其中t=0t=1如何根據蟒蛇一個公式計算並輸出多個結果?

Output for g(0) and g(1)

這裏是我的代碼:

from math import exp 
from math import pi 
from math import sin 


def g(t): 
    a = exp(-t) 
    b = sin(pi*t) 
    g = a*b 
    return g 

t=0 
print(g) 
+0

你不能只打印'g'!正如你所說的,你想要打印'g(0)'和'g(1)'。計算機不知道這一點,除非你告訴它。 –

+0

爲什麼你使用三個單獨的進口?你可以使用'從數學導入exp,pi,sin'。 –

回答

2

調用函數

g是一個函數。 print(g)從字面上打印該功能對象。 print(g(t))打印在t評價函數g。所以,你要這個的g後定義:

print(g(0)) # Print g evaluated at t=0 
print(g(1)) # Print g evaluated at t=1 

不要重複使用變量名

不要做g = a * b。將它重命名爲h。通過這樣做,你重新定義g意味着什麼在局部範圍內,可以得到不同的混淆。函數也是對象!

不要使用太多的中間變量

爲了您g功能,您使用共有3箇中間變量。通常,具有中間變量對於可讀性是有用的。在這裏,這是沒有必要:

def g(t): 
    return exp(-t) * sin(pi * t) 

(這使得類似的任務更加反正...)

+1

@ user8673326:除了HyperNeutrino對分配'G = A * B',你可能只是想用'返回* B',而不是一個名字都曾經賦予這個值註釋。 –

+0

@ZachGates這是真的;無論如何,我想重寫整個'g'函數:P我會加入它,謝謝你提醒我 – HyperNeutrino

0

如果你想在將來調用函數多次,你可以把你的論點成列表,這樣做:

for arg in [0, 1]: 
    print(g(arg)) 

此外,您可以直接返回值,而無需重新分配給g

def g(t): 
    a = exp(-t) 
    b = sin(pi*t) 
    return a*b 
0

Python使用的元組從一個函數返回多個值:

def two_vals(): 
    return 11,22 

>>> two_vals() 
(11, 22) 

您可以使用元組擴展到多個值分配給多個命名值:

>>> g1, g2=two_vals() 
>>> g1 
11 
>>> g2 
22 

所以。重寫你的函數,使它計算出兩個值。兩者都返回(如列表,元組,字典,無論數據結構),你有你的兩個值進行打印。

然而,爲了完成這個任務,你可能只是叫g兩次並放入一個字符串打印:

def g(t): 
    a = exp(-t) 
    b = sin(pi*t) 
    g = a*b 
    return g 

def both_g_str(): 
    return "g(0): {}, g(1): {}".format(g(0), g(1))