2014-09-03 1 views
-7

Я запускаю этот код с использованием Python 3.4.1, и он работает, но если я использую Python 2.7.8, это не поможет, почему?Программа не работает в Python 2.7.8, но работает в Python 3.4.1

i=1 
while i<10: 
    for x in(1,2,3,4,5,6,7,8,9): 
     print (i*x,'\t',end='') 
     if x==9: 
      print('\n') 
      i=i+1 
+6

Ваше название вопроса сильно отличается от вопроса - пожалуйста, исправьте его. Кроме того, добавление сообщения об ошибке, которое вы получите, будет чрезвычайно полезно –

+1

В Интернете так много мест, которые расскажут вам о различиях между Python 2.x и Python 3.x (https://docs.python.org/3.0/ whatsnew/3.0.html для начала). Прочитайте их. Если вы только начинаете с Python, начните с Python 3 и оставите Python 2 на данный момент. – Evert

+1

Ваш вопрос * название * отключен от темы; мы не можем помочь вам с «лучшим» выбором здесь. Однако название и орган вопросов не связаны друг с другом, но ваш вопрос не нуждается в подробностях, чтобы ответить, не догадываясь. ** Как ** сбой кода в Python 2? Что вы ожидали от этого? –

ответ

1

В самом деле, print функция в Python 3, но не Python 2. В Python 2, вы должны удалить () и end. В качестве альтернативы, вы можете добавить from __future__ import print_function в код в Python 2 использовать print как в Python 3.

1

Среди переломных изменений между версиями Python 2.x и 3.x, что print is a function - в 2.х это было a заявление. У вас есть два варианта, либо использование:

from __future__ import print_function 

в верхней части вашего сценария, чтобы использовать новую функцию в 2.x, или иметь отдельную версию 2.x со старым синтаксисом:

print '{0}\t'.format(i * x), # note trailing comma to suppress newline 

Быть намного проще, на мой взгляд.

Обратите внимание, что эквивалентно для утверждения 2.x print по умолчанию sep это единое пространство, поэтому наивная версия

print i * x, '\t', 

будет включать в себя дополнительное пространство перед вкладкой. Также обратите внимание, что ваша версия 3.x может быть несколько проще:

print(i * x, end='\t')