Как включить номера строк в IDLE?
В основной оболочке IDLE ошибки всегда возвращают номер строки, но среда разработки даже не имеет номеров строк. Нужно ли включать номера строк?
User 14 сен. 2013, в 21:43
Поделиться
Ух ты, IDE без номеров строк? Кто-нибудь еще находит это таким же странным, как я?
Paul Feakins 23 март 2019, в 12:54
Поделиться:
python-idle
3 ответа
Лучший ответ
К сожалению, нет опции отображать номера строк в IDLE, хотя для этого открывается запрос расширения.
Однако есть несколько способов обойти это:
- В меню редактирования есть опция go to line (для этого есть ярлык Alt + G по умолчанию).
- В правом нижнем углу экрана отображается текущий номер строки/позиции линии:

ChrisProsser 14 сен. 2013, в 20:47
Поделиться
На Mac ярлык для навигации между строками — cmd + j.
tommy.carstensen 25 апр. 2014, в 11:01
Хотя этот обходной путь работает, почему нумерованные строки не были включены в первый выпуск. Это кажется очевидной особенностью. Очень разочаровывает, что это не входит.
JayRugMan 28 дек. 2017, в 01:29
Если использование скобок для определения области применения сбивает с толку, то номера строк — ракетостроение.
aj.toulan 30 май 2018, в 17:33
Показать ещё 1 комментарий
Есть набор полезных расширений для IDLE, называемых IDLEX, который работает с MacOS и Windows http://idlex.sourceforge.net/
Он включает нумерацию строк, и я нахожу ее довольно удобной и бесплатной.
В противном случае существует множество других IDE, некоторые из которых являются бесплатными: https://wiki.python.org/moin/IntegratedDevelopmentEnvironments
Davos 28 апр. 2014, в 09:46
Поделиться
с открытым исходным кодом: pyscripter (работа в python 3.4)
JinSnow 30 нояб. 2016, в 13:06
Хотите верьте, хотите нет, но сейчас мне действительно нравится VS Code от Microsoft. Это отличный легкий IDE с действительно хорошими плагинами Python. Это также работает через Mac / Linux / Windows. Какой странный (хороший) мир, в котором мы живем, где Microsoft собирается с открытым исходным кодом.
Davos 01 янв. 2017, в 21:31
Если вы пытаетесь отследить, какая строка вызвала ошибку, если вы щелкнете правой кнопкой мыши в оболочке Python, где отображается ошибка строки, она выберет «Перейти к файлу/строке», которая приведет вас непосредственно к линия в вопросе.
Martin Ghecea 20 июль 2017, в 06:23
Поделиться
Ещё вопросы
- 0 Гауссовская кривая OpenCV
- 0 как обновить статус комнаты после вставки с помощью php
- 0 Читать XML с ООП PHP
- 1 Добавить JS вызов на Rails form_for кнопка отправки
- 1 Mockito: Как проверить, что макет вызывается последним?
- 1 Сокет соединение на основе MAC-адреса в C #
- 0 обработка флажков в openWindow
- 0 Доступ к элементу за пределами цели
- 0 Как я могу поместить функции в другой файл CS?
- 0 Вернуть n-ю строку
- 0 Кнопка перекрытия с меткой
- 0 Класс отката после функции щелчка
- 0 ограничивающие элементы, когда я нажимаю больше, чтобы загрузить другие элементы
- 0 Проверка уникального ключа, показывающая ошибку при обновлении данных в laravel
- 1 Определить, когда анимация завершена (AnimationListener)
- 1 Почему каждое исключение является системным исключением?
- 1 RxJava doOnError против onError
- 1 Есть ли способ отправить письмо из Spotfire одним нажатием кнопки?
- 0 использовать DGEMM BLAS в Windows Eclipse
- 1 Как превратить TimePicker Джонатаса Уокера в плагин класса JS или jQuery
- 1 Как отображать изображения из внешнего хранилища в флаттере?
- 1 Метод .split () в Java не найден
- 0 Кнопка «Нравится» / «Рекомендовать» на Facebook не показывает правильную ссылку на лайк или изображение
- 0 выводить две таблицы из базы данных за один раз
- 0 Как получить полный путь изображения в php
- 0 Динамическое создание нескольких выпадающих и автоматическая настройка каждого выпадающего в angularjs
- 1 Определить, находится ли текущее время в нескольких временных диапазонах
- 1 FlowType: возвращаемый тип функции (k) => obj [k]
- 1 Управление вкладками Firefox в селене
- 1 Регулярное выражение Javascript допускает только один знак плюс (+) в начале, а длина строки не должна превышать 15 символов
- 0 Как выбрать, где внешний ключ не существует в других столбцах, и сравнить даты из таблиц, которые не связаны напрямую
- 0 Qt / C ++ / Valgrind Invalid Readsize 8 при отключении QTcpSocket
- 0 Вырежьте кусок из существующего изображения
- 1 используя python concurrent.futures представьте с нумерацией процессов
- 0 Наличие логической проблемы с рекурсивными N-вложенными циклами for
- 0 Скрытое целое число в шаблоне (1> = 5, 6> = 10, 11> = 15…)
- 0 Как добавить оператор if, чтобы исключить определенные пустые строки
- 1 Ограничить текстовое поле принимать цифры и буквы только в приложении магазина Windows 8
- 0 Иметь все элементы покупки
- 1 Невозможно запустить родное приложение React на устройстве Android через VS Code
- 0 добавить smtp в функцию php mail
- 0 передать и вернуть ссылки
- 1 Не могу получить содержимое некоторых табличных данных с веб-страницы
- 0 Загрузка данных в Amazon RDS / SQL из S3
- 0 Как указать Kohana PHP Частичное представление CSS и JS зависимостей
- 0 Я не получаю точный MySQL формат времени по умолчанию в JavaScript 00:00:00
- 1 Как поделиться изображением Создано растровое изображение
- 0 Не удается показать пользовательское сообщение об ошибке, когда проверка формы не удается в Codeigniter
- 0 JQuery: получение данных не работает
- 0 Допустимо ли открывать журнал ошибок до тех пор, пока приложение работает?
Как сделать нумерацию строк для текстового поля в tkinter?

Вот результат: И я хотел слева от текстового поля сделать поле для нумерации строк в текстовом поле. Я пробовал и Label и canvas , но ничего не работает. Можете подсказать как сделать нумерацию строк?
Отслеживать
задан 11 июн 2020 в 6:41
Вадим Платонов Вадим Платонов
152 12 12 бронзовых знаков
Для организации подобной фишки потребуется ОЧЕНЬ много строк кода. Далеко не все продвинутые текстовые редакторы имеют нумерацию строк текста.
11 июн 2020 в 7:02
Само по себе это можно реализовать, единственная проблема — метки могут не совпадать по положению со строками текста в текстовом поле. Как вариант можно сделать два текстовых поля, второе (нередактируемое) для номеров строк, тогда номера будут совпадать по положению со строками текста (при условии что шрифт будет одинаковый по высоте).
11 июн 2020 в 7:12
@Assur я оцениваю объем кода для данной задачи в 100-200 строк (ну, максимум до 500). Это не очень много. И это не сверхсложная задача.
11 июн 2020 в 7:13
Тогда можете изложить ход задачи. Как именно можно реализовать нумерацию?
11 июн 2020 в 7:15
@Assur, 63 строки в итоге
11 июн 2020 в 16:46
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Сделал немного не так как планировал: просто два текстовых поля и скролбар в гриде.
import tkinter as tk from tkinter import ttk root = tk.Tk() # Перенос строк отключен, иначе нумерация будет работать некорректно numbers = tk.Text(root, width=4, bg='lightgray', state=tk.DISABLED, relief=tk.FLAT) numbers.grid(row=0, column=0, sticky='NS') scroll = ttk.Scrollbar(root) scroll.grid(row=0, column=2, sticky='NS') def on_yscrollcommand(*args): scroll.set(*args) # Синхронизация скролбара с текстовым полем numbers.yview_moveto(args[0]) # Синхронизация поля с номерами с текстовым полем text = tk.Text(root, yscrollcommand=on_yscrollcommand, wrap=tk.NONE) text.grid(row=0, column=1, sticky='NSWE') def scroll_command(*args): # Движение скролбара управляет отображением текста в обоих текстовых полях text.yview(*args) numbers.yview(*args) scroll.config(command=scroll_command) def insert_numbers(): count_of_lines = text.get(1.0, tk.END).count('\n') + 1 numbers.config(state=tk.NORMAL) numbers.delete(1.0, tk.END) numbers.insert(1.0, '\n'.join(map(str, range(1, count_of_lines)))) numbers.config(state=tk.DISABLED) insert_numbers() def on_edit(event): # Срабатывает при изменениях в текстовом поле insert_numbers() text.edit_modified(0) # Сбрасываем флаг изменения текстового поля text.bind('>', on_edit) # Нужно чтобы текстовое поле автоматически меняло размер при изменении размера окна root.grid_columnconfigure(1, weight=1) root.grid_rowconfigure(0, weight=1) # Для примера загружаем саму программу в редактор import sys with open(sys.argv[0]) as file: text.insert(1.0, file.read()) root.mainloop()

