Python работа с консолью windows

Часть этой главы основана на учебных пособиях Geek Girls Carrots (https://github.com/ggcarrots/django-carrots).

Давай напишем немного кода!

Консоль Python

Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Integers, Strings, Lists, Variables and Errors.

Чтобы начать играть с Python, нам нужно открыть командную строку на твоём компьютере. Ты уже должна знать, как это сделать — мы изучали это в главе Введение в интерфейс командной строки.

Когда будешь готова, следуй приведенным ниже инструкциям.

Мы хотим открыть консоль Python, так что набери python, если работаешь в Windows, или python3 для Mac OS/Linux, и нажми enter.

command-line

$ python3
Python 3.6.1 (...)
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.

command-line

>>> 2 + 3
5

Прекрасно! Видишь, как выскочил ответ? Python знает математику! Ты можешь попробовать другие команды, например:

  • 4 * 5
  • 5 - 1
  • 40 / 2

Чтобы вычислить степень числа, например, 2 в кубе, мы вводим:

command-line

>>> 2 ** 3
8

Поиграй с этим немного и затем вернись сюда :).

Как видишь, Python является прекрасным калькулятором. Если тебе интересно, что ещё можно сделать…

Строки

Как насчет твоего имени? Введи своё имя в кавычках, вот так:

command-line

>>> "Ola"
'Ola'

Ты только что создала свою первую строку! Это последовательность символов, которые могут быть обработаны компьютером. Строка должна всегда начинаться и заканчиваться одинаковым символом. Им может быть одинарная (') или двойная (") кавычка (разницы нет!) Кавычки говорят Python’у, что внутри них находится строка.

Строки могут быть слиты воедино. Попробуй так:

command-line

>>> "Hi there " + "Ola"
'Hi there Ola'

Ты также можешь умножать строки на число:

command-line

>>> "Ola" * 3
'OlaOlaOla'

Если тебе нужно поставить апостроф внутри строки, то есть два способа сделать это.

Используй двойные кавычки:

command-line

>>> "Runnin' down the hill"
"Runnin' down the hill"

или поставь перед апострофом обратную косую черту (\):

command-line

>>> 'Runnin\' down the hill'
"Runnin' down the hill"

Прикольно, да? Чтобы увидеть своё имя прописными буквами, просто набери:

command-line

>>> "Ola".upper()
'OLA'

Ты только что использовала метод upper своей строки! Метод (такой как upper()) представляет собой набор инструкций, который должен выполнить Python над заданным объектом (в нашем случае: "Ola") при его вызове.

Если ты хочешь узнать количество букв в своём имени, то и для этого тоже существует функция!

command-line

>>> len("Ola")
3

Интересно, почему иногда мы вызываем функцию добавлением . к концу строки (как "Ola".upper()), а иногда сначала пишем имя функции и затем помещаем строку в скобки? Ну, в некоторых случаях функции принадлежат объектам, например, функция upper(), которая может быть применена только к строкам. В этом случае мы называем функцию методом. В другом случае функции не относятся к чему-то конкретному и могут использоваться для различных типов объектов, например, функция len(). Вот почему мы передаем "Ola" в качестве параметра функции len.

Подведём итог

Хорошо, достаточно о строках. Пока ты узнала следующее:

  • командная строка — ввод команд (кода) в интерактивную командную строку Python приводит к ответам на Python;
  • числа и строки — в Python числа используются для вычислений, а строки — для текстовых объектов;
  • операторы, такие как + и *, объединяют значения для получения нового;
  • функции, такие как upper() и len(), выполняют действия над объектами.

Таковы основы каждого языка программирования, который ты можешь выучить. Готова к чему-то посложнее? Мы уверены, что готова!

Ошибки

Давай попробуем кое-что новенькое. Можем ли мы получить длину числа так же, как длину твоего имени? Введи len(304023) и нажми Enter:

command-line

>>> len(304023)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

Мы получили нашу первую ошибку! Иконкой мы будем обозначать код, который при запуске сработает не так, как ожидается. Совершение ошибок (даже преднамеренных) — важная часть обучения!

Она говорит о том, что у объектов типа «int» (целые числа) нет длины. Так что же мы можем сейчас сделать? Может быть, мы можем написать наше число в виде строки? У строк ведь есть длина, верно?

command-line

>>> len(str(304023))
6

Сработало! Мы использовали функцию str внутри функции len. str() преобразует всё в строки.

  • Функция str преобразует объекты в строки
  • Функция int преобразует объекты в целые числа

Важно: мы можем преобразовать число в текст, но не всегда удается преобразовать текст в числа — например, каков будет результат int('hello')?

Переменные

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

Допустим, мы хотим создать новую переменную с именем name:

command-line

>>> name = "Ola"

Видишь? Это очень легко! Просто введи: name равно Ola.

Как ты уже заметила, твоя программа не возвращает ничего, как было ранее. Так откуда мы знаем, что переменная действительно существует? Просто введи name и нажми Enter:

command-line

>>> name
'Ola'

Ура! Твоя первая переменная:)! Ты всегда можешь изменить то, к чему она относится:

command-line

>>> name = "Sonja"
>>> name
'Sonja'

Ты также можешь использовать переменные и в функциях:

command-line

>>> len(name)
5

Круто, правда? Переменными, конечно, может быть что угодно, и цифры тоже! Попробуй следующее:

