运行python程序不运行

时间:2013-06-11 17:10:28

标签: python python-2.7

我在编译器中打印程序时遇到问题,我没有收到任何错误消息,但程序没有运行。我真不明白为什么?

#1 USD = 0.7617 Euro
#1 Euro = 1.3128 USD

def currencyConvert():
    userChoice = raw_input ("Vad vill du konvertera? 1)USD -> Euro 2) Euro -> USD")
    if userChoice == "1":
        userUSD = input ("Hur mycket vill du konvertera ange i USD?")
        Euro = userUSD * 0.7617
        print "USD %0.2f", userUSD, "= %0.2f", Euro, "Euro"
    elif userChoice == "2":
        userEuro = input ("Hur mycket vill du konvertera ange i Euro?")
        USD = userEuro * 1.3128 
        print "%0.2f", userEuro, " Euro = USD %0.2f", USD
    else:
        print "error du angav fel val, försök igen ange val 1 eller 2"
        currencyConvert()

4 个答案:

答案 0 :(得分:6)

在文件末尾添加

if __name__ == '__main__':
    currencyConvert()

就自己而言,没有任何缩进。一旦脚本独立运行,这实际上将调用您已定义的过程。

答案 1 :(得分:3)

将此添加到程序的末尾:

if __name__ == '__main__':
    currencyConvert()

答案 2 :(得分:3)

在您的脚本结束时,只需添加以下内容:

if __name__ == '__main__':
    currencyConvert()

这意味着如果它是主要部分,它将是True。如果您不添加此if,则在将脚本作为模块导入时将调用您的函数。

然后使用python script.py调用您的脚本,例如。

答案 3 :(得分:1)

三个答案显示您使用if __name__ == '__main__':,但我没有看到他们解释您为何这样做。

当您使用.py运行python文件时,它会逐行执行文件中的每个语句。当然,没有缩进的python语句具有最高的范围。您可能会将它们视为“最重要”的线条。它们总是被执行,不像条件语句下面的行不会被评估为True

您没有看到您的函数被调用,因为您拥有的语句是def,这意味着def之后的所有缩进代码行都会跟return或与def处于同一缩进级别的代码行将被视为函数的定义,并且在调用该函数之前不会执行。 (换句话说,def只能执行函数

如果你写了这个,你会看到函数execute:

def currencyConvert():
    # your code here

currencyConvert()

但是,您看到其他用户告诉您使用if __name__ == '__main__':的原因是python import语句的行为。 import告诉程序执行导入模块中的每一行代码 - 这意味着如果您有上述代码,如果导入则执行 currencyConvert() 你的档案

解决此问题的方法是使用if __name__ == '__main__':条件,如果您的脚本是您正在运行的程序,则将放置您希望运行的所有代码,即调用的.py文件使用python或您在IDE中运行的文件。这告诉程序在if作为“主”模块运行时只执行{{1}}下面的代码。

有关详情,请参阅this question。在此期间,做其他三个人告诉你要做的事情来让你的程序运作:)