Отслеживать
ответ дан 11 июн 2020 в 16:33
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
11 июн 2020 в 16:51
import tkinter as tk class TextLineNumbers(tk.Canvas): def __init__(self, *args, **kwargs): tk.Canvas.__init__(self, *args, **kwargs) self.textwidget = None def attach(self, text_widget): self.textwidget = text_widget def redraw(self, *args): '''redraw line numbers''' self.delete("all") i = self.textwidget.index("@0,0") while True : dline= self.textwidget.dlineinfo(i) if dline is None: break y = dline[1] linenum = str(i).split(".")[0] self.create_text(2,y,anchor="nw", text=linenum) i = self.textwidget.index("%s+1line" % i) class CustomText(tk.Text): def __init__(self, *args, **kwargs): tk.Text.__init__(self, *args, **kwargs) # create a proxy for the underlying widget self._orig = self._w + "_orig" self.tk.call("rename", self._w, self._orig) self.tk.createcommand(self._w, self._proxy) def _proxy(self, *args): # let the actual widget perform the requested action cmd = (self._orig,) + args result = self.tk.call(cmd) # generate an event if something was added or deleted, # or the cursor position changed if (args[0] in ("insert", "replace", "delete") or args[0:3] == ("mark", "set", "insert") or args[0:2] == ("xview", "moveto") or args[0:2] == ("xview", "scroll") or args[0:2] == ("yview", "moveto") or args[0:2] == ("yview", "scroll") ): self.event_generate(">", when="tail") # return what the actual widget returned return result class Example(tk.Frame): def __init__(self, *args, **kwargs): tk.Frame.__init__(self, *args, **kwargs) self.text = CustomText(self) self.vsb = tk.Scrollbar(orient="vertical", command=self.text.yview) self.text.configure(yscrollcommand=self.vsb.set) self.text.tag_configure("bigfont", font=("Helvetica", "24", "bold")) self.linenumbers = TextLineNumbers(self, width=30) self.linenumbers.attach(self.text) self.vsb.pack(side="right", fill="y") self.linenumbers.pack(side="left", fill="y") self.text.pack(side="right", fill="both", expand=True) self.text.bind(">", self._on_change) self.text.bind("", self._on_change) self.text.insert("end", "one\ntwo\nthree\n") self.text.insert("end", "four\n",("bigfont",)) self.text.insert("end", "five\n") def _on_change(self, event): self.linenumbers.redraw() if __name__ == "__main__": root = tk.Tk() Example(root).pack(side="top", fill="both", expand=True) root.mainloop()
Введение в Python
Чтобы начать играть с Python, нам нужно открыть командную строку на твоём компьютере. Ты уже должна знать, как это сделать — мы изучали это в главе Введение в интерфейс командной строки.
Когда будешь готова, следуй приведенным ниже инструкциям.
Мы хотим открыть консоль Python, так что набери python , если работаешь в Windows, или python3 для Mac OS/Linux, и нажми enter .
$ python3 Python > (. ) Type "help", "copyright", "credits" or "license" for more information. >>>
Твоя первая команда Python!
После запуска Python командная строка изменилась на >>> . Для нас это означает, что сейчас мы можем использовать только команды на языке Python. Тебе не нужно вводить >>> — Python будет делать это за нас.
Если ты хочешь выйти из консоли Python, в любой момент — просто введи exit() или используй сочетание клавиш Ctrl + Z для Windows и Ctrl + D для Mac/Linux. Тогда ты больше не будешь видеть >>> .
Пока что мы не хотим выходить из консоли Python. Мы хотим узнать больше о ней. Давай начнём с чего-нибудь совсем простого. Например, попробуй набрать простое математическое выражение, вроде 2 + 3 , и нажми enter .
>>> 2 + 3 5
Прекрасно! Видишь, как выскочил ответ? Python знает математику! Ты можешь попробовать другие команды, например:
Чтобы вычислить степень числа, например, 2 в кубе, мы вводим:
>>> 2 ** 3 8
Поиграй с этим немного и затем вернись сюда :).
Как видишь, Python является прекрасным калькулятором. Если тебе интересно, что ещё можно сделать.
Строки
Как насчет твоего имени? Введи своё имя в кавычках, вот так:
>>> "Ola" 'Ola'
Ты только что создала свою первую строку! Это последовательность символов, которые могут быть обработаны компьютером. Строка должна всегда начинаться и заканчиваться одинаковым символом. Им может быть одинарная ( ‘ ) или двойная ( » ) кавычка (разницы нет!) Кавычки говорят Python’у, что внутри них находится строка.
Строки могут быть слиты воедино. Попробуй так:
>>> "Hi there " + "Ola" 'Hi there Ola'
Ты также можешь умножать строки на число:
>>> "Ola" * 3 'OlaOlaOla'
Если тебе нужно поставить апостроф внутри строки, то есть два способа сделать это.
Используй двойные кавычки:
>>> "Runnin' down the hill" "Runnin' down the hill"
или поставь перед апострофом обратную косую черту ( \ ):
>>> 'Runnin\' down the hill' "Runnin' down the hill"
Прикольно, да? Чтобы увидеть своё имя прописными буквами, просто набери:
>>> "Ola".upper() 'OLA'
Ты только что использовала метод upper своей строки! Метод (такой как upper() ) представляет собой набор инструкций, который должен выполнить Python над заданным объектом (в нашем случае: «Ola» ) при его вызове.
Если ты хочешь узнать количество букв в своём имени, то и для этого тоже существует функция!
>>> len("Ola") 3
Интересно, почему иногда мы вызываем функцию добавлением . к концу строки (как «Ola».upper() ), а иногда сначала пишем имя функции и затем помещаем строку в скобки? Ну, в некоторых случаях функции принадлежат объектам, например, функция upper() , которая может быть применена только к строкам. В этом случае мы называем функцию методом. В другом случае функции не относятся к чему-то конкретному и могут использоваться для различных типов объектов, например, функция len() . Вот почему мы передаем «Ola» в качестве параметра функции len .
Подведём итог
Хорошо, достаточно о строках. Пока ты узнала следующее:
- командная строка — ввод команд (кода) в интерактивную командную строку Python приводит к ответам на Python;
- числа и строки — в Python числа используются для вычислений, а строки — для текстовых объектов;
- операторы, такие как + и *, объединяют значения для получения нового;
- функции, такие как upper() и len(), выполняют действия над объектами.
Таковы основы каждого языка программирования, который ты можешь выучить. Готова к чему-то посложнее? Мы уверены, что готова!
Ошибки
Давай попробуем кое-что новенькое. Можем ли мы получить длину числа так же, как длину твоего имени? Введи len(304023) и нажми Enter :
>>> len(304023) Traceback (most recent call last): File "", line 1, in TypeError: object of type 'int' has no len()
Мы получили нашу первую ошибку! Иконкой мы будем обозначать код, который при запуске сработает не так, как ожидается. Совершение ошибок (даже преднамеренных) — важная часть обучения!
Она говорит о том, что у объектов типа «int» (целые числа) нет длины. Так что же мы можем сейчас сделать? Может быть, мы можем написать наше число в виде строки? У строк ведь есть длина, верно?
>>> len(str(304023)) 6
Сработало! Мы использовали функцию str внутри функции len . str() преобразует всё в строки.
- Функция str преобразует объекты в строки
- Функция int преобразует объекты в целые числа
Важно: мы можем преобразовать число в текст, но не всегда удается преобразовать текст в числа — например, каков будет результат int(‘hello’) ?
Переменные
Переменные — важное понятие в программировании. Переменная — это всего лишь имя для чего-то, чтобы использовать его позднее. Программисты используют переменные для хранения данных, чтобы их код был более читабельным, и для того, чтобы им не пришлось запоминать, что есть что.
Допустим, мы хотим создать новую переменную с именем name :
>>> name = "Ola"
Видишь? Это очень легко! Просто введи: name равно Ola.
Как ты уже заметила, твоя программа не возвращает ничего, как было ранее. Так откуда мы знаем, что переменная действительно существует? Просто введи name и нажми Enter :
>>> name 'Ola'
Ура! Твоя первая переменная:)! Ты всегда можешь изменить то, к чему она относится:
>>> name = "Sonja" >>> name 'Sonja'
Ты также можешь использовать переменные и в функциях:
>>> len(name) 5
Круто, правда? Переменными, конечно, может быть что угодно, и цифры тоже! Попробуй следующее:
>>> a = 4 >>> b = 6 >>> a * b 24
Но что делать, если мы использовали неправильное имя? Можешь догадаться, что произойдет? Давай попробуем!
>>> city = "Tokyo" >>> ctiy Traceback (most recent call last): File "", line 1, in NameError: name 'ctiy' is not defined
Ошибка! Как ты можешь видеть, в Python есть различные типы ошибок, эта называется NameError. Python выдаст эту ошибку при попытке использовать переменную, которая пока не определена. При возникновении этой ошибки проверь свой код, чтобы узнать, не написала ли ты неправильно имя переменной.
Попрактикуйся в этом какое-то время и посмотри, что ты сможешь сделать!
Функция print
>>> name = 'Maria' >>> name 'Maria' >>> print(name) Maria
Если просто ввести name , интерпретатор Python вернет строковое представление переменной ‘name’, которым, в нашем случае, являются буквы M-a-r-i-a, окруженные одинарными кавычками, ». Когда ты вводишь print(name) , Python «печатает» содержание переменной на экран, без кавычек, что удобнее.
Как мы увидим позднее, print() пригодится, когда нам будет нужно печатать что-то изнутри функций или когда мы захотим напечатать что-то на нескольких строчках.
Списки
Помимо строк и целых чисел Python имеет богатую коллекцию других типов объектов. Сейчас мы собираемся представить тебе один из них — list (список). Списки — это именно то, о чём ты подумала: объекты, которые являются списками других объектов 🙂
Давай начнем с создания списка:
Отлично, это пустой список. Не особенно полезен, да? Давай создадим список лотерейных номеров. Мы не хотим повторять их каждый раз, так что присвоим список переменной:
>>> lottery = [3, 42, 12, 19, 30, 59]
Замечательно, у нас есть список! Что мы можем с ним сделать? Для начала посмотрим, как много лотерейных номеров в нашем списке. Есть идеи, какую функцию можно использовать для этого? Ты её уже знаешь!
>>> len(lottery) 6
Точно! len() вернет тебе количество объектов в списке. Удобно, правда? Пожалуй, мы теперь отсортируем его:
>>> lottery.sort()
Эта команда не возвращает ничего, она просто меняет порядок номеров в списке. Давайте выведем его на экран и посмотрим, что получилось:
>>> print(lottery) [3, 12, 19, 30, 42, 59]
Как видишь, номера в списке теперь отсортированы от меньшего к большему. Поздравляем!
Может, нам нужно обратить порядок? Давай сделаем это!
>>> lottery.reverse() >>> print(lottery) [59, 42, 30, 19, 12, 3]
Просто, правда? Если хочешь добавить что-то к своему списку, то можешь воспользоваться этой командой:
>>> lottery.append(199) >>> print(lottery) [59, 42, 30, 19, 12, 3, 199]
Если ты хочешь получить только первый номер в списке, то можешь воспользоваться индексами. Индекс — это номер позиции в списке, на котором находится нужное нам значение. Программисты предпочитают начать считать с 0, так что первому объекту в списке соответствует индекс 0, следующему —1, и так далее. Попробуй ввести:
>>> print(lottery[0]) 59 >>> print(lottery[1]) 42
Как видишь, ты можешь обратиться к различным объектам в своем списке, используя имя списка и индекс объекта в квадратных скобках.
Чтобы удалить что-либо из списка, тебе понадобятся индексы, с которыми мы уже разобрались выше, и команда pop() . Давай попробуем закрепить пройденное на примере: мы будем удалять первый элемент из нашего списка.
>>> print(lottery) [59, 42, 30, 19, 12, 3, 199] >>> print(lottery[0]) 59 >>> lottery.pop(0) 59 >>> print(lottery) [42, 30, 19, 12, 3, 199]
Сработало как по маслу!
В качестве дополнительной тренировки попробуй следующие индексы: 6, 7, 1000, -1, -6 и -1000. Можешь предсказать результат? Видишь логику работы?
Ты можешь найти перечень всех методов, относящихся к списку, в этой главе официальной документации Python: https://docs.python.org/3/tutorial/datastructures.html
Словари
Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Dictionaries.
Словари схожи со списками, но ты обращаешься к значениям словаря по ключу, а не по индексу. Ключом может быть любая строка или число. Давай создадим пустой словарь:
Это показывает, что мы создали пустой словарь. Ура!
Теперь попробуй следующую команду (можешь заменить значения на своё имя, страну и т.д.):
>>> participant = 'name': 'Ola', 'country': 'Poland', 'favorite_numbers': [7, 42, 92]>
Этой командой ты создала переменную participant с тремя парами ключ/значение:
- ключ name , указывающий на значение ‘Ola’ (объект типа строка ),
- ключ country , указывающий на значение ‘Poland’ (еще одна строка ),
- и ключ favorite_numbers , указывающий на значение [7, 42, 92] (объект типа список с тремя числами внутри).
Значение конкретного ключа можно узнать следующим образом:
>>> print(participant['name']) Ola
Видишь, синтаксис похож на работу со списком. Но вместо того, чтобы запоминать индекс, тебе нужно помнить ключ.
Что случится, если мы спросим у Python значение несуществующего в словаре ключа? Можешь предположить? Давай попробуем и узнаем наверняка!
>>> participant['age'] Traceback (most recent call last): File "", line 1, in KeyError: 'age'
Смотри, другая ошибка! Эта называется KeyError. Python услужливо напоминает, что ключа ‘age’ нет в словаре.
Когда стоит использовать словарь, а когда список? Это хороший вопрос для самостоятельного размышления. Сделай предположение перед тем, как читать дальше.
- Тебе нужна упорядоченная последовательность элементов? Список — наш выбор.
- Тебе нужны сочетания ключ/значение, чтобы быстро искать значения (по ключу) в дальнейшем? Словарь отлично подойдет.
Словари, как и списки, изменяемы, т. е. они могут быть изменены после того, как были созданы. Ты можешь добавить новые пары ключ/значение в словарь следующим образом:
>>> participant['favorite_language'] = 'Python'
Так же как в примере со списками, использование функции len() вернёт число пар ключ/значение в словаре. Попробуй сама:
>>> len(participant) 4
Надеюсь, всё вышеизложенное понятно. 🙂 Готова к новым приключениям со словарями? На следующей строке тебя ждут изумительные вещи.
Ты можешь использовать команду pop() для удаления элементов из словаря. Скажем, ты хочешь удалить элемент с ключом ‘favorite_numbers’ . Просто набери следующую команду:
>>> participant.pop('favorite_numbers') [7, 42, 92] >>> participant 'country': 'Poland', 'favorite_language': 'Python', 'name': 'Ola'>
Как видишь, пара ключ/значение с ключом ‘favorite_numbers’ была удалена.
Помимо этого, ты можешь заменить значение, связанное с уже существующим ключом. Набери:
>>> participant['country'] = 'Germany' >>> participant 'country': 'Germany', 'favorite_language': 'Python', 'name': 'Ola'>
Значение, на которое ссылается ключ ‘country’ , изменилось с ‘Poland’ на ‘Germany’ . 🙂 Захватывает? Ещё бы! Ты выучила еще одну потрясающую штуку!
Подведём итог
Шикарно! Теперь ты знаешь немало о программировании. Мы познакомились с:
- ошибками — теперь ты знаешь как читать и анализировать ошибки, которые возникают, если Python не понимает твоей команды;
- переменными — именами для объектов, которые упрощают твой код и делают его более читабельным;
- списками — последовательностями объектов в заданном порядке;
- словарями — объектами, хранящими пары ключ/значение.
Готова к продолжению? 🙂
Сравнения
Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Comparisons.
В программировании часто надо что-то сравнивать. Что проще всего сравнить друг с другом? Числа, конечно. Давай посмотрим, как это работает:
>>> 5 > 2 True >>> 3 < 1 False >>> 5 > 2 * 2 True >>> 1 == 1 True >>> 5 != 2 True
Мы передали Python несколько чисел для сравнения. Как ты можешь заметить, Python сравнивает не только числа, но и результаты методов (например, умножения). Неплохо, правда?
Хочешь спросить, почему мы написали двойной символ равенства == , чтобы проверить, одинаковы ли числа? Потому что одинарные символ равенства = уже задействован под присваивание значения переменным. Ты всегда, всегда должна писать два символа равенства == , если хочешь проверить, одинаковы ли объекты. Мы также можем проверить, различаются ли объекты. Для этого мы используем != , как показано в примере выше.
Дадим Python еще два задания:
>>> 6 >= 12 / 2 True >>> 3 2 False
Супер! Хочешь еще? Тогда попробуй вот это:
>>> 6 > 2 and 2 < 3 True >>> 3 > 2 and 2 < 1 False >>> 3 > 2 or 2 < 1 True
Ты можешь передать Python столько чисел, сколько захочешь, и он будет возвращать ответ! Хитро, правда?
- and — если ты используешь оператор and , оба сравнения по обе стороны от него должны быть True (верны), чтобы результат всей команды был равен True.
- or — если ты используешь оператор or , достаточно одному из сравнений по обе стороны от него быть равным True, чтобы результат всей команды также равнялся True.
Ты когда-нибудь слышала выражение «сравнивать тёплое с мягким»? Попробуем сделать что-то подобное в Python:
>>> 1 > 'django' Traceback (most recent call last): File "", line 1, in TypeError: '>' not supported between instances of 'int' and 'str'
Как мы видим, Python не знает, как сравнить число ( int ) и строку ( str ) между собой. Поэтому он просто возвращает нам ошибку TypeError и предупреждает, что объекты заданных типов не могут быть сравнены.
Логические значения
Между прочим, ты только что познакомилась с новым типом объектов в Python. Он называется Boolean (логический) — и это, наверное, самый простой тип из всех.
Существует только два логических объекта в Python:
- True (Истина),
- False (Ложь).
Чтобы Python понимал тебя, ты всегда должна писать True с заглавной буквы (остальные прописные). true, TRUE, tRUE не будут восприниматься — только True. (Та же логика применима к False, само собой.)
Ты можешь присваивать переменным логические значения! Смотри сюда:
>>> a = True >>> a True
>>> a = 2 > 5 >>> a False
Попрактикуйся с логическими значениями на примере этих выражений:
- True and True
- False and True
- True or 1 == 1
- 1 != 2
Поздравляем! Логические значения — одна из самых классных фишек программирования, и ты только что научилась ими пользоваться!
Сохраняй!
До сих пор мы писали весь код в интерактивной консоли, где Python сразу анализировал, обрабатывал и выполнял наши команды. Мы были ограничены одной строкой. Обычно, программы сохраняются в файлах и выполняются интерпретатором или компилятором нашего языка программирования. Пока мы только просили интерпретатор Python выполнять наши однострочные команды из консоли. Однако нам понадобится больше места для следующих задач, поэтому задача минимум:
- закрыть интерактивную консоль Python;
- открыть наш текстовый редактор;
- сохранить код в новом файле;
- запустить его!
Чтобы закрыть интерактивную консоль Python, просто набери функцию exit() :
>>> exit() $
Это вернёт тебя в командную строку.
В главе Текстовый редактор мы выбрали себе редактор. Нам нужно открыть его сейчас и записать следующий код в новый файл (или, если ты используешь Chromebook, создай новый файл в облачной IDE и открой файл, который будет во встроенном редакторе кода):
print('Hello, Django girls!')
Очевидно, ты уже искушенный Python разработчик, так что не стесняйся добавить что-нибудь по своему вкусу из ранее изученного.
Теперь нам нужно сохранить файл с кодом и дать ему подходящее имя. Давай назовем его python_intro.py и сохраним на рабочий стол. Мы можем назвать файл как хотим, но важно, чтобы название заканчивалось на .py. Расширение .py говорит операционной системе, что это исполняемый файл python, и Python может его запустить.
Примечание Ты должна уже была заметить одну из крутейших вещей в редакторах кода: цвета! В интерактивной консоли Python весь текст был одного цвета, сейчас же функция print должна отличаться по цвету от текста, который передается в неё в качестве аргумента. Это называется «синтаксическая подсветка», и это действительно удобная штука для программирования. Цвет подсветки может подсказать тебе о незакрытой кавычке или опечатке в ключевом слове (таком как def в определении функции, с которым мы скоро познакомимся). Это одна из причин, по которой мы используем редакторы кода 🙂
После сохранения файла пришло время запустить его! Используя навыки из раздела о командной строке, открой терминал и поменяй текущую директорию на рабочий стол.
Для Mac команда будет выглядеть так:
$ cd ~/Desktop
Основные команды Python — полное описание с примерами

