Вы уже знакомы с функцией 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()
начинает блестяще проявлять себя:
Работа начинается с запроса ввода данных, они присваиваются переменным nameUser и cityUser, а затем выводится с использованием форматирования.
Несмотря на его простоту, такой скрипт можно усовершенствовать. Запросы к пользователю уточняют, что от него требуется:
Помните, что input()
всегда возвращает строку. Если нужно число, вам понадобятся функции типа преобразования.
Значения переменных qtyOranges и priceOrange преобразованы в целое и вещественное числа в примере выше. Переопределив переменные, мы сразу присваиваем им численные значения.
Преобразование и ввод данных можно выполнить одновременно, в той же строчке:
qtyOranges = int(input("Сколько апельсинов? ")) priceOrange = float(input("Цена одного апельсина? ")) sumOranges = qtyOranges * priceOrange print("Заплатите", sumOranges, "руб.")
Вызов input()
происходит первым, и ее результат преобразуется в числовой формат. Затем значения присваиваются переменным как численные значения.
Практическая работа
-
Создайте программу (файл user.py), в которой будут запрашиваться данные у пользователя:
- его имя (например, "What is your name?")
- возраст ("How old are you?")
- место жительства ("Where are you live?")
Затем выведите три строки:
"This isимя
"
"It isвозраст
"
"(S)he live inместо_жительства
"
Подставьте введенные данные вместоимя
,возраст
,место_жительства
. - Разработайте программу (файл arithmetic.py), где пользователя попросят решить пример 4 * 100 - 54. После отобразите правильный и его ответ. Обдумайте, нужно ли здесь преобразовывать строку в число.