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

4 回答 4

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)

现在,您必须做的另一件事是修改您的函数以返回一个值。您已经快到了 - 只需添加一个 return(请注意,由于您只是返回两个数字的总和,因此您不必将其分配给变量):

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

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

另一件小事 - 当您使用您的设置时(使用def main()等),您通常希望这样称呼它:

if __name__ == '__main__':
    main()

在这个阶段,不要太在意这意味着什么,但是一旦你开始接触模块等有趣的东西,这是一个好习惯。:)

于 2012-11-02T05:08:07.150 回答
0
  1. 执行一个print函数之后return sum将不起作用,因为当返回一个返回值时,执行将退出范围,顺序应该颠倒。

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

正确的代码应该是:

def main():

    a = input("enter a number: ")
    b = input("enter a number: ")
    sum = a + b    
    print(" result: ", sum)    
    return sum
于 2012-11-02T05:01:06.350 回答
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()

我希望这将按照您的要求工作。问候, 阿尼尔

于 2012-11-02T05:15:16.823 回答
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自动返回总和,您应该使用returnor print

def my_sum(a, b):
    return a + b
于 2012-11-02T05:21:04.807 回答