Сегодня Python вошел в число самых популярных языков программирования в мире. Этот интерпретируемый язык высокого уровня общего назначения был разработан Гвидо ван Россумом в 1991 году и с тех пор неуклонно набирал репутацию среди пользователей.
Синтаксис Python схож с английским, что делает его крайне доступным и простым в освоении для новичков. Команды языка программирования Python просты в использовании, легко пишутся и запоминаются. В этой шпаргалке для тех, кто начинает изучать «змеиный язык», мы разберем синтаксис и назначение основных команд Python.
Важно! Согласно официальной документации, в Python нет самого понятия «команды», но есть различные встроенные методы или функции, которые можно выполнять в оболочке языка, как обычные команды. Поэтому в данном справочнике команд Python, мы будем использовать термины «команды», «функции» и «методы» (специальные классы функций) взаимозаменяемо.
Базовые команды Python
pip
Менеджер пакетов Python. Команда pip install используется для установки любого программного пакета из онлайн-репозитория общедоступных пакетов или Индекса пакетов Python (PyPI, Python Package Index).
pip install имя-пакета
Команда для печати сообщений на экране или другом стандартном устройстве вывода. Команда print может использоваться для печати любого типа объекта — целого числа, строки, списка, кортежа и других.
print(объект)
class
Команда для создания классов. Python поддерживает объектно-ориентированное программирование и позволяет пользователям создавать классы и инициализировать объекты. Класс может состоять из переменных с модификаторами доступа, функций с возвращаемыми типами и даже других классов (вложенный класс). Синтаксис выглядит class так:
class ИмяКласса: код_тела_класса
Пример кода ниже продемонстрирует применение class при создании класса «student»:
«student»: class student: name = "" def setName(self, passedValue): self.name = passedValue def displayName(self): print(self.name)
Чтобы использовать класс в Python, необходимо сначала создать его экземпляр, называемый объектом. Для этого нужно вызвать класс по имени следующим образом:
ИмяКласса()
Как видно из приведенного выше синтаксиса, при создании объекта в Python, после имени класса всегда ставятся круглые скобки. Обычно для удобства поиска вновь созданный объект тут же привязывается к переменной, через которую к нему в дальнейшем и обращаются:
имя_переменной = ИмяКласса()
Пример создания объекта для класса «student»:
mystudent = student() mystudent.setName("Alex Ignatov") mystudent.displayName()
В результате мы получим вывод:
Alex Ignatov
Как и в других языках программирования, в Python также можно реализовать конструкторы и статические методы в классах, используя соответственно метод dunder init() и декоратор @staticmethod .
type
Команда для проверки типа или класса объекта.
type(объект)
range
Команда для генерации последовательности целых чисел, начиная с 0 по умолчанию и заканчивая n, где n не включено в сгенерированные числа. Эта команда в основном используется в циклах for.
range(start, stop, step)
В приведенном синтаксисе:
- start — начало диапазона (опционально; по умолчанию — 0);
- stop — номер, перед которым нужно остановиться (обязательно);
- step — счетчик приращений (опционально; по умолчанию — 1).
Важно. Если функции range() будут даны только два параметра, она всегда будет рассматривать их как (start, stop), а не как (stop, step).
round
Команда для округления числа до заданной точности в десятичных разрядах. Позволяет сократить количество цифр после запятой в числе с плавающей запятой до указанного значения.
round(number, digits)
В приведенном синтаксисе:
- number — число с плавающей запятой;
- digits — количество цифр после десятичной точки (опционально; по умолчанию — 0).
input
Команда для получения ввода от пользователя. Исполнение программы будет остановлено до тех пор, пока пользователь не введет какое-либо значение, которое будет преобразовано функцией input() в строку. Если в качестве входных данных нужно взять целое число, его нужно преобразовать явно.
input(message)
В приведенном синтаксисе: message — текст, который нужно отобразить пользователю (опционально).
def
Команда определения функции Python дает возможность оборачивать повторно используемый код внутри функций, чтобы вызваны его позже, когда это необходимо. Функция def позволяет свести к минимуму избыточность кода.
def имя_функции (параметры): """строка документации""" состояние(я)
len
Команда len или функция len() используются для подсчёта количества элементов в объекте. Если объект является строкой, то функция len() возвращает количество присутствующих в ней символов. Если объект представляет собой список или кортеж, он вернет количество элементов, присутствующих в этом списке или кортеже. При попытке передать len() целочисленное значение, функция выдает ошибку.
len(object)
В приведенном синтаксисе: object — объект, длину которого необходимо найти (обязательно).
Циклические команды
В Python есть две простейшие команды цикла (loop commands) — while и for . Команда while используется для выполнения набора операторов, если заданное условие истинно.
while condition: statements update iterator
Команда цикла for используется для выполнения набора операторов путем повторения последовательности. Эта последовательность может быть списком, кортежем, строкой, словарем и т. д.
for x in sequence: statements
Команды Python среднего уровня
Строковые команды
В языке программирования Python есть различные команды для строковых объектов. Они не изменяют исходный строковый объект, а просто возвращают новый. Наиболее важные функции и методы строк в Python — isalnum() , capitalize() , find() , count() и center() .
isalnum()
Команда isalnum() проверяет, являются ли все символы данной строки буквенно-цифровыми или нет. Он возвращает логическое значение.
stringname.isalnum()
capitalize()
Строковая функция capitalize() возвращает строку, изменяя ее первый символ на верхний регистр, а остальные переводя в нижний. Если первый символ уже в верхнем регистре, а также представляет собой целое число или любой специальный символ, команда ничего не делает.
stringname.capitalize()
find()
Команда find() используется для поиска подстроки в строке. Если таковая найдена, find() возвращает индекс первого вхождения подстроки, в противном случае возвращает -1.
string.find(substring)
В приведенном синтаксисе:
- string — строка, где будет выполняться поиск.
- substring — подстрока, значение которой нужно найти.
count()
Строковая функция count() возвращает количество вхождений подстроки в строковый объект.
stringname.count(substring, start, end)
В приведенном синтаксисе:
- stringname — строка, где будет выполняться поиск.
- substring — подстрока, значение которой нужно найти.
- start — начальный индекс в строке, с которого начинается поиск (опционально).
- end — конечный индекс в строке, где заканчивается поиск (опционально).
center()
Команда center() используется для выравнивания строки по центру с заполнением указанным символом.
string.center(length, character)
В приведенном синтаксисе:
- string — строка, которую нужно выровнять по центру.
- length — полная длина новой строки.
- character — символ для заполнения пропущенного места с каждой стороны. По умолчанию — « » (пробел).
Команды для объектов списка
Списки используются для хранения нескольких элементов с различными типами данных в одном объекте. Наиболее важные методы списков Python — append() , copy() , insert() , pop() , reverse() и sort() .
append()
Команда списка append() используется для добавления элемента в конец списка.
list.append(element)
В приведенном синтаксисе:
- list — объект списка, в который нужно добавить элемент.
- element — новый элемент, который добавляется в список.
copy()
Команда copy() создает новую копию объекта списка. Она возвращает новый объект списка.
list.copy()
insert()
Команда insert() добавляет элемент в указанное место в объекте списка.
listname.insert(position, element)
В приведенном синтаксисе:
- position — позиция, в которую нужно вставить новый элемент. Если указанная позиция превышает количество элементов в списке, элемент будет вставляться в конец.
- element — новый элемент, который необходимо добавить.
pop()
Метод pop() используется для удаления элемента из указанной позиции в списке. Он возвращает элемент после удаления его из списка.
listname.pop(position)
В приведенном синтаксисе: position — позиция откуда нужно удалить элемент.
reverse()
Метод reverse() изменяет порядок всех элементов в списке. Команда изменяет исходный объект списка и ничего не возвращает.
list.reverse()
sort()
Метод sort() по умолчанию используется для сортировки элементов списка в порядке возрастания.
list.sort()
Команды кортежа
Кортеж (tuple) — встроенный тип данных, который используется для хранения нескольких элементов в одной переменной. Объекты кортежа упорядочены и неизменны. В Python есть два встроенных метода кортежа — count() и index() .
count()
Метод count() используется для подсчета вхождений элемента в кортеже.
tuple.count(элемент)
index()
Метод index() используется для поиска индекса первого вхождения элемента. Если элемент не найден во всем кортеже, будет выведена ошибка «ValueError».
tuple.index(элемент)
Продвинутые команды Python
Команды множества
Встроенный тип множество ( set ) в Python используется для хранения нескольких элементов в одном объекте. Этот тип объектов не допускает дублирования или изменения элементов, только добавление новых или удаление существующих.
Множества неупорядочены и неиндексированы, поэтому при попытке отобразить все элементы set, они будут выведены в случайном порядке.
add()
Команда add() позволяет добавить новый элемент в множество.
setname.add(element)
В приведенном синтаксисе:
- setname — имя переменной set, в которую нужно добавить новый элемент.
- element — элемент, который необходимо добавить.
clear ()
Функция clear () удаляет все элементы set. Она не принимает никаких параметров.
setname.clear()
discard()
Команда discard() позволяет удалить указанный элемент из набора. Если элемент не найден в наборе, она не выдаст ошибку.
setname.discard(element)
В приведенном синтаксисе:
- setname — имя переменной set, из которой нужно удалить элемент.
- element — элемент, который необходимо удалить.
remove()
Команда remove() также используется для удаления указанного элемента из множества. От команды discard() она отличается сообщением об ошибке, которое выводится, если указанный элемент не найден.
setname.remove(element)
В приведенном синтаксисе:
- setname — имя переменной множества, из которой нужно удалить элемент.
- element — элемент, который необходимо удалить.
difference()
Метод difference() используется для получения множества, содержащего разность двух множеств. В нем будут только те элементы, которые присутствуют только в одном множестве и отсутствуют в другом. Например, difference() для множеств setA и setB будет .
setA.difference(setB)
difference_update()
Метод difference_update() позволяет получить набор элементов, которые присутствуют в первом множестве и не являются общими для обоих. Это означает, что difference_update() удаляет элементы, существующие в обоих множествах. Он не возвращает новый set, а просто удаляет общие элементы из первого множества.
setA.difference_update(setB)
intersection()
Метод intersection() отображает множество, содержащее элементы, которые существуют во всех указанных множествах.
set.intersection(set1, set2, … setn)
issubset()
Метод issubset() проверяет, все ли элементы множества setA присутствуют в setB. Команда возвращает логическое значение.
setA.issubset(setB)
symmetric_difference()
Метод symmetric_difference() возвращает симметричную разность двух множеств, содержащую все элементы, за исключением общих.
setA.symmetric_difference(setB)
union()
Метод union() возвращает все элементы из обоих множеств, кроме повторяющихся.
setA.union(setB)
if, elif, else
Эти операторы Python, также называемые операторами ветвления или операторами условного управления, позволяют изменять ход выполнения программы в зависимости от условий.
- Команда if оценивает выражение и, если оно истинно (true), выполняет операторы под ним.
- Команда elif (else if) предоставляет другое выражение, которое оценивается, если предыдущий оператор if возвращает отрицательное значение «false».
- Если никакие предыдущие операторы ( if или elif ) не возвращают положительное значение «true», вычисляется выражение, предоставленное командой else .
Обратите внимание. В одном блоке кода может быть несколько операторов if и elif .
В качестве простейшего примера использования if , elif и else приведем программу, которая оценивает, является ли заданное число положительным, отрицательным или нулем:
number = int(input("Введите число для оценки: ")) if (number > 0): print("Положительно") elif (number < 0): print("Отрицательно") else: print("Ноль")
В приведенном примере пришлось обернуть метод input() с помощью int() , так как ввод по умолчанию сохраняется как строковый тип, а нужно, чтобы переменная «number» имела целочисленный тип.
Разница между if и elif заключается в том, что все операторы if в блоке кода будут оцениваться один за другим, несмотря ни на что, а оператор elif будет оцениваться только, если предыдущий оператор if имеет значение false.
Команды словаря
Словарь (dictionary) — встроенный тип объектов в Python, который используется для хранения пар ключ-значение. Он упорядочен, модифицируем и не допускает дублирования значения ключей. Среди основных встроенных методов словаря в Python выделяются следующие: fromkeys() , get() , items() , keys() , values() , pop() , popitem() и setdefault() .
fromkeys()
Метод fromkeys() используется для создания словаря с указанными ключами и значением.
dict.fromkeys(keys, value)
В приведенном синтаксисе:
- keys — кортеж или список ключевых элементов.
- value — значение, которое будет связано со всеми указанными ключами.
get()
Метод get() позволяет получить значения указанного ключа. Если ключ не найден в словаре, get() ничего не вернет, если что-то не будет указано в параметрах.
dictionary.get(key, value)
В приведенном синтаксисе:
- dictionary — имя объекта словаря, в котором нужно выполнить поиск.
- key — ключ, который нужно найти в словаре.
- value — значение, которое будет возвращено, если ключ не будет найден в словаре.
items()
Метод items() используется для отображения всех элементов словаря. Он возвращает объект представления, который будет содержать все пары ключ-значение в виде кортежей в списке. items() не принимает никаких параметров.
dictionary.items()
keys()
Метод keys() используется для получения всех ключей, присутствующих в словаре. Он возвращает объект представления, содержащий все ключи словаря в виде списка. keys() не принимает никаких параметров.
dictionary.keys()
values()
Метод values() позволяет получить всех значения в словаре. Он возвращает объект представления, содержащий все значения словаря в виде списка. values() не принимает никаких параметров.
dictionary.values()
pop()
Метод pop() используется для удаления пары ключ-значение из словаря путем указания ключа. Он возвращает значение пары ключ-значение, которую необходимо удалить.
dictionary.pop(ключ)
Команда popitem () позволяет удалить последнюю вставленную пару из словаря. Она не принимает никаких параметров. popitem () возвращает удаленную пару в виде кортежа.
dictionary.popitem()
Метод setdefault() используется для получения значения указанного ключа. Если ключ не существует, он вставит ключ со значением, переданным в качестве параметра. Если значение не будет указано, setdefault() вставит ключ со значением «None».
dictionary.setdefault(key, value)
Магические команды IPython
«Магические команды» (magic commands) или магические методы Python — одно из важнейших дополнений, сделанных к оригинальной оболочке Python Shell в процессе создания ядра IPython и его официальной реализации Jupyter Notebook. Эти встроенные команды IPython упрощают решение задач по анализу данных с помощью Python, а также обеспечивают упрощенное взаимодействие «змеиного языка» с операционными системами, другими языками программирования или ядрами.
Магические команды Python делятся на 2 типа:
- Строчные (line magics) — обычно начинаются с символа % и работают только в одной строке, Строчные магические команды могут использоваться как выражения, а их возвращаемое значение может быть присвоено переменной.
- Ячеечные (cell magics) — обозначаются двойным префиксом %% и работают во всей ячейке. Они могут вносить произвольные изменения в получаемые входные данные, которые необязательно должны быть кодом Python.
%lsmagic
Команда, которая выводит список всех магических функций, доступных на данный момент.
%quickref
Это команда-шпаргалка, похожая на %lsmagic . Он отображает краткую справку со списком возможностей каждой магической функции.
%who
Позволяет вам увидеть список всех ранее определенных переменных. Вместе с %who используются 2 производные от нее магические команды:
- %whos , которая дает дополнительную информацию о каждой переменной;
- %who_ls — возвращает отсортированный список текущих переменных.
%xdel
Удаляет переменную и любые ссылки на нее из механизма IPython.
%time
Возвращает время выполнения инструкции или выражения Python. Эту команду можно использовать для измерения времени необходимого среде IPython для выполнения выражения Python.
%pinfo
Эта волшебная команда Jupyter Notebook позволяет получить информацию об объекте.
%run
Функция запускает файл Python как программу в Jupyter Notebook. Это может быть особенно полезно, если нужно применить функции, хранящиеся во внешних файлах Python.
%run [имя файла]
В приведенном синтаксисе аргумент «имя файла» должен быть либо скриптом Python (с расширением .py), либо файлом с пользовательским синтаксисом IPython.
%load
Волшебная функция очень похожая на %run . Она загружает код файла в текущий интерфейс Jupyter Notebook. Источником может быть имя файла в каталоге используемого документа (Notebook), URL-адрес или макрос.
%load [имя файла]
В приведенном синтаксисе аргумент «имя файла» должен быть либо скриптом Python (с расширением .py), либо файлом с пользовательским синтаксисом IPython.
Более функциональным аналогом %load служит магическая команда %pycat , которая показывает код внешнего файла Python с подсветкой синтаксиса.
%%writefile
Копирует содержимое ячейки во внешний файл. Магическая команда полезна, если нужно быстро создать файл с кодом в Jupyter Notebook с помощью экспорта всего содержимого указанной ячейки.
Для выполнения экспорта нужно просто добавить %%writefile перед кодом. Команда создаст новый файл, если он не существует. В противном случае файл будет перезаписываться, пока после команды не будет добавлено -a .
%paste
Команда одновременно вводит и выполняет код, делая функцию готовой к использованию. Команда с аналогичным функционалом %cpaste открывает интерактивную многострочную подсказку, в которую можно вставить один или несколько фрагментов кода для выполнения в пакете.
Команды рабочего каталога
%pwd
Волшебная функция %pwd отображает текущий путь к рабочему каталогу.
%cd
Команда %cd позволяет сменить каталог, если после нее указать новый путь. Ее можно использовать несколькими способами:
- %cd — изменяет текущий рабочий каталог на ;
- % cd .. — изменяет текущий каталог на родительский;
- %cd — изменяет текущий каталог на последний посещенный.
%history
Команда %history отображает все предыдущие команды в текущем сеансе. Увидеть подобный список команд и функций может быть полезно, если была случайно удалена команда и ее результат.
%dhist
Волшебная команда %dhist выводит все каталоги, посещенные в текущем сеансе. Каждый раз, когда используется команда %cd , этот список обновляется в переменной « dh ».
%env
Магическая функция используется для получения, установки и перечисления переменных среды. Запуск команды без аргументов отобразит список всех переменных среды. Также можно ввести имя переменной среды, за которой следует команда, и она вернет ее значение:
%env HOMEDRIVE
или использовать %env для установки значения переменной окружения:
%env: HOMEDRIVE=F:
%edit
Эта волшебная команда вызывает текстовый редактор, используемый по умолчанию в текущей ОС (например, «Блокнот» Windows) для редактирования скрипта Python. Скрипт выполняется при закрытии редактора.
%autocall
Эта волшебная команда позволяет автоматически вызывать функцию без использования круглых скобок.
%autocall [режим]
Для приведенного синтаксиса доступно 3 аргумента режима:
- 0 — выключено;
- 1 — smart-режим (по умолчанию);
- 2 — всегда включен.
%automagic
Позволяет вводить магические команды без префикса «%», если установлено значение «1». Без аргументов функция включается/выключается. Для деактивации нужно установить значение «0».
%matplotlib
Магическая функция активирует интерактивную поддержку matplotlib во время сеанса IPython. Однако она не импортирует библиотеку matplotlib.
%notebook
Эта функция преобразует текущую историю IPython в файл «блокнота» IPython с расширением ipynb.
%recall
При выполнении без каких-либо параметров эта функция выполняет предыдущую команду. При указании номера ячейки ( %recall n ) после команды, вызывается команда в этой ячейке ( n ).
%gui [GUINAME]
При использовании без аргумента команда включает или отключает интеграцию цикла событий IPython GUI. С аргументом GUINAME магическая функция заменяет наборы инструментов GUI , используемые по умолчанию, на указанный.
| No. | Команда %gui с аргументом и описание |
| 1 | %gui wx |
Заключение
В этой статье мы провели краткий экскурс по основным методам Python, которыми должен овладеть каждый программист, изучающий «змеиный язык». Приведенный список команд для Python с пояснениями и примерами поможет каждому новичку быстро освоить базовые приемы работы с функционалом этого востребованного языка программирования.
Для лучшего результата в освоении рекомендуем не только попробовать выполнить каждую из приведенных выше команд Python, но и самостоятельно поэкспериментировать со случайными входными параметрами, чтобы увидеть поведение команд.
Нужна надёжная база для разработки программных продуктов на Python? Выбирайте виртуальные серверы от Eternalhost с технической поддержкой 24/7 и защитой от DDoS-атак!
Как включить номера строк в IDLE?
В основной оболочке IDLE ошибки всегда возвращают номер строки, но среда разработки даже не имеет номеров строк. Нужно ли включать номера строк?
User 14 сен. 2013, в 21:43
Поделиться
Ух ты, IDE без номеров строк? Кто-нибудь еще находит это таким же странным, как я?
Paul Feakins 23 март 2019, в 12:54
Поделиться:
python-idle
3 ответа
Лучший ответ
К сожалению, нет опции отображать номера строк в IDLE, хотя для этого открывается запрос расширения.
Однако есть несколько способов обойти это:
- В меню редактирования есть опция go to line (для этого есть ярлык Alt + G по умолчанию).
- В правом нижнем углу экрана отображается текущий номер строки/позиции линии:

