2017-05-16 72 views
-3

在這裏完成新手,開始學習Python只是幾天後回到我身邊。我創建了2個函數,一個用來計算彈丸的最大射程,另一個用來計算射彈的最大高度。如何讓用戶在2個選項中進行選擇?

現在我想寫一個代碼讓用戶在上面兩個函數中進行選擇。

我該怎麼做?

這裏有2個功能: 對於範圍

from math import sin 
from math import pi 

u = raw_input("Velocity of Projection?") 
angle = raw_input("Angle of Projection?") 

def max_range(u, angle): 
    if type(u) == int and type(angle) == int and u>0 and angle>0: 
    return " Maximum range of the projectile is " + 
str((u**2)*sin(pi/180*angle*2)*0.1) 
    else: 
    return "Invalid parameters!" 

print max_range(u, angle) 

-------------------------- 
FOR HEIGHT 

from math import sin 
from math import pi 

u = raw_input("Velocity of Projection?") 
angle = raw_input("Angle of Projection?") 

def max_height(u, angle): 
    if type(u) == int and type(angle) == int and u>0 and angle>0: 
     return "Maximum height reached by the projectile is " + 
str((u**2)*(sin(pi/180*angle))**2/20) 
    else: 
     return "Invalid parameters!"   

print max_height(u, angle) 
+0

對於兩個選項,只需使用'if ... else'。 –

+0

我從來不明白某些downvotes。操作程序通知這是一個完整的新手,顯示他/她已經嘗試了什麼,並詢問如何將這兩個代碼放在一起。對我而言,即使它非常基本,看起來也是一個完全合法的問題。 –

+0

我做到了。我創建了另一個有1個參數的函數,用戶可以輸入它。如果用戶選擇「範圍」,它應該返回範圍的功能。如果用戶選擇「高度」,它應該返回高度的功能。這不起作用,因爲它運行了所有的3個功能。 – blizzy

回答

0

如的Martijn Pieters的建議,你可以使用一個if...else來決定哪些函數來執行。

當然,您需要一種告訴程序執行哪個選項的方法,在我的例子中,用戶被要求輸入數字選項。

from math import sin 
from math import pi 

def max_range(u, angle): 
    # code that computes max range 

def max_height(u, angle): 
    # code that computes max height 

def main(): 

    u = raw_input("Velocity of Projection?") 
    angle = raw_input("Angle of Projection?") 

    operation = raw_input("Which function to execute? 1: max_range, 2: max_height") 

    if operation == 1: 
     max_range(u, angle) 
    elif operation == 2: 
     max_height(u, angle) 
    else: 
     print('Invalid choice') 

if __name__ == '__main__': 
    main() 
相關問題