为什么这段代码不执行?

时间:2016-10-14 01:26:56

标签: python python-2.7

找不到语法错误或编译错误。为什么这个程序不执行?如果没有编译错误,我无法理解为什么这个程序没有运行。在下面的代码中,逻辑上可能出现什么问题? 我可以在此代码中添加哪些内容以使其运行和交互?

def main():
    print "Checking platform...\r\r\r"
    platform = systemdetails()

def systemdetails():
    print "Hello! Welcome to the auto-commander"
    print "Please enter the platform specific number to automate."
    platforminput = integer(input ("1. Cisco       2. Linux/Unix     3. Juniper       4. VMware vSphere/NSX \n:"))
    if platforminput ==1:
        platform='cisco_ios'
    elif platforminput ==2:
        platform='linux'
    elif platforminput ==3:
        platform='juniper'
    elif platforminput ==4:
        platform='vmware'
    else:
        print "Commander has to repeat the question...\n\n"
        systemdetails()
    return platform

2 个答案:

答案 0 :(得分:5)

您需要调用主要功能。仍然可以重现您的问题的最小示例是

def main():
    print "Hello World!"

要使其发挥作用,您需要致电主

def main():
    print "Hello World!"

main()

一般来说,如果你没有被导入,你只想打电话给main,这可以这样做

def main():
    print "Hello World!"

if __name__ == '__main__':
    main()

答案 1 :(得分:3)

您需要拨打main()功能。

要么像这样:

main()

或者像这样:

if __name__ == "__main__":
    main()

在第二个示例中,只有在直接运行程序而不是导入模块并单独运行函数时,才会调用main()。这样,您可以导入模块的功能,以便在导入时不使用main()单独使用。