command-line

>>> a = 4
>>> b = 6
>>> a * b
24

Но что делать, если мы использовали неправильное имя? Можешь догадаться, что произойдет? Давай попробуем!

command-line

>>> city = "Tokyo"
>>> ctiy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'ctiy' is not defined

Ошибка! Как ты можешь видеть, в Python есть различные типы ошибок, эта называется NameError. Python выдаст эту ошибку при попытке использовать переменную, которая пока не определена. При возникновении этой ошибки проверь свой код, чтобы узнать, не написала ли ты неправильно имя переменной.

Попрактикуйся в этом какое-то время и посмотри, что ты сможешь сделать!

Функция print

Попробуй ввести:

command-line

>>> name = 'Maria'
>>> name
'Maria'
>>> print(name)
Maria

Если просто ввести name, интерпретатор Python вернет строковое представление переменной ‘name’, которым, в нашем случае, являются буквы M-a-r-i-a, окруженные одинарными кавычками, ». Когда ты вводишь print(name), Python «печатает» содержание переменной на экран, без кавычек, что удобнее.

Как мы увидим позднее, print() пригодится, когда нам будет нужно печатать что-то изнутри функций или когда мы захотим напечатать что-то на нескольких строчках.

Списки

Помимо строк и целых чисел Python имеет богатую коллекцию других типов объектов. Сейчас мы собираемся представить тебе один из них — list (список). Списки — это именно то, о чём ты подумала: объекты, которые являются списками других объектов :)

Давай начнем с создания списка:

command-line

>>> []
[]

Отлично, это пустой список. Не особенно полезен, да? Давай создадим список лотерейных номеров. Мы не хотим повторять их каждый раз, так что присвоим список переменной:

command-line

>>> lottery = [3, 42, 12, 19, 30, 59]

Замечательно, у нас есть список! Что мы можем с ним сделать? Для начала посмотрим, как много лотерейных номеров в нашем списке. Есть идеи, какую функцию можно использовать для этого? Ты её уже знаешь!

command-line

>>> len(lottery)
6

Точно! len() вернет тебе количество объектов в списке. Удобно, правда? Пожалуй, мы теперь отсортируем его:

command-line

>>> lottery.sort()

Эта команда не возвращает ничего, она просто меняет порядок номеров в списке. Давайте выведем его на экран и посмотрим, что получилось:

command-line

>>> print(lottery)
[3, 12, 19, 30, 42, 59]

Как видишь, номера в списке теперь отсортированы от меньшего к большему. Поздравляем!

Может, нам нужно обратить порядок? Давай сделаем это!

command-line

>>> lottery.reverse()
>>> print(lottery)
[59, 42, 30, 19, 12, 3]

Просто, правда? Если хочешь добавить что-то к своему списку, то можешь воспользоваться этой командой:

command-line

>>> lottery.append(199)
>>> print(lottery)
[59, 42, 30, 19, 12, 3, 199]

Если ты хочешь получить только первый номер в списке, то можешь воспользоваться индексами. Индекс — это номер позиции в списке, на котором находится нужное нам значение. Программисты предпочитают начать считать с 0, так что первому объекту в списке соответствует индекс 0, следующему —1, и так далее. Попробуй ввести:

command-line

>>> print(lottery[0])
59
>>> print(lottery[1])
42

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

Чтобы удалить что-либо из списка, тебе понадобятся индексы, с которыми мы уже разобрались выше, и команда pop(). Давай попробуем закрепить пройденное на примере: мы будем удалять первый элемент из нашего списка.

command-line

>>> 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.

Словари схожи со списками, но ты обращаешься к значениям словаря по ключу, а не по индексу. Ключом может быть любая строка или число. Давай создадим пустой словарь:

command-line

>>> {}
{}

Это показывает, что мы создали пустой словарь. Ура!

Теперь попробуй следующую команду (можешь заменить значения на своё имя, страну и т.д.):

command-line

>>> participant = {'name': 'Ola', 'country': 'Poland', 'favorite_numbers': [7, 42, 92]}

Этой командой ты создала переменную participant с тремя парами ключ/значение:

  • ключ name, указывающий на значение 'Ola' (объект типа строка),
  • ключ country, указывающий на значение 'Poland' (еще одна строка),
  • и ключ favorite_numbers, указывающий на значение [7, 42, 92] (объект типа список с тремя числами внутри).

Значение конкретного ключа можно узнать следующим образом:

command-line

>>> print(participant['name'])
Ola

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

Что случится, если мы спросим у Python значение несуществующего в словаре ключа? Можешь предположить? Давай попробуем и узнаем наверняка!

command-line

