2017-09-16 111 views
0

PYTHON:試圖計算擺錘在不同行星上擺動所花費的時間,我對此非常感興趣,所以可能有一個簡單的解決方案:找不到「if/else」語句

def main(): 
    print('Period of a pendulum') 
    Earth_gravity = 9.8 
    Mars_gravity = 3.7263 
    Jupiter_gravity = 23.12 
    print('  ') 
    pen = float(input('How long is the pendulum (m)? ')) 

if pen < 0: 
    print('illegal length, length set to 1') 
else: 
    print('  ') 
main() 

我想要做的是,如果輸入的值爲負值,將其設置爲「1」並顯示消息「非法長度,長度設置爲1」。如果它是一個正數,那麼我會讓它做等式來找出鐘擺的週期。我收到「if pen < 0: builtins.NameError:name'pen'未定義的語法錯誤消息」謝謝!

+0

將聲明放在main() –

+4

之後您的縮進關閉。 'if'和'else'需要像函數體的其餘部分一樣縮進。 – interjay

+0

@MauricioCortazar不會幫助,'pen'是一個局部變量。 –

回答

2
def main(): 
    print('Period of a pendulum') 
    Earth_gravity = 9.8 
    Mars_gravity = 3.7263 
    Jupiter_gravity = 23.12 
    print('  ') 
    pen = float(input('How long is the pendulum (m)? ')) 
    if pen < 0: 
     print('illegal length, length set to 1') 
    else: 
     print('  ') 

main() 

嘗試這種情況:筆變量是功能外因此它不是入店在if語句

+0

哇謝謝你的答案,它的工作 – Patsfan8118

+0

只需檢查勾號如果你的查詢已解決,如果你明白你的錯誤:) –

0

首先定義在其中pen定義的方法:

def main(): 
    print('Period of a pendulum') 
    Earth_gravity = 9.8 
    Mars_gravity = 3.7263 
    Jupiter_gravity = 23.12 
    print('  ') 
    pen = float(input('How long is the pendulum (m)? ')) 

但根據縮進,您現在試圖在main之外使用pen方法:

if pen < 0: 
    print('illegal length, length set to 1') 
else: 
    print('  ') 
main() 

您可以將if/else轉換爲main方法或完全刪除main定義。