Python з нуля · Тема 02 · Тест самоперевірки

Встановлення й перший запуск

Обери відповідь — і одразу побачиш пояснення. Помилитись тут корисніше, ніж на іспиті.

← до лекції
Відповіді0 / 7   правильних: 0
Питання 1 / 7

Ти щойно поставив Python 3.12, але команда python3 --version уперто показує 3.9. Що найімовірніше сталося?

Чому так. Оболонка не шукає «найновіший» Python — вона проходить теки зі списку PATH по черзі й запускає перший знайдений. Стара версія просто стоїть вище. Перевстановлення тут не допоможе: файли на місці, справа в порядку тек. Це рівно та ситуація, яку показує інтерактив «Куди дивиться оболонка».
Питання 2 / 7

Файл hello.py лежить у теці ~/projects. Термінал стоїть у ~/Downloads. Яка команда запустить файл, не змінюючи поточну теку?

Чому так. Відносний шлях рахується від поточної теки, тому спершу треба піднятися на рівень вище (..), а вже потім зайти в projects. Варіант projects/hello.py шукав би теку projects всередині Downloads — її там немає. А python3 hello.py дав би «canʼt open file» зі шляхом ~/Downloads/hello.py у повідомленні.
Питання 3 / 7

У файлі demo.py рівно два рядки: спершу «2 + 2», потім «print("готово")». Що з'явиться в терміналі після python3 demo.py?

Чому так. Вираз 2 + 2 у файлі обчислюється, але результат нікуди не йде: автоматично друкує значення тільки REPL. Файл мовчить, поки його не попросили print. Саме ця відмінність між режимами single і exec і показана в інтерактиві «REPL проти файлу».
Питання 4 / 7

У файлі десять рядків. Перший — коректний print, а в десятому забули закрити дужку. Що побачить читач після запуску?

Чому так. Граматику Python перевіряє для всього файлу до початку виконання. Не пройшов перевірку — не виконався жоден рядок. Порівняй із NameError: він виявляється вже під час роботи, тому рядки до нього встигають спрацювати. Побічна ознака: у SyntaxError немає шапки «Traceback (most recent call last)».
Питання 5 / 7

У REPL ти написав ім'я змінної й побачив 'Оля' — з лапками. А print(imya) показав Оля без лапок. Чому?

Чому так. repr показує запис, за яким обʼєкт можна відтворити в коді — для рядка це текст у лапках. print використовує str, тобто представлення для людини. Перевірити просто: len(repr("Оля")) дорівнює 5, а len("Оля") — 3. Лапки справді додані REPL, а не збережені у значенні. Число REPL покаже без жодних прикрас, бо для нього repr і str збігаються.
Питання 6 / 7

Чому досвідчені радять писати python3 -m pip install X замість короткого pip install X?

Чому так. У системі зазвичай кілька Python, а отже кілька команд pip, і гола команда бере ту, що трапиться першою в PATH. Звідси класична загадка «я ж встановив пакет, а імпорт не працює»: пакет ліг в один інтерпретатор, а код запускається іншим. Форма -m привʼязує pip до конкретного інтерпретатора й знімає питання.
Питання 7 / 7

Дві помилки виглядають схоже. Перша: «command not found: python3». Друга: «python3: can't open file ...». У чому принципова різниця?

Чому так. Перша помилка йде від оболонки: вона пройшла теки з PATH і не знайшла програми з такою назвою. Друга — від самого Python: він запустився й доповідає, що файлу за вказаною адресою немає (адреса надрукована прямо в повідомленні — читай її). Різні винуватці — різні ліки: у першому випадку лагодять PATH, у другому роблять cd і ls.