Мечтаете освоить программирование на Python, но не знаете, с чего начать? Не волнуйтесь. Thonny станет вашим гидом на протяжении всего пути обучения  —  даже Python устанавливать не придется.

Новичкам бывает непросто настроить среду, а общение с опытными разработчиками может еще больше усложнить ситуацию. На самом ли деле VIM такой хороший редактор для начинающих? 

Все, что нужно новичку,  —  это писать код, видеть, что происходит, и получать обратную связь. Всем приходится искать и устранять ошибки в коде, но с помощью простого и в тоже время эффективного визуального инструмента научиться этому можно гораздо быстрее. 

Thonny  —  это простая IDE, разработанная для начинающих. Она предоставляет встроенный отладчик, показывающий, почему не работает код, и ассистента, указывающего на ошибки и предлагающего возможные способы решения. В общем, это идеальная IDE для обучения. 

Настройка Thonny 

Настроить Thonny не составляет труда. На момент написания статьи Thonny поставляется со встроенным Python 3.7. 

Для начала войдем в Thonny и в верхней части страницы найдем установщика для OS:

Скачивание установщика в верней части страницы 

Следуем инструкциям при установке и запускаем IDE по мере готовности: 

Установка Thonny 

Thonny приветствует нас активными элементами UI, скорее всего, ими будут редактор и оболочка. Однако вы всегда можете изменить элементы, отображающиеся в меню просмотра. 

Окно редактора Thonny 
Thonny. Загрузка всех окон  

Не будем усложнять. Лучше начать работу со следующими окнами.

  • Оболочка. Здесь вы наблюдайте непосредственный процесс выполнения кода. 
  • Заметки. Сюда добавляете рабочие заметки, чтобы сосредоточить все в одном месте (возможен вариант с сохранением псевдокода не в редакторе, а в этом окне). 
  • Переменные. Вы всегда знаете значения переменных. Поскольку они подвержены изменениям, то по мере роста программы легко потерять им счет. 
  • Ассистент. Это окно предоставляет текстовую информацию об ошибках в коде и подсказывает способы их устранения. 
Простая и эффективная настройка 

Индивидуальные настройки 

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

Не вдаваясь в детали, отдельно рассмотрим несколько разделов. 

Общие 

У вас есть возможность разрешить запуск нескольких экземпляров Thonny вместо распределения файлов по вкладкам. 

Кроме того, вы вольны переоткрыть файлы из предыдущего сеанса при возобновлении работы с IDE. 

Общие настройки 

Редактор 

Здесь речь пойдет об отличных настройках для редактора, позволяющих наглядно представить все, что происходит при написании кода. Например, вам могут пригодиться следующие.

  • Подсветка совпадающих имен позволяет увидеть опечатки в переменных. 
  • Подсветка скобок помогает замечать отсутствие открывающейся или закрывающейся скобки. 
  • Подсветка синтаксических элементов отделяет синтаксис от текста или символов, упрощая обнаружение синтаксических ошибок. 
Редактор 

Тема и шрифт 

Темы и шрифты зависят от личных предпочтений. Выбирайте то, что понравится именно вам.  

Уделите время поиску подходящего для вас стиля. 

Темы и шрифты 

Функциональные возможности 

А теперь пора познать всю прелесть Thonny. 

После настройки IDE начинаем писать код. Создадим какой-нибудь некорректный код, чтобы увидеть ассистента в действии. 

Справа в окне заметок представлены задания, слева  —  код. Как видно, в оболочке допущена ошибка, и ассистент спешит на помощь. 

Ошибка при конкатенации int и str
TypeError: unsupported operand type(s) for +: 'int' and 'str'
main.py, line 4

Ваша программа пытается соединить целое число и строку.

 
[+]Did you mean to treat both sides as text and produce a string? (Вы планировали, что обе стороны будут текстом, и на выходе получится строка?)
[+]Did you mean to treat both sides as numbers and produce a sum?(Вы планировали, что обе стороны будут числами, и на выходе получится их сумма?)
[+]Did you expect another type? (Вы ожидали другой тип?)
[+]Maybe you forgot some details about this operation? (Может вы упустили какие-то детали операции?)

