2016-02-11 3 views
1

Я совершенно новый для python. Я работаю над курсами по Codecademy. В настоящее время я также использую Pydev/LiClipse.Ошибка синтаксиса Python print len ​​()

В одном из первых уроков на Codecademy он хочет, чтобы вы установили переменный попугай в «Norwegian Blue». Затем он хочет, чтобы вы напечатали длину попугая, используя метод len string. Это очень просто, и я получил ответ сразу с:

parrot = "Norwegian Blue" 
print len(parrot) 

Когда я помещал тот же самый код в LiClipse он вернулся:

SyntaxError: недопустимый синтаксис

Он работает в LiClipse когда это Я изменил его:

печати (Len (попугай))

Может кто-то дайте мне знать, почему это работает в Codecademy, но не в LiClipse, и почему добавив скобки зафиксировали это?

+0

Python 2 синтаксиса по сравнению с синтаксисом Python 3 –

+0

Изменения 'печати 'statement to' print (len (parrot)) 'и он должен работать как в Python 2, так и в Python 3 (последний требует скобок, первый - нет). –

ответ

1

Похоже, что Pydev/LiClipse использует python 3, в то время как Codeacademy использует python 2.7 или другую старую версию. Одно из изменений, внесенных при питон обновляется с 2,7 до 3 использовал печать, как это:

print "stuff to be printed" 

к:

print("stuff to be printed") 
1

Он работал в CodeAcademy, потому что их переводчик является Python 2.7, где вы Ждут» t нужна скобка, потому что print был заявлением. В Python 3.0+, print требует скобок, потому что это функция.

Более подробную информацию о том, что отличается от Python 2.7 и 3.0+ можно найти здесь:

What's New In Python 3.0

Некоторые из образцов различий с печатью на странице выше:

Old: print "The answer is", 2*2 
New: print("The answer is", 2*2) 

Old: print x,   # Trailing comma suppresses newline 
New: print(x, end=" ") # Appends a space instead of a newline 

Old: print    # Prints a newline 
New: print()   # You must call the function! 

Это хорошо знать различия между обоими, в случае, если вы работаете с устаревшими системами, а также в сравнении с вашей частной средой. В Python 2.7 и ниже работает print(); однако, опускание () s не работает в Python 3.0+, поэтому лучше привыкнуть использовать их для печати.

Ожидается, что срок службы Python 2.7 ожидается в 2020 году, поэтому у вас будет много времени.

1

В версии Python 3 для печати требуются скобки. CodeAcademy, вероятно, использует Python 2, и это выглядит, как вы используете Python 3.

https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function

Из документов

Print Is A Function The print statement has been replaced with a print() function, with keyword arguments to replace most of the special syntax of the old print statement (PEP 3105). Examples:

1

Вы должны принять во внимание версию, в которой вы работаете.

В Python 2 ваш код будет выглядеть следующим образом:

parrot = "Norwegian Blue" 
print len(parrot) 

В Python 3 ваш код будет выглядеть следующим образом:

parrot = "Norwegian Blue" 
print (len(parrot)) 
Смежные вопросы