ChrisProsser 14 сен. 2013, в 20:47
Поделиться
На Mac ярлык для навигации между строками - cmd + j.
tommy.carstensen 25 апр. 2014, в 11:01
Хотя этот обходной путь работает, почему нумерованные строки не были включены в первый выпуск. Это кажется очевидной особенностью. Очень разочаровывает, что это не входит.
JayRugMan 28 дек. 2017, в 01:29
Если использование скобок для определения области применения сбивает с толку, то номера строк - ракетостроение.
aj.toulan 30 май 2018, в 17:33
Показать ещё 1 комментарий
Есть набор полезных расширений для IDLE, называемых IDLEX, который работает с MacOS и Windows http://idlex.sourceforge.net/
Он включает нумерацию строк, и я нахожу ее довольно удобной и бесплатной.
В противном случае существует множество других IDE, некоторые из которых являются бесплатными: https://wiki.python.org/moin/IntegratedDevelopmentEnvironments
Davos 28 апр. 2014, в 09:46
Поделиться
с открытым исходным кодом: pyscripter (работа в python 3.4)
JinSnow 30 нояб. 2016, в 13:06
Хотите верьте, хотите нет, но сейчас мне действительно нравится VS Code от Microsoft. Это отличный легкий IDE с действительно хорошими плагинами Python. Это также работает через Mac / Linux / Windows. Какой странный (хороший) мир, в котором мы живем, где Microsoft собирается с открытым исходным кодом.
Davos 01 янв. 2017, в 21:31
Если вы пытаетесь отследить, какая строка вызвала ошибку, если вы щелкнете правой кнопкой мыши в оболочке Python, где отображается ошибка строки, она выберет "Перейти к файлу/строке", которая приведет вас непосредственно к линия в вопросе.
Martin Ghecea 20 июль 2017, в 06:23
Поделиться
Ещё вопросы
- 1 String.split, преобразование строк в int
- 0 Подогнать изображение в DIV в Internet Explorer 8
- 0 Mysql: ЗАКАЗАТЬ дважды
- 0 Генерация нескольких JQuery Click
- 1 Поместите JLabel поверх другой JLabel, как в пасьянсе
- 1 Удаление белой внутренней границы из выпадающего списка
- 0 Вся страница печатается в IE при использовании плагина jQuery
- 0 Использование C ++ strstr для поиска строки ac, а затем подсчета
- 1 Python, pip: избегайте gcc во время установки
- 0 asp.net/javascript, почему событие onChange текстового поля не запускается?
- 0 Показывать электронные письма из Gmail на веб-сайте SaaS
- 1 Как проверить Http / 2 через ohttp?
- 0 Как разделить библиотеку между процессом и вызываемым скриптом, используя SWIG?
- 1 BrowserslistError (имя) при сборке gulp
- 0 Получение подстроки между двумя разными разделителями
- 0 php mysql Обновление списка опций таблицы
- 1 Конструктор объекта указывает на исходный конструктор, а не на prototype.constructor после переопределения прототипа функции конструктора.
- 0 DataGridview результат запроса 0
- 0 Как условно создать другой раздел в угловом шаблоне (html файл)
- 1 Отключить асинхронную загрузку Google Analytics
- 1 Невозможно отправить настраиваемое поле, которое расширяет представление данных
- 1 Как получить значение столбца DataTable с массивом?
- 0 не может получить 2-й дататабельно свой собственный CSS
- 0 Как внедрить $ scope в шаблон компиляции?
- 0 Причина, почему оператор = обычно возвращает ссылку на объект в C ++?
- 0 Внутренний div с квадратным соотношением и flexbox [дубликаты]
- 1 Как создать потокобезопасный настраиваемый HTML-результат в Testng
- 0 Карты Google - Использование Заменить
- 1 Почему TextReader жалуется, когда файл открывается другим процессом?
- 1 Совпадение строки между двумя символами регулярное выражение
- 1 Как установить цвет текста JProgressBar независимо для нескольких JProgressBar без изменения внешнего вида
- 0 как скрыть элемент сообщения при загрузке / добавлении нового сообщения в список каналов?
- 0 Угловой-включить не работает
- 0 Безопасно ли устанавливать ссылки следующим образом
- 0 Размер массива ограничен в PHP scandir ()
- 1 как подстроку строки при поиске определенного имени?
- 0 Замена набора данных 1,5 миллиона строк каждые 5 минут
- 0 Двоичное дерево JavaScript с поиском по ширине
- 0 Управление календарем Activex - настроить раскрывающийся список года
- 0 Ошибка при выделении текста жирным и цветным шрифтом в JTextPane
- 1 многомерный массив javascript
- 0 отобразить значение из общего указателя
- 1 Как получить имя целевой функции из склеарна `Bunch`
- 0 как получить необходимый контент, используя функцию strip_tags в php
- 1 Кнопка не видна из-за DataGrid
- 0 Застрял с Flexslider - не показывает
- 1 ArrayIndexOutOfBoundsException при попытке суммировать двоичные числа
- 0 Winsock2: «слушай» возвращается рано
- 1 Почему ChipGroup внутри HorizontalScrollView с полем ChipEnd не работает?
- 1 Как создать несжатый файл PDF?
Python-сообщество
![]()
- Начало
- » Python для новичков
- » Нумерация строк в IDLE
#1 Март 14, 2015 18:03:32
alex28746 Зарегистрирован: 2015-01-18 Сообщения: 61 Репутация: 0 Профиль Отправить e-mail
Нумерация строк в IDLE
Добрый день. Подскажите такой вопрос. Есть ли возможность в IDLE настроить показ номера строки? Потому что по стандарту там они не пронумерованы, пробовал искать в настройках не нашел.
Благодарю за внимание!
#2 Март 14, 2015 20:08:45
alex925 Зарегистрирован: 2015-01-08 Сообщения: 204 Репутация: 14 Профиль Отправить e-mail
Нумерация строк в IDLE
Зачем вообще пачкаться об этот шлак? Ставь или IDE нормальную или нормальный блокнот.
#3 Март 14, 2015 21:05:34
MiK Зарегистрирован: 2014-10-30 Сообщения: 191 Репутация: -1 Профиль Отправить e-mail
Нумерация строк в IDLE
alex28746
Нет, там такого нету.
В нижнем правом углу есть отображение номера строки и колонки. Плюс быстрый переход из сообщения об ошибке к той строке которую эта ошибка вызвала по ПКМ.
alex925
IDLE очень хорошая среда для разработки. Ты своими “советами” всех достал уже.
#4 Март 14, 2015 21:30:25
alex925 Зарегистрирован: 2015-01-08 Сообщения: 204 Репутация: 14 Профиль Отправить e-mail
Нумерация строк в IDLE
MiK
IDLE очень хорошая среда для разработки
Ахахаха, ну насмешил. Давно так не смеялся.
MiK
Ты своими “советами” всех достал уже.