>>> participant['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Смотри, другая ошибка! Эта называется KeyError. Python услужливо напоминает, что ключа 'age' нет в словаре.

Когда стоит использовать словарь, а когда список? Это хороший вопрос для самостоятельного размышления. Сделай предположение перед тем, как читать дальше.

  • Тебе нужна упорядоченная последовательность элементов? Список — наш выбор.
  • Тебе нужны сочетания ключ/значение, чтобы быстро искать значения (по ключу) в дальнейшем? Словарь отлично подойдет.

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

command-line

>>> participant['favorite_language'] = 'Python'

Так же как в примере со списками, использование функции len() вернёт число пар ключ/значение в словаре. Попробуй сама:

command-line

>>> len(participant)
4

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

Ты можешь использовать команду pop() для удаления элементов из словаря. Скажем, ты хочешь удалить элемент с ключом 'favorite_numbers'. Просто набери следующую команду:

command-line

>>> participant.pop('favorite_numbers')
[7, 42, 92]
>>> participant
{'country': 'Poland', 'favorite_language': 'Python', 'name': 'Ola'}

Как видишь, пара ключ/значение с ключом ‘favorite_numbers’ была удалена.

Помимо этого, ты можешь заменить значение, связанное с уже существующим ключом. Набери:

command-line

>>> participant['country'] = 'Germany'
>>> participant
{'country': 'Germany', 'favorite_language': 'Python', 'name': 'Ola'}

Значение, на которое ссылается ключ 'country', изменилось с 'Poland' на 'Germany'. :) Захватывает? Ещё бы! Ты выучила еще одну потрясающую штуку!

Подведём итог

Шикарно! Теперь ты знаешь немало о программировании. Мы познакомились с:

  • ошибками — теперь ты знаешь как читать и анализировать ошибки, которые возникают, если Python не понимает твоей команды;
  • переменными — именами для объектов, которые упрощают твой код и делают его более читабельным;
  • списками — последовательностями объектов в заданном порядке;
  • словарями — объектами, хранящими пары ключ/значение.

Готова к продолжению? :)

Сравнения

Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Comparisons.

В программировании часто надо что-то сравнивать. Что проще всего сравнить друг с другом? Числа, конечно. Давай посмотрим, как это работает:

command-line

>>> 5 > 2
True
>>> 3 < 1
False
>>> 5 > 2 * 2
True
>>> 1 == 1
True
>>> 5 != 2
True

Мы передали Python несколько чисел для сравнения. Как ты можешь заметить, Python сравнивает не только числа, но и результаты методов (например, умножения). Неплохо, правда?

Хочешь спросить, почему мы написали двойной символ равенства ==, чтобы проверить, одинаковы ли числа? Потому что одинарные символ равенства = уже задействован под присваивание значения переменным. Ты всегда, всегда должна писать два символа равенства ==, если хочешь проверить, одинаковы ли объекты. Мы также можем проверить, различаются ли объекты. Для этого мы используем !=, как показано в примере выше.

Дадим Python еще два задания:

command-line

>>> 6 >= 12 / 2
True
>>> 3 <= 2
False

С > и < все понятно, но что значат >= и <=? Читай их следующим образом:

  • x > y означает: x больше y
  • x < y означает: x меньше y
  • x <= y означает: x меньше или равен y
  • x >= y означает: x больше или равен y

Супер! Хочешь еще? Тогда попробуй вот это:

command-line

>>> 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:

command-line

>>> 1 > 'django'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
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, само собой.)

Ты можешь присваивать переменным логические значения! Смотри сюда:

command-line

>>> a = True
>>> a
True

Или так:

command-line

>>> a = 2 > 5
>>> a
False

Попрактикуйся с логическими значениями на примере этих выражений:

  • True and True
  • False and True
  • True or 1 == 1
  • 1 != 2

Поздравляем! Логические значения — одна из самых классных фишек программирования, и ты только что научилась ими пользоваться!

Сохраняй!

Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Saving files and «If» statement.

До сих пор мы писали весь код в интерактивной консоли, где Python сразу анализировал, обрабатывал и выполнял наши команды. Мы были ограничены одной строкой. Обычно, программы сохраняются в файлах и выполняются интерпретатором или компилятором нашего языка программирования. Пока мы только просили интерпретатор Python выполнять наши однострочные команды из консоли. Однако нам понадобится больше места для следующих задач, поэтому задача минимум:

  • закрыть интерактивную консоль Python;
  • открыть наш текстовый редактор;
  • сохранить код в новом файле;
  • запустить его!

Чтобы закрыть интерактивную консоль Python, просто набери функцию exit():

command-line

>>> exit()
$

Это вернёт тебя в командную строку.

В главе Текстовый редактор мы выбрали себе редактор. Нам нужно открыть его сейчас и записать следующий код в новый файл (или, если ты используешь Chromebook, создай новый файл в облачной IDE и открой файл, который будет во встроенном редакторе кода):

editor

print('Hello, Django girls!')

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

Теперь нам нужно сохранить файл с кодом и дать ему подходящее имя. Давай назовем его python_intro.py и сохраним на рабочий стол. Мы можем назвать файл как хотим, но важно, чтобы название заканчивалось на .py. Расширение .py говорит операционной системе, что это исполняемый файл python, и Python может его запустить.

Примечание Ты должна уже была заметить одну из крутейших вещей в редакторах кода: цвета! В интерактивной консоли Python весь текст был одного цвета, сейчас же функция print должна отличаться по цвету от текста, который передается в неё в качестве аргумента. Это называется «синтаксическая подсветка», и это действительно удобная штука для программирования. Цвет подсветки может подсказать тебе о незакрытой кавычке или опечатке в ключевом слове (таком как def в определении функции, с которым мы скоро познакомимся). Это одна из причин, по которой мы используем редакторы кода :)

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

OS X

Для Mac команда будет выглядеть так:

command-line

$ cd ~/Desktop

Linux

Для Linux (слово «Desktop» может быть переведено на твой язык, например «Рабочий стол»):

command-line

$ cd ~/Desktop

Командная строка Windows

