2015-01-14 2 views
0

Я пытаюсь написать основной алгоритм сложения и он дает мне ошибку, которая говорит: Traceback (самый последний вызов последнего): Traceback (самый последний вызов последнего): Файл «решение .py», строка 6, в печати C NameError: название„C“не definede я стер первый оператор печати, и это фиксируется этот вопрос, но теперь он говорит:«a'is не определеннаписания базового алгоритма сложения

def solveMeFirst(a,b): 

    a = int(raw_input('A=')) 
    b = int(raw_input('B=')) 
    C = a+b 
    print C 
res = solveMeFirst(num1,num2) 
print res 
+2

C выглядит адекватно определены для меня, по крайней мере, в этой функции. – Makoto

+0

Исходный код помещает 'print C' вне функции (см. [Источник] (http://stackoverflow.com/revisions/0953456b-1251-466b-9b06-f37b9934a35c/view-source)), что вызывает ошибку' C не определено'; редактирование случайно отступом. – dazedconfused

+1

Итак, это случай как опечатки, так и редактора, делающих чрезмерно усердную работу, а? – Makoto

ответ

0
  1. Получите num1 и num2 от пользователя по методу raw_input.
  2. Позвоните в вашу функцию.
  3. Возврат Значение добавочного значения из функции.
  4. Получить значение в res и распечатать.

код: -

def solveMeFirst(a,b): 
    C = a+b 
    return C 

num1 = int(raw_input('A=')) 
num2 = int(raw_input('B=')) 
res = solveMeFirst(num1,num2) 
print res 

Выход:

$ python test.py 
A=2 
B=2 
4 
+1

Это не объясняет, почему он считает, что 'C' не определен. – Makoto

+0

Да, правильно, но сообщение отсутствовало. Я просто предложил предложение, чтобы он мог понять, что неправильно в коде. –

+2

Во-первых, тот факт, что он ничего не возвращал (вместо этого он печатал), не то, что он говорил, был неправильным. Во-вторых, если у вопроса нет деталей, зачем беспокоиться об этом, пока у вас не будет всего изображения? – Makoto

0
def solveMeFirst(): 

    a = int(raw_input('A=')) 
    b = int(raw_input('B=')) 
    C = a+b 
    return C     # you need to return value 

res = solveMeFirst() #no need of argument 
print res 

выход:

A=10 
B=34 
44 
+0

любая причина ??? для downvote – Hackaholic

+1

Даже без оператора return код уже работает.Что здесь вводит в заблуждение, так это то, что он считает, что 'C' не определен. – Makoto

+0

Я пробовал ваш код, и он дает мне выход «A = B = 5», а не только 5 – sanster9292

2

Я получаю NameError: имя 'num1' не определен

Что имеет смысл, поскольку num1 и num2 не определены нигде.

num1 = 1 
num2 = 2 
def solveMeFirst(a,b): 
    a = int(raw_input('A=')) 
    b = int(raw_input('B=')) 
    C = a+b 
    print C 
res = solveMeFirst(num1,num2) 
print res 

Работы.

res is None, потому что вы не возвращаете значения из solveMeFirst.

Если вы попытаетесь напечатать C вне функции solveMeFirst, он будет неопределенным, поскольку он определен только внутри функции.

Я думаю, что вы пытаетесь сделать, это следующее:

num1 = int(raw_input('A=')) 
num2 = int(raw_input('B=')) 
def solveMeFirst(a,b): 
    return a+b 
res = solveMeFirst(num1,num2) 
print res 
+0

Сначала я читал ответ слишком быстро, но это, вероятно, самое чистое решение. – Makoto

Смежные вопросы