Вы уже знакомы с функцией print(), которая служит для вывода информации на экран по умолчанию. Без нее не обойтись, особенно если код выполняется из файла. Тем не менее, в интерактивном режиме зачастую можно обойтись без её использования.

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

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

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

Вывод информации: использование функции print()

Функции в программировании мы разберем позже. На данный момент стоит воспринимать print() как команду в языке Python, позволяющую выводить на экран информацию, находящуюся в её скобках.

>>> print(1032)
1032
>>> print(2.34)
2.34
>>> print("Hello")
Hello

Внутри скобок могут присутствовать данные различных типов и объема:

>>> print("a:", 1)
a: 1
>>> one = 1
>>> two = 2
>>> three = 3
>>> print(one, two, three)
1 2 3

Команда print() принимает как литералы (например, "a:" и 1), так и переменные, их значения будут распечатаны. В списке аргументы разделены запятыми, но на выходе - пробелами.

Если внутри функции находится выражение, оно сначала вычисляется, затем print() выводит его результат:

>>> print("hello" + " " + "world")
hello world
>>> print(10 - 2.5/2)
8.75

Существуют дополнительные параметры для print(). Например, параметр sep служит для задания разделителя, отличного от пробела:

>>> print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-")
Mon-Tue-Wed-Thu-Fri-Sat-Sun
>>> print(1, 2, 3, sep="//")
1//2//3

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

>>> print(10, end="")
10>>>

Использование end оправдано при создании скриптов, когда необходимо объединить несколько выводов. Переход на новую строку осуществляется с помощью "\n". Присваивая его значению параметра end, вы ничего не заметите, так как это и есть настройка по умолчанию:

>>> print(10, end='\n')
10
>>>

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

>>> print(10, end='\n\n')
10
>>>

Форматирование строк – еще одна важная особенность print(), хотя тесно связана именно со строками. Рассмотрим форматирование в "старом стиле" и методе format().

Старое форматирование используется в стиле C, что видно из примера:

>>> pupil = "Ben"
>>> old = 16
>>> grade = 9.2
>>> print("It's %s,  %d. Level: %f" % (pupil, old, grade))
It's Ben, 16. Level: 9.200000

Здесь варианты %s, %d, %f заменяются на значения переменных. Изменение количества знаков после запятой в значении производится путем указания числа перед буквой f:

>>> print("It's %s,  %d. Level: %.1f" % (pupil, old, grade))
It's Ben, 16. Level: 9.2

Метод format() позволяет назначать позиции для подстановки:

>>> print("This is a {0}. It's {1}.".format("ball", "red"))
This is a ball. It's red.
>>> print("This is a {0}. It's {1}.".format("cat", "white"))
This is a cat. It's white.
>>> print("This is a {0}. It's {1} {2}.".format(1, "a", "number"))
This is a 1. It's a number.

Числа в фигурных скобках указывают на позиции аргументов в методе format(). Такой подход широко применяется.

Ввод данных: использование функции input()

Функция input() ответственна за прием данных, вводимых с клавиатуры. При её вызове исполнение программы приостанавливается, пока пользователь не введет текст и не нажмет Enter. Данные, переданные input() обрабатываются в программе в соответствии с её логикой.

При вводе команды input() в интерактивном режиме, программа будет ожидать ваш ввод и отобразит его как есть:

>>> input()
Yes!
'Yes!'

Можно сохранить введенные данные в переменной, чтобы удерживать их на потом:

>>> answer = input()
No, it is not.

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

>>> answer
'No, it is not.'

Функция print() выводит содержание переменной без кавычек:

>>> print(answer)
'No, it is not.'

В скриптах input() начинает блестяще проявлять себя:

Использование функции input()

Работа начинается с запроса ввода данных, они присваиваются переменным nameUser и cityUser, а затем выводится с использованием форматирования.

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

Функция input() с аргументом-приглашением

Помните, что input() всегда возвращает строку. Если нужно число, вам понадобятся функции типа преобразования.

Преобразование ввода к числу

Значения переменных qtyOranges и priceOrange преобразованы в целое и вещественное числа в примере выше. Переопределив переменные, мы сразу присваиваем им численные значения.

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

qtyOranges = int(input("Сколько апельсинов? "))
priceOrange = float(input("Цена одного апельсина? "))

sumOranges = qtyOranges * priceOrange

print("Заплатите", sumOranges, "руб.")

Вызов input() происходит первым, и ее результат преобразуется в числовой формат. Затем значения присваиваются переменным как численные значения.