В командной строке Windows команда будет такой:

command-line

> cd %HomePath%\Desktop

Windows Powershell

В Windows Powershell команда будет такой:

command-line

> cd $Home\Desktop

Если возникли проблемы — просто обратись за помощью.

Теперь используй Python, чтобы запустить код в файле:

command-line

$ python3 python_intro.py
Hello, Django girls!

Примечание: Windows не распознаёт команду ‘python3’. Вместо этого для запуска файла используй команду ‘python’:

command-line

> python python_intro.py

Отлично! Ты только что запустила свою первую программу, код которой был сохранен в файле. Чувствуешь воодушевление?

Можно передвигаться дальше к такому незаменимому в программировании инструменту как:

If…elif…else

Зачастую определенный код в программе должен выполняться только при соблюдении определенных условий. Поэтому в Python есть такая вещь как условный оператор if.

Замени код в своем файле python_intro.py на:

python_intro.py

if 3 > 2:

Если мы сохраним его и запустим, то получим ошибку:

command-line

$ python3 python_intro.py
File "python_intro.py", line 2
         ^
SyntaxError: unexpected EOF while parsing

Python предполагает, что мы должны дать ему инструкции, которые будут им выполнены при соблюдении условия 3 > 2 (т. е. при равенстве условия логическому значению True). Давай попробуем заставить Python напечатать на экране “It works!”. Внеси следующие изменения в python_intro.py:

python_intro.py

if 3 > 2:
    print('It works!')

Обратила внимание, что мы сделали отступ во второй строке из 4 символов пробела? Мы поступаем так, чтобы Python понимал, какой код после условного оператора if должен быть выполнен, если условие равно True. Можно ограничиться и одним пробелом, однако практически все программисты Python используют 4, чтобы код выглядел аккуратно и читабельно. Каждая табуляция также считается за 4 пробела.

Сохраняем и запускаем ещё раз:

command-line

$ python3 python_intro.py
It works!

Примечание: запомни, что Windows не распознаёт команду ‘python3’. Всегда используй ‘python’ вместо ‘python3’ для запуска файлов.

Что, если условие не True?

В предыдущем примере код выполнялся, только когда условие равнялось True. Однако Python имеет операторы elif и else:

python_intro.py

if 5 > 2:
    print('5 is indeed greater than 2')
else:
    print('5 is not greater than 2')

Если запустить этот код, он напечатает:

command-line

$ python3 python_intro.py
5 is indeed greater than 2

Если 2 больше 5, то будет выполнена следующая команда. Просто, правда? Давай посмотрим, как работает оператор elif:

python_intro.py

name = 'Sonja'
if name == 'Ola':
    print('Hey Ola!')
elif name == 'Sonja':
    print('Hey Sonja!')
else:
    print('Hey anonymous!')

и запускаем:

command-line

$ python3 python_intro.py
Hey Sonja!

Видишь, что произошло? elif позволяет добавить дополнительные условия, которые запускаются, если предыдущие не срабатывают.

Можно использовать сколько угодно elif после первого if. Например:

python_intro.py

volume = 57
if volume < 20:
    print("It's kinda quiet.")
elif 20 <= volume < 40:
    print("It's nice for background music")
elif 40 <= volume < 60:
    print("Perfect, I can hear all the details")
elif 60 <= volume < 80:
    print("Nice for parties")
elif 80 <= volume < 100:
    print("A bit loud!")
else:
    print("My ears are hurting! :(")

Python проходит через каждую проверку условия и выводит:

command-line

$ python3 python_intro.py
Perfect, I can hear all the details

Комментарии

Комментарии — это строки, начинающиеся с символа #. Ты можешь написать всё, что тебе заблагорассудится, после символа #, и Python не обратит на это внимания. Комментарии могут помочь другим людям быстрее понять твой код.

Давай посмотрим, как они выглядят:

python_intro.py

# Change the volume if it's too loud or too quiet
if volume < 20 or volume > 80:
    volume = 50
    print("That's better!")

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

Подведём итог

В последних трёх упражнениях ты познакомилась с:

  • сравнением — в Python ты можешь сравнивать объекты друг с другом при помощи >, >=, ==, <=, < и операторов and, or;
  • Boolean — типом объекта, который может иметь только два значения: True или False;
  • сохранением файлов — хранение кода в файлах позволяет выполнять длинные программы;
  • if…elif…else — условными операторами, которые позволяют выполнять код только при определенных условиях;
  • комментариями — строками, которые Python не запускает и которые позволяют документировать твой код.

Пришло время для последней части этой главы!

Твоя собственная функция!

Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: Functions.

Помнишь функции, такие как len(), которые можно использовать в Python? Тогда у нас есть хорошая новость — сейчас ты научишься писать свои собственные функции!

Функция — это последовательность инструкций, которые должен выполнить Python. Каждая функция в Python начинается с ключевого слова def, имеет свое имя и параметры. Давай начнем с простого примера. Замени код в python_intro.py на следующий:

python_intro.py

def hi():
    print('Hi there!')
    print('How are you?')

hi()

Отлично, наша первая функция готова!

Ты можешь задаться вопросом, почему мы написали имя функции в конце файла. Причина в том, что Python читает и исполняет код из файла сверху вниз. Поэтому для использования нашей функции мы должны вызвать её в конце файла.

Давай запустим и посмотрим, что произойдет:

command-line