Удивительно. Сначала ассистент уведомляет об ошибке  —  конкатенация int и string не допустима. 

Затем сообщает, что программа пытается выполнить эту операцию в строке 4. 

И наконец, интересуется, какие из предполагаемых действий подлежали выполнению. В данном случае в наше намерение входило получение string для дальнейшего использования. Разворачивая первое предположение, получаем краткую инструкцию по реализации задуманного: 

In this case you should apply function str to the integer in order to convert it to string first, eg:

str(42) + 'abc'

В этом случае сначала следует применить функцию  str к целому числу для преобразования его в строку, например 

 str(42) + 'abc'
Предположение ассистента 

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

Отладка 

Thonny позволяет проводить отладку кода. Создадим программу, содержащую ошибку “index out of range” (“индекс вне допустимого диапазона”).

my_list = ['one' , 'two' , 'three' , 'four']

for item in range(len(my_list)-1):
    print(my_list[item])
    my_list.pop()

Выполняя код, получаем: 

one
two
Traceback (most recent call last):
  File "/Users/martinandersson/Documents/python_dev/thonny/main.py", line 4, in <module>
    print(my_list[item])
IndexError: list index out of range

Это значит, что он выводит первые два элемента в списке и прекращает работу. Причина очевидна. Поскольку мы удаляем элементы из итерируемого списка, в итоге их количество перестает соответствовать условиям работы цикла. 

Когда цикл выполнится 2 раза, в списке не останется элементов, при этом range(len(my_list)-1) будет настаивать на продолжении его работы. 

Для отладки кода кликните значок с жучком: 

Значок с жучком 

Продолжайте нажимать на “Step Into/ Шаг с заходом” (F7) для пошагового просмотра кода. 

Далее Thonny демонстрирует, как вычисляется диапазон цикла: 

Вычисление диапазона цикла 
Вычисляется длина списка, а следовательно и нижняя граница диапазона 
Перед началом работы цикла устанавливаются нижняя и верхняя границы диапазона 

Ниже следует наглядное представление внутренней работы цикла:

Войдя в цикл, можно увидеть, что пытается вывести Thonny 

Отображается весь список и индекс в конце. В данном случае в качестве вывода получаем ‘one’. Индекс 0 равен ‘one’.

Однако вследствие применения pop( в цикле у нас закончатся индексы. 

Спустя какое-то время индексы заканчиваются. Мы пытаемся вывести [2], выходящее за пределы новой длины списка. 
Получаем ошибку 

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

Заключение 

Thonny  —  простой и удобный инструмент, который подойдет как новичкам, так и профессионалам при необходимости быстро отладить код. 

Однако хотелось бы более удобного распределения элементов UI. Поскольку у многих разработчиков широкие экраны, лучше расположить окно ассистента не под заметками, а рядом с ними. То же самое относится и к оболочке. Если разместить ее справа от редактора, то в нашем распоряжении окажется больше строк. 

Помимо этого, было бы классно, если бы полосы прокрутки, заметки и ассистент предполагали настройки темных тем. 

Не помешала бы и функция автозаполнения, избавляющая от необходимости вводить весть синтаксис, например [],{},’’,().

Если вы новичок или вам нужен простой инструмент для отладки кода, то Thonny как нельзя лучше подходит для этих целей. К тому же она никогда не будет лишней в вашем арсенале, даже если в будущем вы перейдете к более сложным инструментам. 

Благодарю за внимание! Успехов в программировании. 

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Martin Andersson Aaberge: Meet Thonny, the Perfect IDE for Python Beginners

Предыдущая статьяИнструменты прототипирования в 2021 году
Следующая статьяПродвинутый функционал Git: хитрые приемы и команды