2014-12-08 4 views
0

Я пытаюсь просто напечатать текст в Canopy, и вот что происходит.Почему функция Canopy Python3 IDE возвращает кавычки вокруг текста при использовании функции печати?

Вход:

k = 3 
Print ('Candidate =',k) 

Выход:

('Candidate =', 3) 

Почему скобка и котировки на выходе? Я просто хочу, чтобы он печатал: Candidate = 3

+0

Почему ты просто unaccept моего ответа ? – poke

+0

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

ответ

0

В Python 2, print есть инструкция. В качестве утверждений в скобках указаны , а не часть синтаксиса для него (как и для return). Поэтому, когда Python видит print (a, b), он будет разбирать часть (a, b) отдельно. И для синтаксического анализатора, это кортеж:

value = ('Candidate =', k) 
print value 

При печати кортежа, он будет печатать круглые скобки, так и внутри, список всех значений, с их значением repr. И значение магнезии строковое, является enquoted:

>>> print repr('Candidate =') 
'Candidate =' 

Таким образом, чтобы получить результат, который вы хотите, вы должны пройти 'Candidate =' и k в заявлении для печати, не помещая его в кортеже. Так что вам просто нужно удалить скобки:

>>> print 'Candidate =', k 
Candidate = 3 

Обрати внимание, что в Python 3, print стал функцией, так что на самом деле требует круглых скобок и исходный код работает, как вы хотели. Если вы хотите отпечаток функцию в Python 2 (вместо печати, являющееся заявление), вы можете поместить следующую строку в верхней части коды, чтобы сделать это так:

from __future__ import print_function 
+0

Canopy, похоже, поставляется со своей собственной средой Python 2, поэтому он не использует то, что вы установили. И согласно [этому ответу] (http://stackoverflow.com/questions/16142764/python-3-3-in-enthought-canopy), похоже, что поддержка Python 3 в Canopy не поддерживается. – poke

+0

Точно. Canopy * - это полный научный дистрибутив Python 2.7, который включает в себя IDE. Это не IDE-установка в ваш существующий дистрибутив Python, будь то Python 2.x или 3.x –