Редактор Visual Studio Code, интерпретатор Python и встроенный инструмент отладки
До сих пор все упражнения этого курса выполнялись прямо на страницах курса во встроенных окнах редактора. Программирование в браузере очень подходит для самых первых шагов в программировании, но теперь пора начать использовать отдельный редактор, специально созданный для программирования.
Существуют десятки разных редакторов, подходящих для программирования. В этом курсе мы будем использовать редактор Visual Studio Code, который в последние годы становится все популярнее.
Установите редактор Visual Studio Code на свой компьютер. Возможно, вам также понадобится установить Python и плагин Visual Studio Code для Python. Вам также понадобится плагин TMC, который будет запускать тесты, связанные с упражнениями. В плагине TMC выберите MOOC как организацию и Python Programming 2026 как курс.
Вот инструкция по установке и запуску всего этого. Прочитайте инструкции по работе над упражнениями и их отправке, а затем выполните задание ниже:
Выполнение кода
В Visual Studio Code проще всего выполнить код, нажав на треугольник в правом верхнем углу. Иногда случается, что какая-то программа остается работать в фоне: возможно, она ждет ввода от пользователя или застряла в бесконечном цикле, а вы этого не заметили. Вы можете обнаружить это только при попытке выполнить следующую программу, которая просто не запускается, потому что предыдущее выполнение все еще занимает ресурсы. Быстрое исправление - нажать клавиши Control+C одновременно; это останавливает выполнение любого текущего процесса. После этого следующая программа должна запуститься нормально.
Интерактивный интерпретатор Python
Один из самых важных инструментов любого Python-программиста - интерактивный интерпретатор Python.
Запуск интерпретатора может зависеть от вашей платформы. В Linux или Mac можно ввести python3 в терминале. В Windows команда в командной строке может быть python. Запуск интерпретатора на Mac выглядит так:
Также можно запустить интерпретатор внутри Visual Studio Code. Сначала нужно выполнить программу, нажав на треугольник. Это должно открыть раздел Terminal на экране, где теперь можно ввести python3 (или python):
Можно также попробовать браузерный интерпретатор Python, например https://www.python.org/shell/.
Интерпретатор - это способ выполнять код Python строка за строкой сразу после того, как вы его написали. Когда вы пишете строку кода и нажимаете Enter, интерпретатор сразу выполняет код и показывает результаты:
Любой код Python, который можно написать в файле, можно написать и в интерпретаторе. Вы даже можете присваивать переменные и определять методы:
>>> t = [1,2,3,4,5]
>>> for number in t:
... print(number)
...
1
2
3
4
5
>>> def absolute_value(number):
... if number<0:
... number = -number
... return number
...
>>> x = 10
>>> y = -7
>>> absolute_value(number)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'number' is not defined
>>> absolute_value(x)
10
>>> absolute_value(y)
7
>>>Интерпретатор лучше всего подходит для небольших проверок. Например, можно пробовать функции и методы или проверять, существуют ли они вообще:
>>> "TextYteXt".toupper()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'toupper'
>>> "TextYteXt".upper()
'TEXTYTEXT'
>>>Если вам нужен метод и вы почти помните его имя, иногда быстрее пропустить Google и использовать функцию dir в интерпретаторе. Она сообщает, какие методы доступны для данного объекта:
>>> dir("this is a string")
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__',
'__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find',
'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit',
'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join',
'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust','rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase',
'title', 'translate', 'upper', 'zfill']Как видно выше, у строк Python доступно много методов. На этом этапе, возможно, лучше игнорировать методы, в названиях которых есть символы подчеркивания, но остальные вполне могут оказаться полезными. С некоторыми из них можно разобраться, просто попробовав их, а остальные можно поискать в интернете.
У списков Python методов не так много:
>>> dir([])
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__',
'__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__',
'__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__',
'__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop',
'remove', 'reverse', 'sort']
>>>Попробуем некоторые из них; reverse и clear выглядят многообещающе:
>>> numbers = [1,2,3,4,5]
>>> numbers.reverse()
>>> numbers
[5, 4, 3, 2, 1]
>>> numbers.clear()
>>> numbers
[]Как видите, эти методы делают примерно то, чего можно ожидать по их названиям.
Обратите внимание, что интерпретатор ничего не выводит, когда вы запускаете команду numbers.reverse(). Это потому, что интерпретатор выводит что-то только если строка кода имеет значение. Метод reverse() здесь не возвращает никакого значения.
В примере выше мы вывели значение списка numbers, просто набрав имя переменной. На самом деле в интерпретаторе редко нужно явно вводить команды print. Но если хотите, вы можете их использовать.
Не забудьте закрыть интерпретатор, когда закончите. Команды quit() или exit() закроют его, как и сочетание клавиш Control+D (Linux/Mac) или Control+Z (Windows). Это особенно важно в Visual Studio Code, потому что попытка выполнить другую программу Python, пока интерпретатор все еще работает, приводит к довольно непонятному сообщению об ошибке:
Встроенный отладчик
Мы уже потратили немало времени и усилий на развитие навыков отладки, в основном через отладочную печать. В редакторе Visual Studio Code есть еще один инструмент: встроенный визуальный отладчик.
Чтобы начать отладку, сначала нужно определить точку останова в коде. Точка останова - это место в программе, где отладчик приостанавливает выполнение. Точку останова можно установить, щелкнув по левому краю любой строки программы.
Следующий пример - немного ошибочная попытка решить упражнение The sum of consecutive numbers из предыдущей части. На строке 5 установлена точка останова:
После установки точки останова выберите Start debugging в меню Run. Откроется список вариантов, где нужно выбрать Python File:
Это запускает отладчик, который выполняет ваш код как обычно, пока выполнение не достигнет точки останова и не приостановится. Если ваш код спрашивает ввод, не забудьте ввести его в терминале:
Слева теперь находится представление Variables, которое содержит текущие значения всех переменных, активных в коде. Вы можете продолжать выполнение строка за строкой, нажимая на стрелку вниз, подписанную Step into.
На изображении ниже цикл в коде уже повторился несколько раз:
У отладчика есть вкладка Debug console, которая позволяет вычислять выражения с текущими значениями, сохраненными в переменных. Например, можно проверить значение булева выражения в условии цикла:
В код программы можно добавить несколько точек останова. Когда выполнение остановилось, его можно снова запустить, нажав на синий треугольник. Выполнение продолжится, пока не достигнет следующей точки останова.
Встроенный визуальный отладчик - хорошая альтернатива отладочным командам вывода. Вам решать, что вы будете ч аще использовать в будущем. У каждого программиста свои предпочтения, но всегда полезно попробовать разные варианты, прежде чем остановиться на каком-то одном решении.
Текущие баллы можно посмотреть в синем индикаторе в правом нижнем углу страницы.