Практическая работа

  1. Создайте программу (файл user.py), в которой будут запрашиваться данные у пользователя:
    - его имя (например, "What is your name?")
    - возраст ("How old are you?")
    - место жительства ("Where are you live?")
    Затем выведите три строки:
    "This is имя"
    "It is возраст"
    "(S)he live in место_жительства"
    Подставьте введенные данные вместо имя, возраст, место_жительства.
  2. Разработайте программу (файл arithmetic.py), где пользователя попросят решить пример 4 * 100 - 54. После отобразите правильный и его ответ. Обдумайте, нужно ли здесь преобразовывать строку в число.

Вопросы для самопроверки:

  1. Для чего используется функция print() в Python?
  2. Какие типы данных может принимать функция print()?
  3. Как с помощью функции print() можно изменить разделитель между аргументами?
  4. Как работает метод format() при форматировании строк в Python?
  5. Для чего используется функция input() в Python?

Программа курса:

  1. Описание курса
  2. Эволюция и основы языков программирования

    История программирования в кратком и понятном изложении. Что такое машинный язык, почему появились ассемблеры, языки высокого уровня и объектно-ориентированные. Зачем нужен транслятор, и почему он может быть либо компилятором, либо интерпретатором.

  3. Знакомство с основами Python

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

  4. Типы данных и переменные в Python

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

  5. Ввод и вывод данных с Python функциями

    Для вывода на экран в Python 3.x используется функция print(). Вывод может быть предварительно отформатирован. Для ввода данных с клавиатуры используется функция input(), которая возвращает в программу строку.

  6. Логические выражения и операторы в Python

    Логические выражения. Логические операторы языка Python: == (равно), != (не равно), (больше), = (больше или равно), and (логическое И), or (логическое ИЛИ), not (отрицание).

  7. Ветвление и условные операторы в Python

    Управление потоком программы с помощью операторов if-else. Создание логических ветвлений, обработка условий и выполнение разных блоков кода в Python.

  8. Изучите обработку ошибок и исключений в Python

    Общее представление об ошибках и исключениях в языке программирования Python. SyntaxError, NameError, TypeError, ValueError, ZeroDivisionError. Обработка исключений с помощью инструкции try-except.

  9. Множественное ветвление с if-elif-else в Python

    Оператор множественного ветвления языка Python позволяет организовать более двух веток выполнения программы без необходимости вложения условных операторов друг в друга. Конструкция включает одну ветку if, произвольное количество elif и необязательную ветку else.

  10. Цикл while и его применение в Python

    С помощью циклов в программировании организуется многократное следующее друг за другом выполнение одних и тех же участков кода. Бывают циклы с условием и со счетчиком. К первым относится цикл while, или цикл "пока".

  11. Изучите функции и их применение в Python

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

  12. Локальные и глобальные переменные в Python

    В программировании важное значение имеет представление о локальных и глобальных переменных. Локальные переменные существуют внутри функций и не доступны за ее пределами. Глобальные переменные видны во всей программе.

  13. Оператор return и возврат значений в Python

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

  14. Параметры и аргументы функций в Python

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

  15. Встроенные функции Python для работы

    Язык программирования Python включает множество встроенных функций. В предыдущих уроках мы использовали такие функции как print() и input(), а также функции преобразования типов данных. В этом уроке рассматриваются встроенные функции для работы с символами и числами.

  16. Использование модулей в Python

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

  17. Генерация псевдослучайных чисел в Python

    Для генерации псевдослучайных чисел в языке программирования Python используются функции модуля random. Функция random() генерирует вещественное число от 0 до 1. Функции randint() и randrange() производят целые псевдослучайные числа в указанных диапазонах.

  18. Изучение списков в Python - основы и операции

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

  19. Изучение цикла for в Python

    Цикл for в языке программирования Python предназначен для перебора элементов структур данных (списков, словарей, кортежей, множеств) и многих других объектов. Это не цикл со счетчиком, каковым является for во многих других языках. Нередко цикл for используется совместно с функцией range(), генерирующей объекты-диапазоны.

  20. Строки в Python - методы и срезы

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

  21. Кортежи - неизменяемые структуры данных

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

  22. Словари в Python - работа с ключами и значениями

    Словарь в Python - это изменяемая неупорядоченная структура данных, элементами которой являются пары "ключ:значение". В словари можно добавлять и удалять элементы, изменять значения ключей. В Python словари имеют ряд методов, упрощающих работу с ними.

  23. Работа с файлами в Python

    В языке программирования Python открытие файлов выполняется с помощью функции open(), которой передается два аргумента - имя файла и режим. Файл может быть открыт в режиме чтения, записи, добавления. Также может быть указан тип файла - текстовый или бинарный. Для файлов есть ряд встроенных методов чтения, записи и др.