$ python3 python_intro.py
Hi there!
How are you?

Примечание: если это не сработало, не поддавайся панике! Вывод командной строки поможет тебе понять, почему так произошло:

  • Если ты получила ошибку NameError, то, возможно, ты что-то неправильно ввела, поэтому проверь, что ты использовала одно и то же имя при создании функции в строке def hi(): и при её вызове в строке hi().
  • Если ты получила ошибку IndentationError, проверь, что обе строки с вызовом print начинаются с одинакового количества пробелов: Python хочет, чтобы весь код внутри функции был аккуратно выровнен.
  • Если при запуске команда не вывела вообще ничего, проверь, чтобы в начале последней строки hi() не было отступа — если он есть, эта строка тоже становится частью функции, и функция никогда не запустится.

Давай напишем нашу первую функцию с параметрами. Мы будем использовать предыдущий пример — функцию, которая пишет ‘hi’ и имя пользователя:

python_intro.py

def hi(name):

Как ты можешь заметить, мы передали нашей функции параметр name:

python_intro.py

def hi(name):
    if name == 'Ola':
        print('Hi Ola!')
    elif name == 'Sonja':
        print('Hi Sonja!')
    else:
        print('Hi anonymous!')

hi()

Помни: функция print расположена внутри блока оператора if с отступом в четыре пробела. Это потому, что она запускается тогда, когда выполняется условие. Давай посмотрим, как это работает:

command-line

$ python3 python_intro.py
Traceback (most recent call last):
File "python_intro.py", line 10, in <module>
  hi()
TypeError: hi() missing 1 required positional argument: 'name'

Упс, ошибка. К счастью, Python выдает довольно подробное сообщение об ошибке. Оно говорит нам, что функция hi() (которую мы определили) имеет один обязательный аргумент (name), и мы забыли передать его при вызове функции. Давай исправим это в конце файла:

python_intro.py

hi("Ola")

И запустим ещё раз:

command-line

$ python3 python_intro.py
Hi Ola!

А если мы поменяем имя?

python_intro.py

hi("Sonja")

И повторим:

command-line

$ python3 python_intro.py
Hi Sonja!

Теперь, как ты думаешь, что произойдет, если ты наберешь другое имя? (Не Ola или Sonja) Попробуй сама и проверь, была ли ты права. Результат должен быть таким:

command-line

Hi anonymous!

Шикарно, верно? Так тебе не придется повторяться каждый раз, когда ты захочешь изменить имя. И это именно та причина, для которой нам и нужны функции — ты никогда не захочешь повторять свой код!

Давай попробуем что-то похитрее — существует немало имён, и писать условие для каждого будет тяжело, правда?

python_intro.py

def hi(name):
    print('Hi ' + name + '!')

hi("Rachel")

Давай выполним этот код:

command-line

$ python3 python_intro.py
Hi Rachel!

Поздравляем! Ты только что научилась писать свои собственные функции :)

Циклы

Для проходящих руководство дома: этот раздел рассмотрен в видео Python Basics: For Loop.

Ну вот и последняя часть. Быстро время пролетело, верно? :)

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

Еще помнишь о списках? Давай создадим список девушек:

python_intro.py

girls = ['Rachel', 'Monica', 'Phoebe', 'Ola', 'You']

Мы хотим поздороваться с каждой по имени. У нас есть функция hi, которая этим и занимается, так что давай поместим её в цикл:

python_intro.py

for name in girls:

Оператор for работает по схожему принципу что и if; в коде после обоих операторов должен быть отступ в четыре пробела.

Ниже полный код, который должен быть у нас в файле:

python_intro.py

def hi(name):
    print('Hi ' + name + '!')

girls = ['Rachel', 'Monica', 'Phoebe', 'Ola', 'You']
for name in girls:
    hi(name)
    print('Next girl')

И после запуска:

command-line

$ python3 python_intro.py
Hi Rachel!
Next girl
Hi Monica!
Next girl
Hi Phoebe!
Next girl
Hi Ola!
Next girl
Hi You!
Next girl

Как ты можешь заметить, все команды внутри цикла for (с отступом от левого края) будут выполняться для каждого элемента списка girls.

Ты также можешь использовать цикл for с числами с помощью функции range:

python_intro.py

for i in range(1, 6):
    print(i)

Что выведет на экран:

command-line

1
2
3
4
5

Функция range создает список чисел, следующих от первого до второго с заданным шагом (начало, конец и шаг мы передаем функции как параметры; если шаг не указать, как в примере выше, он будет по умолчанию равен 1).

Обрати внимание, что второе число (конец списка) не включается в результат работы функции (range(1, 6) создает список от 1 до 5, не включающий 6). Это потому, что «range» — полуоткрытый диапазон, то есть включает в себя первое значение, но не включает последнее.

Подведём итог

Вот и всё. Ты чертовски крута! Эта глава была непростой, так что ты можешь гордиться собой. Мы-то точно тобой гордимся — вон как далеко продвинулась уже!

Тебе может потребоваться перерыв — прогуляйся и дай отдых глазам перед тем, как мы перейдем к следующей главе. :)

Пирожок

20 июля, 2017 11:53 дп
24 319 views
| Комментариев нет

Python

Интерактивная консоль Python (также интерпретатор или оболочка Python) предоставляет программистам быстрый способ выполнить команды и протестировать код, не создавая файл.

