继续得到语法错误。我需要做什么?

时间:2012-11-02 04:52:17

标签: python function python-3.x arguments sum

我试图让我的函数接受两个参数,并返回它们的总和。我是以正确的方式来做这件事的吗?这就是我到目前为止所做的:

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 个答案:

答案 0 :(得分:4)

所以它看起来不错,但主要的问题是你实际上并没有调用你的函数:)一旦你得到你的两个数字,你就可以调用你的函数(你已经正确设置): / p>

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()

在这个阶段,不要过分担心它意味着什么,但是一旦你开始进入模块等有趣的东西,这是一个很好的习惯。)

答案 1 :(得分:0)

  1. print之后执行return sum函数不起作用,因为在返回返回值时,执行将退出范围,订单应该反转。

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

  3. 正确的代码应该是:

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

答案 2 :(得分: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()

我希望这可以按照您的要求运作。 问候, 阿尼尔

答案 3 :(得分: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