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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.