2012-11-02 51 views
0

我想让我的函数接受两个参数,并返回它们的总和。我是否以正确的方式去做这件事?这是我到目前为止有:不断收到语法错误。我需要做什么?

def my_sum(a, b): 
    sum = a + b 

def main(): 
    a = input(int("enter a number: ", a) 
    b = input(int("enter a number: ", b) 

    sum = a + b 

    return sum 
    print(" result: ", sum) 

main() 

回答

4

因此,它看起来不错,但主要的问题是,你实际上并没有调用你的函数:)一旦你得到你的两个号码,可以然后拨打电话到你的函数(您已正确设置):

def main(): 
    # When you assign variables here, make sure you are putting the int outside 
    # You also don't need to reference the variable twice 
    a = int(input("enter a number: ")) 
    b = int(input("enter a number: ")) 

    # Here is where your call goes (try to avoid using variable names that 
    # are the same as Python keywords, such as sum) 
    s = my_sum(a, b) 

    print(" result: ", s) 

现在,你需要做的另一件事情就是修改你的函数返回一个值。你已经差不多了 - 只需添加一个回报(注意,因为你只是返回两个数字的总和,你不必把它分配给一个变量):

def my_sum(a, b): 
    return a + b 

现在,这意味着,当您运行s = my_sum(a, b)时,您的函数将返回这两个数字的总和并将它们放入s,然后您可以按照您的要求打印。其他

一个次要的事情 - 当你使用你的设置(与def main(),等等),你平时怎么称呼它是这样的:

if __name__ == '__main__': 
    main() 

在这个阶段,不要太担心关于它是什么意思,但是一旦你开始进入模块等有趣的东西,进入它是一个好习惯。:)

0
  1. return sumprint功能将无法正常工作,因为返回一个返回值时,执行将退出范围,订单应该被逆转。

  2. 您的输入功能未正确实施。

正确的代码应该是:

def main(): 

    a = input("enter a number: ") 
    b = input("enter a number: ") 
    sum = a + b  
    print(" result: ", sum)  
    return sum 
+0

回滚编辑。这是用Python 3标记的。原文是正确的。 –

0

你写了错误的编码风格 如果你想要使用sum方法做一些比这样做

def my_sum(a, b): 
    sum = a + b 
    return sum 


def main(): 
    a = int(raw_input("enter a number: ")) 
    b = int(raw_input("enter a number: ")) 

    sum = my_sum(a,b) 
    print" result: ", sum 


main() 

我希望这将按照您的要求工作。 Regards, Anil

0

我不确定你在那里定义的第一个函数的目的(my_sum)。但是,main也有一些错误。 return函数总是退出它所在的函数,并缩小到更高级别的范围。这与break非常相似,只是它也返回一个值。另外,当您询问用户输入时,您的语法不正确。它应该是:

def main(): 
    a = int(raw_input("Enter a number: ")) 
    b = int(raw_input("Enter a number: ")) 

    return "Result" + (a+b) 

main() 

另外,如果你想my_sum自动返回的总和,你应该使用returnprint

def my_sum(a, b): 
    return a + b 
相关问题