2013-03-31 110 views
-2

*>反覆循環,提示用戶選擇一個選項,然後在運行/請幫我蟒蛇循環if語句

相應的命令和重複,直到用戶選擇退出。 選項爲:0退出程序; 1來計算 一個特定值的流量; 2計算雷諾數,並繪製預期流量。如果用戶選擇任何其他選項, 該程序必須不斷要求他們選擇一個有效值,直到他們 這樣做。 *

而我< = 3:

i=input (" Please enter a number between 0-3:") 

if i==0: 
    print " program will exit." 
    break 

elif i==1: 
    print (" To calculate flow rate please input these values:") 
    pressure = input (" Please enter pressure drop in pascals: ") 
    radius = input (" Please enter radius in m: ") 
    viscosity = input (" Please enter viscosity of liquid in Pa.s: ") 
    Length= input (" Please enter length in m: ") 
    Flowrate = (pressure * pi *(radius**4))/ (8 * viscosity * Length) 
    print " Therefore, flow rate is " , Flowrate 
    print " Program will run again for user to calculate flow rate..." 


elif i==2: 
    print (" To calculate reynolds number please input these values:") 
    q=input ("Please enter a value for flow rate in m^3/s") 
    radius = input (" Please enter radius in m: ") 
    density=input (" Please enter density in kg/m^3 : ") 
    viscosity = input (" Please enter viscosity of liquid in Pa.s: ") 
    Rno=(2*q*radius*density)/(viscosity*pi*radius*radius) 
elif i==3: 
    print " not implemented yet." 
else: 
    print " Program will start again!"       





    ***new edited post*** 

回答

4

一個錯誤,我可以發現是在這裏:

Rno=(2*q*radius*density)/(viscosity*pi*radius*radius 

您的代碼缺少一個右括號。

另一個(邏輯)錯誤是input()調用應該位於循環內部,不在其外部。

+1

最近,很多人都錯過了'''在行尾。這個世界發生了一些奇怪的事情。 – Maroun

0

你說,用戶進入0後,你的程序應該退出,所以我會改變這樣的:

if i==0 : 
    print " program will exit." 
    i=4 

這樣:

if i==0 : 
    print " program will exit." 
    break 

而且也,你也不需要在第二個if中將0指定爲i,因爲i已經等於此塊中的0,因此您可以安全地刪除該行代碼。

+0

謝謝大家! :OOO我沒有期待如此快速的迴應。 – user2228719

1

我通常人們制定出這些各種各樣的程序,如

while(True): 
    i = input("<Prompt>") 

    if(i==1): 
     # Do something 

    elif(i==2): 
     # Do something else 

    #... any additional elifs 

    else: 
     break 

或者這樣

while(True): 
    i = input("<Prompt>") 

    if(i==1): 
     # Do something 

    elif(i==2): 
     # Do something else 

    #... any additional elifs 

    elif(i==10):  # Assuming 10 here is the "exit" option 
     break 

    else: 
     print("Unknown selection, please try again") 

第二個版本要求用戶明確選擇,而第一個版本的「退出」選項將在選擇未知/未定義選項時退出。

+0

所以即時通訊意味着我有= ....在循環中,但它的說變量沒有定義。 – user2228719

+0

@ user2228719:是的,否則您只會調用一次,而不會再次提示用戶。 – jedwards

+0

@ user2228719:只要你把'i = ...'放在你使用它之前總會被調用的地方,你就不應該得到那個錯誤。確保這行是你'while循環中的第一行。 – jedwards