2017-09-16 87 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定义。