Думаю, только тебя и то только потому, что ты на правду агрессивно реагируешь
Первая программа. Среда разработки IDLE

Сегодня мы напишем свою первую программу в среде разработки IDLE.
После загрузки и установки python открываем IDLE (среда разработки на языке Python, поставляемая вместе с дистрибутивом).
Здесь и далее буду приводить примеры под ОС Windows, так как именно она у меня сейчас под рукой.
Запускаем IDLE (изначально запускается в интерактивном режиме), после чего уже можно начинать писать первую программу. Традиционно, первой программой у нас будет "hello world".
Чтобы написать "hello world" на python, достаточно всего одной строки:
Вводим этот код в IDLE и нажимаем Enter. Результат виден на картинке:
Поздравляю! Вы написали свою первую программу на python! (если что-то не работает).
С интерактивным режимом мы немного познакомились, можете с ним ещё поиграться, например, написать
Но, всё-таки, интерактивный режим не будет являться основным. В основном, вы будете сохранять программный код в файл и запускать уже файл.
Для того, чтобы создать новое окно, в интерактивном режиме IDLE выберите File → New File (или нажмите Ctrl + N).
В открывшемся окне введите следующий код:
Первая строка печатает вопрос ("Как Вас зовут? "), ожидает, пока вы не напечатаете что-нибудь и не нажмёте Enter и сохраняет введённое значение в переменной name.
Во второй строке мы используем функцию print для вывода текста на экран, в данном случае для вывода "Привет, " и того, что хранится в переменной "name".
Теперь нажмём F5 (или выберем в меню IDLE Run → Run Module) и убедимся, что то, что мы написали, работает. Перед запуском IDLE предложит нам сохранить файл. Сохраним туда, куда вам будет удобно, после чего программа запустится.
Вы должны увидеть что-то наподобие этого (на скриншоте слева - файл с написанной вами программой, справа - результат её работы):
Поздравляю! Вы научились писать простейшие программы, а также познакомились со средой разработки IDLE. Теперь можно немного отдохнуть, а потом начать изучать python дальше. Можете посмотреть синтаксис python, циклы или условия. Желаю удачи!
Для вставки кода на Python в комментарий заключайте его в теги
Основные команды Python — полное описание с примерами

