Запуск определенного кода в Python дает мне ошибку - PullRequest
0 голосов
/ 05 декабря 2018

Я новичок в языке Python.Я видел вопрос StackOverflow о том, как запустить специфичный для версии код в скрипте Python.Я написал следующий код:

import sys

mylist = []
mylist.append(1)
mylist.append(2)
mylist.append(3)

str=""

if sys.version_info[0] == 2:
    print("version 2\n")
    for x in mylist:
        str += "{}".format(x)
    print(str)
else:
    print("version 3 or above\n")
    for x in mylist:
        print(x, end='')
    print()

Но этот код выдает мне ошибку следующим образом -

Файл "test.py", строка 18 print (x, end ='') SyntaxError: неверный синтаксис

Если я запускаю этот код в Python2, он выдает ошибку в остальной части.Почему он входит в блок else?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

SyntaxError происходит до того, как ваш код запускается, python проверит все строки кодов и найдет синтаксические проблемы, основываясь на версии интерпретатора python, которая не подходит для python2.x, поэтому вы получаете эту ошибку(Не входит в блок, потому что ваш код еще не запускается) решение использует __future__ и импортирует print_function.

0 голосов
/ 05 декабря 2018

Ошибка во время компиляции, а не во время выполнения программы.Компилятор попытается скомпилировать оба блока if..else в python 2. Компилятор Python2 не поддерживает данный синтаксис print(x, end='').

...