Ввод, вывод и импорт в Python
В Python существует множество встроенных функций — использовать их можно прямо в командной строке.
Функции вроде input() и print() используются для операций ввода и вывода. Подробное знакомство мы начнем с вывода.
Вывод
Функция print() используется для вывода данных на экран. Эти данные мы можем записать и в файл, но об этом мы поговорим позже.
Пример использования
print('Это предложение выводится на экран')
Это предложение выводится на экран
Еще один пример
a = 5 print('Значение переменной а =', a)
Как вы могли заметить, во втором примере с print() между строкой и переменной стоит пробел. По умолчанию вывод происходит именно так, но это можно изменить.
Синтаксис
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- objects — то, что мы хотим вывести.
- sep — разделитель между переменными. По умолчанию это пробел.
- end — то, чем кончается строка. По умолчанию это переход на новую строку.
- file — объект, указывающий, куда нужно производить вывод. По умолчанию данные выводятся на экран — sys.stdout .
Примеры
print(1, 2, 3, 4) print(1, 2, 3, 4, sep='*') print(1, 2, 3, 4, sep='#', end='&')
Форматирование вывода
Иногда нужно отформатировать вывод, чтобы он выглядел соответствующим образом. Для этого есть метод str.format() . Его можно использовать с любым строковым объектом.
>>> x = 5; y = 10 >>> print('Значение х = <>, а y = <>'.format(x,y)) Значение x = 5, а y = 10
Фигурные скобки <> здесь выступают в виде заполнителей. Порядок их вывода можно изменять с помощью индексов (индексов кортежа).
print('Я люблю и '.format('хлеб', 'масло')) print('Я люблю и '.format('хлеб', 'масло'))
Я люблю хлеб и масло
Я люблю масло и хлеб
Для форматирования строк можно использовать именованные аргументы.
>>> print('Привет, , '.format(пожелания = 'доброго утра', имя = 'Иван')) Привет, Иван, доброго утра
Для форматирования строк можно использовать sprintf() . Это старый способ, который использовался еще в языке Си. Для этого используется оператор % .
>>> x = 12.3456789 >>> print('Значение x = %3.2f' %x) Значение x = 12.35 >>> print('Значение x = %3.4f' %x) Значение x = 12.3457
Ввод
До этого момента все наши программы были статическими — все значения переменных мы объявляли заранее.
Теперь нам нужно больше свободы — возможно, мы захотим получить данные от пользователя. В Python для этих целей существует функция input() . Ее синтаксис выглядит так:
promt — это строка, которую мы хотим вывести на экран.
>>> num = input('Введите число: ') Введите число: 10 >>> num '10'
Как можно заметить, введенное значение — строка, а не число. Преобразовать это значение в число можно с помощью функции int() или float() .
Эту же операцию можно выполнить с помощью функции eval() . У eval() есть преимущество — эта функция может проводить расчеты даже если в качестве аргумента передана строка.
Импорт модулей
По мере количества строк вашего кода будет не лишним начинать пользоваться модулями.
Модуль — это файл, содержащий функции и операторы. У всех модулей в Python есть имя, которое заканчивается расширением .py .
Операторы внутри модуля могут быть импортированы в другой модуль или в интерпретатор Python. Для этого мы используем ключевое слово import .
Например, мы можем импортировать модуль math . Делается это следующим образом:
Пример использованияя
Теперь все переменные внутри модуля math доступны в нашей программе. Можно импортировать и только определенные функции и переменные из модуля.
Пример
>>> from math import pi >>> pi 3.141592653589793
При импорте модуля Python просматривает несколько директорий, определенных в sys.path . Список местоположений директорий:
>>> import sys >>> sys.path ['', 'C:\\Python33\\Lib\\idlelib', 'C:\\Windows\\system32\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Python33', 'C:\\Python33\\lib\\site-packages']
В этот список можно включать и свои директории.
СodeСhick.io — простой и эффективный способ изучения программирования.
2023 © ООО «Алгоритмы и практика»
Функции print() и input(). Преобразование строк в числа int() и float()
О функции print() мы с вами уже немного говорили, и вы видели ее использование в самых простых ситуациях, например:
a = -6.84 b = 7 c = 25.6 print(a, b, c)
Как видите, между ними автоматически добавляется пробел. Но этот символ можно поменять через параметр sep, например, так:
Соответственно, чтобы параметр sep «сработал», необходимо хотя бы два аргумента в функции print(). Если указать, например, один:
то здесь разделять нечего и он будет проигнорирован. А вот для двух переменных уже появится вертикальная черта:
Второй параметр end задает окончание строки вывода и по умолчанию: end = ‘\n’ переводу на следующую строку. Это такой спецсимвол, о которых мы также еще будем говорить. Так вот, благодаря такому параметру end два последовательных вызова функции print() напечатают текст с новой строки:
print("Hello", end=' ') print("World!")
то увидим в одной строчке оба слова. Разумеется, здесь параметр end с пробелом применяется только к первому print(). У второго он уже берется по умолчанию с переносом строки. Последнее, что я хочу рассказать о функции print() – это способ вывода форматированной информации в консоль. Давайте предположим, что у нас имеются две переменные (координаты точки) x и y:
И мы хотим вывести их в формате: «Координаты точки: x = 5.76; y = -8» Сделать это можно несколькими способами. Первый, самый очевидный, записать все через запятую:
print("Координаты точки: x = ", x, "; y = ", y)
Но, начиная с версии Python 3.6, появилась возможность использовать специальные F-строки. О них мы также еще будем говорить, но здесь я приведу простой пример и вы уже сейчас сможете применять этот механизм в своих программах. Запишем функцию print(), следующим образом:
print(f"Координаты точки: x = ; y = ")
Смотрите, здесь перед строкой ставится специальный символ f, указывающий, что это будет F-строка. А, в самой строчке внутри фигурных скобок мы можем записывать любые конструкции языка Python. В данном случае, я просто указал переменные x и y. Видите, как это просто, наглядно и удобно. Сейчас практически всегда используются F-строки для форматированного вывода информации.
Функция input()
Вторая функция input() служит для ввода информации, как правило, с клавиатуры. В самом простом варианте ее можно вызвать так:
И это важный момент: функция input() всегда возвращает строку. На что это может повлиять? Например, мы хотим вычислить модуль введенного числа:
При вызове функции abs() возникнет ошибка, так как в качестве ее аргумента должно быть число, а не строка. Как решить эту проблему? Очень просто. Если мы знаем, что пользователь должен ввести число, предположим, целое число, то можно воспользоваться функцией:
a = input() a = int(a) b = abs(a) print(b)
Но функция int() преобразовывает только целые числа. Если в строке будет хотя бы один не цифровой символ:
возникнет ошибка. То есть, в нашей программе пользователь обязательно должен вводить целые числа. А как тогда преобразовывать вещественные значения? Для этого есть другая функция:
a = float(input()) b = abs(a) print(b)
Давайте напишем программу для вычисления периметра прямоугольника. Пользователь будет вводить два числа (стороны прямоугольника), а мы, затем, вычислим периметр:
a = float(input()) b = float(input()) print("Периметр:", 2 * (a + b))
Как видите, все достаточно просто. Мы вводим первое число, нажимаем Enter и вводим второе число. Вводить два числа через пробел здесь нельзя, иначе получится строка с двумя числами, разделенные пробелом и ее нельзя будет преобразовать функциями int() и float(). Также в этой программе пользователю совершенно непонятно, что нужно вводить. Давайте добавим подсказки. Для этого в функции input() первым аргументом передается строка:
a = float(input("Введите длину прямоугольника: ")) b = float(input("Введите ширину прямоугольника: ")) print("Периметр:", 2 * (a + b))
Теперь стало гораздо понятнее, что нужно вводить. Забегая вперед отмечу, что в Python можно выстроить конструкцию для ввода значений через пробел. Это делается так:
a, b = map(float, input("Введите две стороны прямоугольника: ").split())
Здесь к каждому введенному значению применяется функция float() для преобразования в вещественные числа. Пока просто запомните эту конструкцию, в дальнейшем она станет понятной, когда мы изучим строки и функцию map(). Или, для ввода целых чисел, она будет принимать вид:
a, b, c = map(int, input("Введите три целых числа: ").split()) print("Периметр треугольника:", a + b + c)