2013-10-06 3 views
-4
import math 
r_out = int(input("Insert rings outside raadius: ")) 
r_in = int(input("Insert rings inner raadius: ")) 

# ring size calculating function 
def areaOfRing(r_out, r_in): 
    r_outs = (r_out**2)*math.pi 
    r_ins = (r_in**2)*math.pi 
    ring_size = r_outs - r_ins 
    return ring_size 

ring_size = areaOfRing 
print('Ring size is = ',ring_size) 

Я попытался распечатать ответ так, как он должен делать, когда вы вставляете 2 числа внутрь. После того, как я сделал это, я получил NameError. Да. Я пробовал ring_size = areaOfRing(), и ring_size = areaOfRing(r_out, r_in) дал мне обе ошибки.Python: print NameError

(Примечание. После перезапуска программы он начал работать с помощью @ Martijn).

+0

Я сделал одну поправку к вашему коду, которая в противном случае дала бы вам синтаксическую ошибку. Что такое ** полное сообщение об ошибке **, включая трассировку? Пожалуйста, отредактируйте свой вопрос, чтобы добавить это. –

+1

Помимо того, что вы возвращаете функцию вместо ее запуска на введенные пользователем данные, это работает нормально. Я не вижу ошибок. – yuvi

+0

@yuvi: * при условии * вы передаете аргументы 'r_out' и' r_in' вызова функции конечно. –

ответ

0

Вы должны поставить arguments при вызове функции.

import math 


# ring size calculating function 
def areaOfRing(r_out, r_in): 
    r_outs = (r_out**2)*math.pi 
    r_ins = (r_in**2)*math.pi 
    ring_size = r_outs - r_ins 
    return ring_size 

r_out = int(input("Insert rings outside raadius: ")) 
r_in = int(input("Insert rings inner raadius: ")) 

ring_size = areaOfRing(r_out, r_in) 
print('Ring size is = ',ring_size) 
+0

Не используйте ввод, используйте raw_input (если только в python 3.x) – yuvi

+0

Oh! Большое спасибо, но .. вы забыли импортировать математику В прошлый раз я поставил ring_size = areaOfRing (r_out, r_in), он дал мне wierd ошибка. Лук. – LabKitty

+0

@LabKitty: Это потому, что вы печатаете * объект функции *, вам нужно вызвать его, чтобы получить результат. –

0

Вы не звонит функцию должным образом, выполните следующие действия:

ring_size = areaOfRing(r_out, r_in) 
+0

Это не объясняет 'NameError'. –

+0

Но исправить проблему –

+0

Fix ** what ** problem? Конечно, это делает код, размещенный здесь, но это не **, о котором спрашивает OP. –