Интерактивная консоль предоставляет доступ к истории команд, всем встроенным функциям и установленным модулям Python. Она позволяет использовать автозаполнение, исследовать возможности Python и вставлять код в файлы программирования после проверки.

Этот мануал научит вас работать с интерактивной консолью Python.

Доступ к интерактивной консоли

Доступ к интерактивной консоли Python можно получить с любого локального компьютера или сервера, на котором установлен Python.

Для входа в интерактивную консоль Python используйте команду:

python

Если вы настроили среду разработки, вы можете получить доступ к консоли внутри этой среды.  Сначала запустите среду:

cd environments
my_env/bin/activate

Затем откройте консоль:

python

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

  • Настройка локальной среды разработки для Python 3 в Ubuntu 16.04
  • Установка Python 3 и настройка среды разработки на сервере Ubuntu 16.04

В этом случае по умолчанию используется версия Python 3.5.2, которая отображается на выходе вместе с уведомлением об авторских правах и командами для дополнительной информации:

Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Поле для ввода следующей команды – три знака больше:

>>>

Вы можете указать определенную версию Python, добавив номер версии в команду без пробелов:

$ python2.7
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Вывод сообщает, что теперь будет использоваться версия Python 2.7.12. Если бы она была версией Python по умолчанию, открыть её интерактивную консоль можно было бы с помощью команды python2.

Чтобы вызвать интерактивную консоль версии Python 3 по умолчанию, нужно ввести:

$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Также консоль этой версии можно вызвать с помощью команды:

$ python3.5

Работа с интерактивной консолью Python

Интерактивный интерпретатор Python принимает синтаксис Python, который находится после префикса >>>.

Например, он позволяет присваивать значения переменным:

>>> birth_year = 1868

Читайте также: Использование переменных в Python 3

Вы можете присвоить значения нескольким переменным, чтобы обрабатывать математические операции.

>>> birth_year = 1868
>>> death_year = 1921
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>

Читайте также: Математические вычисления в Python 3

Как и в файле, в консоли можно задать значения переменных, выполнить математическую операцию и запросить результат.

Интерактивную консоль можно использовать как калькулятор.

>>> 203 / 20
10.15
>>>

Многострочный код Python в консоли

При создании многострочного кода в консоли интерпретатор Python использует троеточие (…) в качестве вспомогательной строки.

Чтобы выйти из вспомогательной строки, нужно дважды нажать Enter.

Чтобы понять, как это работает, рассмотрите этот код, который задает значения двум переменным и использует условное выражение, чтобы определить вывод.

>>> 8host = '8host'
>>> blog = 'blog'
>>> if len(8host) > len(blog):
...     print('8host codes in Java.')
... else:
...     print('8host codes in Python.')
...
8host codes in Java.
>>>

Читайте также: Условные операторы в Python 3

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

Читайте также: Основы работы со строками в Python 3

Обратите внимание, при этом нужно соблюдать соглашение об отступах Python (четыре пробела), иначе вы получите сообщение об ошибке:

>>> if len(8host) > len(blog):
... print('8host codes in Java.')
File "<stdin>", line 2
print('8host codes in Java.')
^
IndentationError: expected an indented block
>>>

Импорт модулей

Интерпретатор Python позволяет быстро проверить, доступны ли те или иные модули в определенной среде программирования. Для этого существует оператор import:

>>> import matplotlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'matplotlib'

В данном случае библиотека matplotlib недоступна в текущей среде.

Читайте также: Визуализация данных Python 3 с помощью matplotlib

Чтобы установить эту библиотеку, используйте pip.

pip install matplotlib
Collecting matplotlib
Downloading matplotlib-2.0.2-cp35-cp35m-manylinux1_x86_64.whl (14.6MB)
...
Installing collected packages: pyparsing, cycler, python-dateutil, numpy, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.0.2 numpy-1.13.0 pyparsing-2.2.0 python-dateutil-2.6.0 pytz-2017.2

Установив модуль matplotlib и его зависимости, вы можете вернуться в интерактивный интерпретатор.

(my_env) 8host@ubuntu:~/environments$ python
>>>import matplotlib
>>>

Теперь вы можете использовать импортированный модуль в этой среде.

Выход из интерактивной консоли Python

Закрыть консоль Python можно двумя способами: с помощью клавиатуры или с помощью функции Python.

Чтобы закрыть консоль, можно нажать на клавиатуре Ctrl + D в *nix-подобных системах или Ctrl + Z + Ctrl в Windows.

>>> age_at_death = death_year - birth_year
gt;>> print(age_at_death)
53
>>>
8host@ubuntu:~/environments$

Также в Python есть функция quit(), которая закрывает консоль и возвращает вас в стандартный терминал.

>>> octopus = 'Ollie'
>>> quit()
8host@PythonUbuntu:~/environments$

Функция quit() записывается в историю, а комбинации клавиш – нет. Это следует учитывать при выходе из консоли. Откройте файл истории /home/8host /.python_history

...
age_at_death = death_year - birth_year
print(age_at_death)
octopus = 'Ollie'
quit()

История консоли Python

Еще одним преимуществом интерактивной консоли Python является история. Все команды регистрируются в файле .python_history (в *nix-подобных системах).

nano ~/.python_history

На данный момент файл истории Python выглядит так:

