Неожиданный вывод с использованием печати - PullRequest
3 голосов
/ 02 ноября 2019

Я использую Python 3.6.8. на Ubuntu Linux 18.04

Я начал учебник с простых операторов печати. Код задает вопрос, требующий ввода, затем выводит ответ.

Я продублировал последнюю строку в коде, поскольку это иллюстрирует проблему

#!/bin/python3

born = input('What year were you born?')
born = int(born)
age = 2025 - born
print(age)
print('In the year 2025 you will be', age, 'years old')
print 'In the year 2025 you will be', age, 'years old'

Я ожидаю результат от первогораспечатать заявление быть;В 2025 году вам будет 75 лет

, а второй должен дать синтаксическую ошибку (так как это Python 3 и скобок нет)

Что я получу, это;

(«В 2025 году вам будет», 75 лет, «лет»). В 2025 году вам будет 75 лет

Где это пойдет не так?

Ответы [ 2 ]

1 голос
/ 02 ноября 2019

Запустите python или python3 --version и посмотрите, что вы установили, ваш скрипт будет работать с любой версией.
Печать с круглыми скобками работает на 3 + , в то время как без будет работать на 2 .

0 голосов
/ 03 ноября 2019

Глядя на все ваши предложения, нашёл ответ. Я не знал, что оба python2 и python3 существуют на машине. Запуск python2 явно не приводит к ошибкам. Запуск python3 явно приводит к ожидаемой синтаксической ошибке.

alex@Desktop:~/Python$ python3 -V
Python 3.6.8
alex@Desktop:~/Python$ python -V
Python 2.7.15+
alex@Desktop:~/Python$ python test.py
What year were you born?1972
53
('In the year 2025 you will be', 53, 'years old')
In the year 2025 you will be 53 years old
alex@Desktop:~/Python$ python3 test.py
  File "test.py", line 12
    print 'In the year 2025 you will be', age, 'years old'
                                       ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('In the year 2025 you will be', age, 'years old')?

Спасибо всем респондентам за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...