Сегодня Python вошел в число самых популярных языков программирования в мире. Этот интерпретируемый язык высокого уровня общего назначения был разработан Гвидо ван Россумом в 1991 году и с тех пор неуклонно набирал репутацию среди пользователей.
Синтаксис Python схож с английским, что делает его крайне доступным и простым в освоении для новичков. Команды языка программирования Python просты в использовании, легко пишутся и запоминаются. В этой шпаргалке для тех, кто начинает изучать «змеиный язык», мы разберем синтаксис и назначение основных команд Python.
Важно! Согласно официальной документации, в Python нет самого понятия «команды», но есть различные встроенные методы или функции, которые можно выполнять в оболочке языка, как обычные команды. Поэтому в данном справочнике команд Python, мы будем использовать термины «команды», «функции» и «методы» (специальные классы функций) взаимозаменяемо.
Базовые команды Python
pip
Менеджер пакетов Python. Команда pip install используется для установки любого программного пакета из онлайн-репозитория общедоступных пакетов или Индекса пакетов Python (PyPI, Python Package Index).
pip install имя-пакета
Команда для печати сообщений на экране или другом стандартном устройстве вывода. Команда print может использоваться для печати любого типа объекта — целого числа, строки, списка, кортежа и других.
print(объект)
class
Команда для создания классов. Python поддерживает объектно-ориентированное программирование и позволяет пользователям создавать классы и инициализировать объекты. Класс может состоять из переменных с модификаторами доступа, функций с возвращаемыми типами и даже других классов (вложенный класс). Синтаксис выглядит class так:
class ИмяКласса: код_тела_класса
Пример кода ниже продемонстрирует применение class при создании класса «student»:
«student»: class student: name = "" def setName(self, passedValue): self.name = passedValue def displayName(self): print(self.name)
Чтобы использовать класс в Python, необходимо сначала создать его экземпляр, называемый объектом. Для этого нужно вызвать класс по имени следующим образом:
ИмяКласса()
Как видно из приведенного выше синтаксиса, при создании объекта в Python, после имени класса всегда ставятся круглые скобки. Обычно для удобства поиска вновь созданный объект тут же привязывается к переменной, через которую к нему в дальнейшем и обращаются:
имя_переменной = ИмяКласса()
Пример создания объекта для класса «student»:
mystudent = student() mystudent.setName("Alex Ignatov") mystudent.displayName()
В результате мы получим вывод:
Alex Ignatov
Как и в других языках программирования, в Python также можно реализовать конструкторы и статические методы в классах, используя соответственно метод dunder init() и декоратор @staticmethod .
type
Команда для проверки типа или класса объекта.
type(объект)
range
Команда для генерации последовательности целых чисел, начиная с 0 по умолчанию и заканчивая n, где n не включено в сгенерированные числа. Эта команда в основном используется в циклах for.
range(start, stop, step)
В приведенном синтаксисе:
- start — начало диапазона (опционально; по умолчанию — 0);
- stop — номер, перед которым нужно остановиться (обязательно);
- step — счетчик приращений (опционально; по умолчанию — 1).
Важно. Если функции range() будут даны только два параметра, она всегда будет рассматривать их как (start, stop), а не как (stop, step).
round
Команда для округления числа до заданной точности в десятичных разрядах. Позволяет сократить количество цифр после запятой в числе с плавающей запятой до указанного значения.
round(number, digits)
В приведенном синтаксисе:
- number — число с плавающей запятой;
- digits — количество цифр после десятичной точки (опционально; по умолчанию — 0).
input
Команда для получения ввода от пользователя. Исполнение программы будет остановлено до тех пор, пока пользователь не введет какое-либо значение, которое будет преобразовано функцией input() в строку. Если в качестве входных данных нужно взять целое число, его нужно преобразовать явно.
input(message)
В приведенном синтаксисе: message — текст, который нужно отобразить пользователю (опционально).
def
Команда определения функции Python дает возможность оборачивать повторно используемый код внутри функций, чтобы вызваны его позже, когда это необходимо. Функция def позволяет свести к минимуму избыточность кода.
def имя_функции (параметры): """строка документации""" состояние(я)
len
Команда len или функция len() используются для подсчёта количества элементов в объекте. Если объект является строкой, то функция len() возвращает количество присутствующих в ней символов. Если объект представляет собой список или кортеж, он вернет количество элементов, присутствующих в этом списке или кортеже. При попытке передать len() целочисленное значение, функция выдает ошибку.
len(object)
В приведенном синтаксисе: object — объект, длину которого необходимо найти (обязательно).
Циклические команды
В Python есть две простейшие команды цикла (loop commands) — while и for . Команда while используется для выполнения набора операторов, если заданное условие истинно.
while condition: statements update iterator
Команда цикла for используется для выполнения набора операторов путем повторения последовательности. Эта последовательность может быть списком, кортежем, строкой, словарем и т. д.
for x in sequence: statements
Команды Python среднего уровня
Строковые команды
В языке программирования Python есть различные команды для строковых объектов. Они не изменяют исходный строковый объект, а просто возвращают новый. Наиболее важные функции и методы строк в Python — isalnum() , capitalize() , find() , count() и center() .
isalnum()
Команда isalnum() проверяет, являются ли все символы данной строки буквенно-цифровыми или нет. Он возвращает логическое значение.
stringname.isalnum()
capitalize()
Строковая функция capitalize() возвращает строку, изменяя ее первый символ на верхний регистр, а остальные переводя в нижний. Если первый символ уже в верхнем регистре, а также представляет собой целое число или любой специальный символ, команда ничего не делает.
stringname.capitalize()
find()
Команда find() используется для поиска подстроки в строке. Если таковая найдена, find() возвращает индекс первого вхождения подстроки, в противном случае возвращает -1.
string.find(substring)
В приведенном синтаксисе:
- string — строка, где будет выполняться поиск.
- substring — подстрока, значение которой нужно найти.
count()
Строковая функция count() возвращает количество вхождений подстроки в строковый объект.
stringname.count(substring, start, end)
В приведенном синтаксисе:
- stringname — строка, где будет выполняться поиск.
- substring — подстрока, значение которой нужно найти.
- start — начальный индекс в строке, с которого начинается поиск (опционально).
- end — конечный индекс в строке, где заканчивается поиск (опционально).
center()
Команда center() используется для выравнивания строки по центру с заполнением указанным символом.
string.center(length, character)
В приведенном синтаксисе:
- string — строка, которую нужно выровнять по центру.
- length — полная длина новой строки.
- character — символ для заполнения пропущенного места с каждой стороны. По умолчанию — « » (пробел).
Команды для объектов списка
Списки используются для хранения нескольких элементов с различными типами данных в одном объекте. Наиболее важные методы списков Python — append() , copy() , insert() , pop() , reverse() и sort() .
append()
Команда списка append() используется для добавления элемента в конец списка.
list.append(element)
В приведенном синтаксисе:
- list — объект списка, в который нужно добавить элемент.
- element — новый элемент, который добавляется в список.
copy()
Команда copy() создает новую копию объекта списка. Она возвращает новый объект списка.
list.copy()
insert()
Команда insert() добавляет элемент в указанное место в объекте списка.
listname.insert(position, element)
В приведенном синтаксисе:
- position — позиция, в которую нужно вставить новый элемент. Если указанная позиция превышает количество элементов в списке, элемент будет вставляться в конец.
- element — новый элемент, который необходимо добавить.
pop()
Метод pop() используется для удаления элемента из указанной позиции в списке. Он возвращает элемент после удаления его из списка.
listname.pop(position)
В приведенном синтаксисе: position — позиция откуда нужно удалить элемент.
reverse()
Метод reverse() изменяет порядок всех элементов в списке. Команда изменяет исходный объект списка и ничего не возвращает.
list.reverse()
sort()
Метод sort() по умолчанию используется для сортировки элементов списка в порядке возрастания.
list.sort()
Команды кортежа
Кортеж (tuple) — встроенный тип данных, который используется для хранения нескольких элементов в одной переменной. Объекты кортежа упорядочены и неизменны. В Python есть два встроенных метода кортежа — count() и index() .
count()
Метод count() используется для подсчета вхождений элемента в кортеже.
tuple.count(элемент)
index()
Метод index() используется для поиска индекса первого вхождения элемента. Если элемент не найден во всем кортеже, будет выведена ошибка «ValueError».
tuple.index(элемент)
Продвинутые команды Python
Команды множества
Встроенный тип множество ( set ) в Python используется для хранения нескольких элементов в одном объекте. Этот тип объектов не допускает дублирования или изменения элементов, только добавление новых или удаление существующих.
Множества неупорядочены и неиндексированы, поэтому при попытке отобразить все элементы set, они будут выведены в случайном порядке.
add()
Команда add() позволяет добавить новый элемент в множество.
setname.add(element)
В приведенном синтаксисе:
- setname — имя переменной set, в которую нужно добавить новый элемент.
- element — элемент, который необходимо добавить.
clear ()
Функция clear () удаляет все элементы set. Она не принимает никаких параметров.
setname.clear()
discard()
Команда discard() позволяет удалить указанный элемент из набора. Если элемент не найден в наборе, она не выдаст ошибку.
setname.discard(element)
В приведенном синтаксисе:
- setname — имя переменной set, из которой нужно удалить элемент.
- element — элемент, который необходимо удалить.
remove()
Команда remove() также используется для удаления указанного элемента из множества. От команды discard() она отличается сообщением об ошибке, которое выводится, если указанный элемент не найден.
setname.remove(element)
В приведенном синтаксисе:
- setname — имя переменной множества, из которой нужно удалить элемент.
- element — элемент, который необходимо удалить.
difference()
Метод difference() используется для получения множества, содержащего разность двух множеств. В нем будут только те элементы, которые присутствуют только в одном множестве и отсутствуют в другом. Например, difference() для множеств setA и setB будет .
setA.difference(setB)
difference_update()
Метод difference_update() позволяет получить набор элементов, которые присутствуют в первом множестве и не являются общими для обоих. Это означает, что difference_update() удаляет элементы, существующие в обоих множествах. Он не возвращает новый set, а просто удаляет общие элементы из первого множества.
setA.difference_update(setB)
intersection()
Метод intersection() отображает множество, содержащее элементы, которые существуют во всех указанных множествах.
set.intersection(set1, set2, … setn)
issubset()
Метод issubset() проверяет, все ли элементы множества setA присутствуют в setB. Команда возвращает логическое значение.
setA.issubset(setB)
symmetric_difference()
Метод symmetric_difference() возвращает симметричную разность двух множеств, содержащую все элементы, за исключением общих.
setA.symmetric_difference(setB)
union()
Метод union() возвращает все элементы из обоих множеств, кроме повторяющихся.
setA.union(setB)
if, elif, else
Эти операторы Python, также называемые операторами ветвления или операторами условного управления, позволяют изменять ход выполнения программы в зависимости от условий.
- Команда if оценивает выражение и, если оно истинно (true), выполняет операторы под ним.
- Команда elif (else if) предоставляет другое выражение, которое оценивается, если предыдущий оператор if возвращает отрицательное значение «false».
- Если никакие предыдущие операторы ( if или elif ) не возвращают положительное значение «true», вычисляется выражение, предоставленное командой else .
Обратите внимание. В одном блоке кода может быть несколько операторов if и elif .
В качестве простейшего примера использования if , elif и else приведем программу, которая оценивает, является ли заданное число положительным, отрицательным или нулем:
number = int(input("Введите число для оценки: ")) if (number > 0): print("Положительно") elif (number < 0): print("Отрицательно") else: print("Ноль")
В приведенном примере пришлось обернуть метод input() с помощью int() , так как ввод по умолчанию сохраняется как строковый тип, а нужно, чтобы переменная «number» имела целочисленный тип.
Разница между if и elif заключается в том, что все операторы if в блоке кода будут оцениваться один за другим, несмотря ни на что, а оператор elif будет оцениваться только, если предыдущий оператор if имеет значение false.
Команды словаря
Словарь (dictionary) — встроенный тип объектов в Python, который используется для хранения пар ключ-значение. Он упорядочен, модифицируем и не допускает дублирования значения ключей. Среди основных встроенных методов словаря в Python выделяются следующие: fromkeys() , get() , items() , keys() , values() , pop() , popitem() и setdefault() .
fromkeys()
Метод fromkeys() используется для создания словаря с указанными ключами и значением.
dict.fromkeys(keys, value)
В приведенном синтаксисе:
- keys — кортеж или список ключевых элементов.
- value — значение, которое будет связано со всеми указанными ключами.
get()
Метод get() позволяет получить значения указанного ключа. Если ключ не найден в словаре, get() ничего не вернет, если что-то не будет указано в параметрах.
dictionary.get(key, value)
В приведенном синтаксисе:
- dictionary — имя объекта словаря, в котором нужно выполнить поиск.
- key — ключ, который нужно найти в словаре.
- value — значение, которое будет возвращено, если ключ не будет найден в словаре.
items()
Метод items() используется для отображения всех элементов словаря. Он возвращает объект представления, который будет содержать все пары ключ-значение в виде кортежей в списке. items() не принимает никаких параметров.
dictionary.items()
keys()
Метод keys() используется для получения всех ключей, присутствующих в словаре. Он возвращает объект представления, содержащий все ключи словаря в виде списка. keys() не принимает никаких параметров.
dictionary.keys()
values()
Метод values() позволяет получить всех значения в словаре. Он возвращает объект представления, содержащий все значения словаря в виде списка. values() не принимает никаких параметров.
dictionary.values()
pop()
Метод pop() используется для удаления пары ключ-значение из словаря путем указания ключа. Он возвращает значение пары ключ-значение, которую необходимо удалить.
dictionary.pop(ключ)
Команда popitem () позволяет удалить последнюю вставленную пару из словаря. Она не принимает никаких параметров. popitem () возвращает удаленную пару в виде кортежа.
dictionary.popitem()
Метод setdefault() используется для получения значения указанного ключа. Если ключ не существует, он вставит ключ со значением, переданным в качестве параметра. Если значение не будет указано, setdefault() вставит ключ со значением «None».
dictionary.setdefault(key, value)
Магические команды IPython
«Магические команды» (magic commands) или магические методы Python — одно из важнейших дополнений, сделанных к оригинальной оболочке Python Shell в процессе создания ядра IPython и его официальной реализации Jupyter Notebook. Эти встроенные команды IPython упрощают решение задач по анализу данных с помощью Python, а также обеспечивают упрощенное взаимодействие «змеиного языка» с операционными системами, другими языками программирования или ядрами.
Магические команды Python делятся на 2 типа:
- Строчные (line magics) — обычно начинаются с символа % и работают только в одной строке, Строчные магические команды могут использоваться как выражения, а их возвращаемое значение может быть присвоено переменной.
- Ячеечные (cell magics) — обозначаются двойным префиксом %% и работают во всей ячейке. Они могут вносить произвольные изменения в получаемые входные данные, которые необязательно должны быть кодом Python.
%lsmagic
Команда, которая выводит список всех магических функций, доступных на данный момент.
%quickref
Это команда-шпаргалка, похожая на %lsmagic . Он отображает краткую справку со списком возможностей каждой магической функции.
%who
Позволяет вам увидеть список всех ранее определенных переменных. Вместе с %who используются 2 производные от нее магические команды:
- %whos , которая дает дополнительную информацию о каждой переменной;
- %who_ls — возвращает отсортированный список текущих переменных.
%xdel
Удаляет переменную и любые ссылки на нее из механизма IPython.
%time
Возвращает время выполнения инструкции или выражения Python. Эту команду можно использовать для измерения времени необходимого среде IPython для выполнения выражения Python.
%pinfo
Эта волшебная команда Jupyter Notebook позволяет получить информацию об объекте.
%run
Функция запускает файл Python как программу в Jupyter Notebook. Это может быть особенно полезно, если нужно применить функции, хранящиеся во внешних файлах Python.
%run [имя файла]
В приведенном синтаксисе аргумент «имя файла» должен быть либо скриптом Python (с расширением .py), либо файлом с пользовательским синтаксисом IPython.
%load
Волшебная функция очень похожая на %run . Она загружает код файла в текущий интерфейс Jupyter Notebook. Источником может быть имя файла в каталоге используемого документа (Notebook), URL-адрес или макрос.
%load [имя файла]
В приведенном синтаксисе аргумент «имя файла» должен быть либо скриптом Python (с расширением .py), либо файлом с пользовательским синтаксисом IPython.
Более функциональным аналогом %load служит магическая команда %pycat , которая показывает код внешнего файла Python с подсветкой синтаксиса.
%%writefile
Копирует содержимое ячейки во внешний файл. Магическая команда полезна, если нужно быстро создать файл с кодом в Jupyter Notebook с помощью экспорта всего содержимого указанной ячейки.
Для выполнения экспорта нужно просто добавить %%writefile перед кодом. Команда создаст новый файл, если он не существует. В противном случае файл будет перезаписываться, пока после команды не будет добавлено -a .
%paste
Команда одновременно вводит и выполняет код, делая функцию готовой к использованию. Команда с аналогичным функционалом %cpaste открывает интерактивную многострочную подсказку, в которую можно вставить один или несколько фрагментов кода для выполнения в пакете.
Команды рабочего каталога
%pwd
Волшебная функция %pwd отображает текущий путь к рабочему каталогу.
%cd
Команда %cd позволяет сменить каталог, если после нее указать новый путь. Ее можно использовать несколькими способами:
- %cd — изменяет текущий рабочий каталог на ;
- % cd .. — изменяет текущий каталог на родительский;
- %cd — изменяет текущий каталог на последний посещенный.
%history
Команда %history отображает все предыдущие команды в текущем сеансе. Увидеть подобный список команд и функций может быть полезно, если была случайно удалена команда и ее результат.
%dhist
Волшебная команда %dhist выводит все каталоги, посещенные в текущем сеансе. Каждый раз, когда используется команда %cd , этот список обновляется в переменной « dh ».
%env
Магическая функция используется для получения, установки и перечисления переменных среды. Запуск команды без аргументов отобразит список всех переменных среды. Также можно ввести имя переменной среды, за которой следует команда, и она вернет ее значение:
%env HOMEDRIVE
или использовать %env для установки значения переменной окружения:
%env: HOMEDRIVE=F:
%edit
Эта волшебная команда вызывает текстовый редактор, используемый по умолчанию в текущей ОС (например, «Блокнот» Windows) для редактирования скрипта Python. Скрипт выполняется при закрытии редактора.
%autocall
Эта волшебная команда позволяет автоматически вызывать функцию без использования круглых скобок.
%autocall [режим]
Для приведенного синтаксиса доступно 3 аргумента режима:
- 0 — выключено;
- 1 — smart-режим (по умолчанию);
- 2 — всегда включен.
%automagic
Позволяет вводить магические команды без префикса «%», если установлено значение «1». Без аргументов функция включается/выключается. Для деактивации нужно установить значение «0».
%matplotlib
Магическая функция активирует интерактивную поддержку matplotlib во время сеанса IPython. Однако она не импортирует библиотеку matplotlib.
%notebook
Эта функция преобразует текущую историю IPython в файл «блокнота» IPython с расширением ipynb.
%recall
При выполнении без каких-либо параметров эта функция выполняет предыдущую команду. При указании номера ячейки ( %recall n ) после команды, вызывается команда в этой ячейке ( n ).
%gui [GUINAME]
При использовании без аргумента команда включает или отключает интеграцию цикла событий IPython GUI. С аргументом GUINAME магическая функция заменяет наборы инструментов GUI , используемые по умолчанию, на указанный.
| No. | Команда %gui с аргументом и описание |
| 1 | %gui wx |
Заключение
В этой статье мы провели краткий экскурс по основным методам Python, которыми должен овладеть каждый программист, изучающий «змеиный язык». Приведенный список команд для Python с пояснениями и примерами поможет каждому новичку быстро освоить базовые приемы работы с функционалом этого востребованного языка программирования.
Для лучшего результата в освоении рекомендуем не только попробовать выполнить каждую из приведенных выше команд Python, но и самостоятельно поэкспериментировать со случайными входными параметрами, чтобы увидеть поведение команд.
Нужна надёжная база для разработки программных продуктов на Python? Выбирайте виртуальные серверы от Eternalhost с технической поддержкой 24/7 и защитой от DDoS-атак!