import pygame
quit()
if 10 > 5:
print("hello, world")
else:
print("nope")
8host = '8host'
blog = 'blog'
...

Чтобы закрыть файл, нажмите Ctrl + X.

Отслеживая историю, вы можете вернуться к предыдущим командам, скопировать, вставить или изменить этот код, а затем использовать его в файлах программы или Jupyter Notebook.

Читайте также: Установка Jupyter Notebook для Python 3

Заключение

Интерактивная консоль Python предоставляет пространство для экспериментов с кодом Python. Вы можете использовать ее как инструмент для тестирования, разработки логики программы и многого другого.

Для отладки файлов программы Python вы можете использовать модуль code и открыть интерактивный интерпретатор внутри файла.

Читайте также: Отладка программ Python с помощью интерактивной консоли

Tags: Python

The newer subprocess.check_output and similar commands are supposed to replace os.system. See this page for details. While I can’t test this on Windows (because I don’t have access to any Windows machines), the following should work:

from subprocess import check_output
check_output("dir C:", shell=True)

check_output returns a string of the output from your command. Alternatively, subprocess.call just runs the command and returns the status of the command (usually 0 if everything is okay).

Also note that, in python 3, that string output is now bytes output. If you want to change this into a string, you need something like

from subprocess import check_output
check_output("dir C:", shell=True).decode()

If necessary, you can tell it the kind of encoding your program outputs. The default is utf-8, which typically works fine, but other standard options are here.

