2012-11-02 3 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. делает print функции после return sum не будет работать, потому что при возврате возвращаемого значения, то выполнение будет выходить из сферы, заказы должны быть отменены.

  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

Вы написали неправильное кодирование Стиль Если вы хотите сделать что-то, используя метод суммирования, сделать это

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

Я надеюсь, что это сработает согласно вашему требованию. С уважением, 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 автоматически вернуть сумму, вы должны использовать return или print:

def my_sum(a, b): 
    return a + b 
Смежные вопросы