LINUX.ORG.RU

python NameError: name 'n' is not defined


0

0

питон увидел 15 минут назад ....

#!/usr/bin/python

def fib(n):
""" Print a Fibonacci series up to n. """
a , b = 0 , 1
while b < n :
print b,
a , b = b , a + b

fib (2000)

вот такой вот код

./fib.py
Traceback (most recent call last):
File "./fib.py", line 6, in ?
while b < n :
NameError: name 'n' is not defined

как мне описать n ? я ожидал что переменные не нуждаются в описании и тип назначается автоматом , но дело видно и не в этом .

вообщем ,что мне надо сделать чтобы код заработал ?

★★

у меня вашь пример работает =)

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

asgard
()
Ответ на: комментарий от j262

А в интерактивном режиме работает? Так есть:

>>> def fib(n):
...     """ Print a Fibonacci series up to n."""
...     a,b = 0,1
...     while b < n:
...             print b,
...             a,b = b , a+b
... 
>>> fib(2000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

anonymous
()
Ответ на: комментарий от anonymous

нет
>>> while b < n :
... print b ,
... a,b= b , a+b
...
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'n' is not defined

j262 ★★
() автор топика
Ответ на: комментарий от j262

Ты не правильно пишешь:

">>>" начало, а что бы было 'n' началом должно быть >>> def fib(n)

Покажи как ты набираешь от начало до конца.

anonymous
()
Ответ на: комментарий от anonymous

В общем, у меня есть подозрения, что у тебя присутствует лишняя (а точнее пустая) строка. :)

anonymous
()
Ответ на: комментарий от anonymous

#!/usr/bin/python
def fib ( n ) :
        """ Print a Fibonacci series up to n. """
        a , b = 0 , 1
        while b < n :
                print b,
                a , b = b , a + b
fib ( 2000 )


вообщем так все заработало , все дело было в отступах.

спасибо.

j262 ★★
() автор топика
Ответ на: комментарий от j262

Читайте PEP8 до просветления, ибо сейчас форматирование кода просто ужасно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.