Also note that @bluescorpion says in the comments that Windows 10 needs a trailing backslash, as in check_output("dir C:\\", shell=True). The double backslash is needed because \ is a special character in python, so it has to be escaped. (Also note that even prefixing the string with r doesn’t help if \ is the very last character of the string — r"dir C:\" is a syntax error, though r"dir C:\ " is not.)

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

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

Работа с командной строкой

Для начала рассмотрим, как запустить Python-скрипт из командной строки.

  1. Откройте терминал или командную строку на вашем компьютере.
  2. Перейдите в каталог, где находится ваш Python-скрипт.
  3. Запустите скрипт, набрав python имя_файла.py.

Пример:

python my_script.py

Аргументы командной строки

Аргументы командной строки передаются Python-скрипту в виде списка. Для работы с этим списком вам потребуется модуль sys.

Использование модуля sys

Импортируйте модуль sys и получите список аргументов командной строки с помощью sys.argv. Вот пример:

import sys

print("Аргументы командной строки:", sys.argv)

Если вы сохраните данный код в файле arguments.py и запустите его из командной строки с аргументами, вы увидите следующее:

python arguments.py arg1 arg2 arg3
Аргументы командной строки: ['arguments.py', 'arg1', 'arg2', 'arg3']

Обратите внимание, что первый элемент списка sys.argv — это имя самого скрипта.

Python-разработчик: новая работа через 9 месяцев

Получится, даже если у вас нет опыта в IT

Получить
программу

Обработка аргументов командной строки

Теперь, когда вы знаете, как получить аргументы командной строки, вы можете обрабатывать их в своем скрипте. Рассмотрим пример:

import sys

# Проверяем количество аргументов
if len(sys.argv) &lt; 2:
    print("Ошибка: необходимо указать хотя бы один аргумент")
    sys.exit(1)

# Выводим аргументы командной строки, начиная со второго элемента списка
for arg in sys.argv[1:]:
    print("Аргумент:", arg)

Если вы запустите данный скрипт с аргументами, вы увидите следующее:

python process_arguments.py input.txt output.txt
Аргумент: input.txt
Аргумент: output.txt

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

Вступление

Интерактивная консоль Python (также называемая интерпретатором Python или оболочкой Python) предоставляет программистам быстрый способ выполнять команды и пробовать или тестировать код без создания файла.

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

В этом руководстве рассказывается, как работать с интерактивной консолью Python и использовать ее в качестве инструмента программирования.

Вход в интерактивную консоль

К интерактивной консоли Python можно получить доступ с любого локального компьютера или сервера с установленным Python.

Команда, которую вы обычно хотите использовать для входа в интерактивную консоль Python для используемой по умолчанию версии Python:

Если вы настроилиprogramming environment, вы можете запустить среду и получить доступ к версии Python и модулям, которые вы установили в этой среде, сначала войдя в эту среду:

cd environments
. my_env/bin/activate

Затем введите командуpython:

В этом случае версией Python по умолчанию является Python 3.5.2, который отображается в выходных данных, когда мы вводим команду вместе с соответствующим уведомлением об авторских правах и некоторыми командами, которые вы можете ввести для получения дополнительной информации:

OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Основное приглашение для следующей команды состоит из трех знаков «больше» (>>>):

Вы можете настроить таргетинг на конкретные версии Python, добавив номер версии к своей команде без пробелов:

OutputPython 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Здесь мы получили вывод, что будет использоваться Python 2.7.12. Если это наша версия Python 2 по умолчанию, мы также могли бы войти в эту интерактивную консоль с помощью командыpython2.

В качестве альтернативы мы можем вызвать версию Python 3 по умолчанию с помощью следующей команды:

OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Мы также могли бы вызвать указанную выше интерактивную консоль с помощью командыpython3.5.

Запустив интерактивную консоль Python, мы можем перейти к работе со средой оболочки для Python.

Работа с интерактивной консолью Python

Интерактивный интерпретатор Python принимает синтаксис Python, который вы размещаете после префикса>>>.

Мы можем, например, присвоить значенияvariables:

После того как мы присвоили целочисленное значение1868 переменнойbirth_year, мы нажмем return и получим новую строку с тремя знаками больше в качестве префикса:

Мы можем продолжить присвоение переменных, а затемperform math with operators, чтобы получить результаты вычислений:

>>> birth_year = 1868
>>> death_year = 1921
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>

Как и в случае со скриптом в файле, мы присваивали переменные, вычитали одну переменную из другой и просили консоль распечатать переменную, которая представляет разницу.

Как и в любой форме Python, вы также можете использовать интерактивную консоль в качестве калькулятора:

Здесь мы разделили целое число203 на20 и получили частное от10.15.

Несколько линий

Когда мы пишем код Python, он будет охватывать несколько строк, интерпретатор будет использовать вторичное приглашение для строк продолжения, три точки (...).

Чтобы прервать эти строки продолжения, вам нужно будет дважды нажатьENTER.

Мы можем увидеть, как это выглядит, в следующем коде, который назначает две переменные, а затем используетconditional statement, чтобы определить, что выводить на консоль:

>>> sammy = 'Sammy'
>>> shark = 'Shark'
>>> if len(sammy) > len(shark):
...     print('Sammy codes in Java.')
... else:
...     print('Sammy codes in Python.')
...
Sammy codes in Python.
>>>

В этом случае длины двухstrings равны, поэтому выводится операторelse.
Обратите внимание, что вам нужно будет сохранить соглашение Python об отступах из четырех пробелов, иначе вы получите ошибка:

>>> if len(sammy) > len(shark):
... print('Sammy codes in Java.')
  File "", line 2
    print('Sammy codes in Java.')
        ^
IndentationError: expected an indented block
>>>

Вы можете не только экспериментировать с кодом из нескольких строк в консоли Python, вы также можете импортировать модули.

Импорт модулей

Интерпретатор Python предоставляет вам быстрый способ проверить, доступны ли модули в конкретной среде программирования. Вы можете сделать это с помощью оператораimport:

>>> import matplotlib
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named 'matplotlib'

В приведенном выше случае модульmatplotlib был недоступен в текущей среде программирования.

Чтобы установить его, нам нужно выйти из интерактивного переводчика и установить его как обычно:

OutputCollecting matplotlib
  Downloading matplotlib-2.0.2-cp35-cp35m-manylinux1_x86_64.whl (14.6MB)
...
Installing collected packages: pyparsing, cycler, python-dateutil, numpy, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.0.2 numpy-1.13.0 pyparsing-2.2.0 python-dateutil-2.6.0 pytz-2017.2

Как только модуль matplotlib и его зависимости успешно установлены, вы можете вернуться к интерактивному интерпретатору:

На этом этапе вы не получите сообщение об ошибке и можете использовать установленный модуль в оболочке или в файле.

Выход из интерактивной консоли Python

Есть два основных способа выйти из интерактивной консоли Python: с помощью сочетания клавиш или функции Python.

Сочетание клавишCTRL +D в системах на базе * nix илиCTRL +Z, затем клавишаCTRL в системах Windows прервет вашу консоль и вернет вас в исходную среду терминала:

...
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>
sammy@ubuntu:~/environments$

В качестве альтернативы функция Pythonquit() выйдет из интерактивной консоли, а также вернет вас в исходную среду терминала, в которой вы были ранее:

>>> octopus = 'Ollie'
>>> quit()
sammy@PythonUbuntu:~/environments$

Когда вы используете функциюquit(), она будет отображаться в вашем файле истории, но сочетание клавишCTRL +D не будет записано:

Файл: /home/sammy/.python_history

...
age_at_death = death_year - birth_year
print(age_at_death)
octopus = 'Ollie'
quit()

Выйти из интерпретатора Python можно в любом случае, в зависимости от того, что имеет смысл для вашего рабочего процесса и ваших потребностей в истории.

Доступ к истории

Одна из полезных особенностей интерактивной консоли Python заключается в том, что все ваши команды записываются в файл.python_history в системах на основе * nix, которые вы можете просмотреть в текстовом редакторе, например, в nano:

После открытия в текстовом редакторе ваш файл истории Python будет выглядеть примерно так, с вашей собственной историей команд Python:

Файл: /home/sammy/.python_history

import pygame
quit()
if 10 > 5:
    print("hello, world")
else:
    print("nope")
sammy = 'Sammy'
shark = 'Shark'
...

Когда вы закончите работу с файлом, вы можете нажатьCTRL +X, чтобы выйти из nano.

Отслеживая всю свою историю Python, вы можете вернуться к предыдущим командам и экспериментам, а также скопировать и вставить или изменить этот код для использования в файлах программирования Python или вJupyter Notebook.

Заключение

Интерактивная консоль Python предоставляет пространство для экспериментов с кодом Python. Вы можете использовать его как инструмент для тестирования, отработки логики и многого другого.

Для использования с отладкой программных файлов Python вы можете использовать модуль Pythoncode, чтобы открыть интерактивный интерпретатор внутри файла, о чем вы можете прочитать в нашем руководствеHow To Debug Python with an Interactive Console.

  • Python windows path to linux path
  • Python работа с командной строкой windows
  • Python org скачать на windows 7
  • Python вывод в консоль windows
  • Python portable скачать для windows