Курс по Python: https://stepik.org/course/100707
На этом
занятии речь пойдет о двух распространенных функциях:
- print() – вывод
данных в консоль;
- input() – ввод данных
из стандартного входного потока (часто клавиатуры).
Функция print()
О функции print() мы с вами уже
немного говорили, и вы видели ее использование в самых простых ситуациях,
например:
или
выведет
указанные значения через пробел. Также можно выводить отдельные переменные:
результаты
арифметических операций:
или функций:
Но у этой
функции имеется два необязательных именованных параметра, которые довольно
часто используются в практике программирования:
- sep –
разделитель
между данными;
- end – завершающий
символ или строка.
Давайте я покажу
на примере работу этих параметров. Предположим, мы выводим три переменные:
a = -6.84
b = 7
c = 25.6
print(a, b, c)
Как видите,
между ними автоматически добавляется пробел. Но этот символ можно поменять
через параметр sep, например, так:
print(a, b, c, sep=" | ")
Соответственно,
чтобы параметр sep «сработал», необходимо хотя бы два аргумента в
функции print(). Если
указать, например, один:
то здесь
разделять нечего и он будет проигнорирован. А вот для двух переменных уже
появится вертикальная черта:
Второй параметр end задает
окончание строки вывода и по умолчанию:
end = '\n'
переводу на
следующую строку. Это такой спецсимвол, о которых мы также еще будем говорить. Так
вот, благодаря такому параметру end два
последовательных вызова функции print() напечатают текст с новой строки:
print("Hello")
print("World!")
Но если в первой
функции 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 = {x}; y = {y}")
Смотрите, здесь
перед строкой ставится специальный символ f, указывающий,
что это будет F-строка. А, в
самой строчке внутри фигурных скобок мы можем записывать любые конструкции
языка Python. В данном
случае, я просто указал переменные x и y. Видите, как
это просто, наглядно и удобно. Сейчас практически всегда используются F-строки для
форматированного вывода информации.
Функция input()
Вторая функция input() служит для
ввода информации, как правило, с клавиатуры. В самом простом варианте ее можно
вызвать так:
При этом
переменная a будет ссылаться
на строку:
И это важный момент:
функция input() всегда
возвращает строку. На что это может повлиять? Например, мы хотим вычислить
модуль введенного числа:
При вызове
функции abs() возникнет
ошибка, так как в качестве ее аргумента должно быть число, а не строка. Как
решить эту проблему? Очень просто. Если мы знаем, что пользователь должен
ввести число, предположим, целое число, то можно воспользоваться функцией:
Теперь b будет ссылаться
на число 54, а не строку. И наша программа примет вид:
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)
На этом мы
завершим с вами очередное занятие. Я надеюсь, вы теперь хорошо понимаете, как
использовать функции print() и input(). Как всегда,
закрепите этот материал практическими занятиями и переходите к следующему
уроку.
Курс по Python: https://stepik.org/course/100707