Как правило, программа – это обработчик данных. Это означает, что она получает данные, обрабатывает их и возвращает. Одним из простейших способов показать пользователю результат работы программы – вывести сообщение в консоль. Часто простоту языка оценивают по тому, сколько кода необходимо для этой операции. Давайте посмотрим на несколько языков и попробуем вывести в консоль классическое «Hello, World»:
Assembler
format PE Console ;
entry start ;
include 'win32a.inc' ;
section '.data' data readable writeable ;
hello db 'hello, world!', 0 ;
section '.code' code readable writeable executable ;
start: ;
invoke printf, hello ;
invoke getch ;
invoke ExitProcess, 0 ;
section '.idata' data import readable ;
library kernel, 'kernel32.dll', msvcrt, 'msvcrt.dll'
import kernel, ExitProcess, 'ExitProcess'
import msvcrt, printf, 'printf', getch, '_getch'
C++
#include
int main()
{
std::cout << "Hello, World!\n";
}
Java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
А вот, как это выглядит в Python:
print('Hello, World!')
Лаконичность – сильная сторона Питона. Давайте изучим данную функцию детальнее.
Полный синтаксис функции print
Простейший случай применения этой функции выглядит следующим образом:
print()
Такой код выведет в консоль пустую строку и перейдёт на следующую. Если говорить совсем уж техническим языком – будет напечатан неотображаемый символ перевода строки.
Важно, как и в остальных функциях, не забывать про круглые скобки. Без них не произойдёт вызов функции, а будет передана сама функция (её объект).
Теперь давайте продвинемся дальше и напишем что-нибудь более осмысленное, чем пустая строка:
print('I`m Python master')
# Вывод:
I`m Python master
Как видите, всё просто.
Полный синтаксис функции print выглядит так:
print(*items, sep=' ', end='\n', file=sys.stdout, flush=False)
Про параметры функции поговорим позже, но, стоит отметить, что при передаче в качестве аргумента переменной, будет распечатано её значение, а любой объект будет приведён к строковому типу:
from math import pi, inf
переменная = 1
print('переменная:', переменная)
print('PI:', pi)
print('Бесконечность:', inf)
print('Элипсис:', ...)
print('Тип данных:', float())
print('Функция:', print)
# Вывод:
переменная: 1
PI: 3.141592653589793
Бесконечность: inf
Элипсис: Ellipsis
Тип данных: 0.0
Функция: <built-in function print>
print('I`m', 'Python', 'master') # Вывод: I`m Python master
2. Не забывайте заключать аргументы в круглые скобки: print – это обычная функция.
3. Не забывайте заключать строки в одинарные или двойные кавычки. Лучшей практикой является применение одинаковых кавычек во всём проекте.
4. Переменные и прочие объекты не строкового типа обрамлять кавычками не надо.
Параметры print
Как уже говорилось ранее, полный синтаксис функции print выглядит так:
print(*items, sep=' ', end='\n', file=sys.stdout, flush=False)
Давайте разберёмся с параметрами функции. Вот их список:
- sep — разделитель (по умолчанию пробел » «). Значением может быть любой символ либо None;
- end — символ, завершающий строку (по умолчанию перенос строки \n). Значением может быть любой символ либо None;
- file — место, куда направляется вывод (по умолчанию sys.stdout — консоль). Изредка, кроме стандартного значения, здесь указывают какой-нибудь файл;
- flush — отключить буферизацию стандартного потока вывода (по умолчанию False).
Рассмотрим параметры подробнее.
sep
Если Вы хотите, чтобы позиционные аргументы разделялись не пробелом, а другим символом, передайте его значение в именованный параметр sep:
print('I`m', 'Python', 'master')
print('I`m', 'Python', 'master', sep='\n')
# Вывод:
I`m Python master
I`m
Python
Master
Здесь мы заменили пробел на ‘\n’ – перенос строки и каждый новый аргумент был напечатан на новой строке. Набор символов в разделителе может быть любым:
print('I`m', 'Python', 'master', sep=' тру-ля-ля ')
print('I`m', 'Python', 'master', sep='|/-\\+-~`')
# Вывод:
I`m тру-ля-ля Python тру-ля-ля master
I`m|/-\+-~`Python|/-\+-~`master
Здесь напомним, что если Вы используете в строке символ ‘\’, то его надо экранировать (‘\\’) либо использовать сырые строки (r’\’).
end
Параметр end похож на sep, но этот символ вставляется не между аргументами, а после них. По умолчанию это перевод строки, именно поэтому каждый новый вызов функции печатается на новой строке:
print('I`m', 'Python', 'master')
print('I`m', 'Python', 'master')
print('I`m', 'Python', 'master', end=' ')
print('I`m', 'Python', 'master', end='')
file
По умолчанию функция print печатает всё в консоль, но Python позволяет передавать в параметр file любой объект с методом write(string). За счет этого с помощью print можно записывать строки в файл:
file = open('result.txt', 'w', encoding='utf-8')
with file as f:
print('I`m', 'Python', 'master', file=f)
flush
Когда Вы используете вывод в файл этот параметр может отключить буферизацию. Это означает всего лишь то, что запись в файл произойдёт не после выхода из цикла, как здесь:
import time
file = open('result.txt', 'w', encoding='utf-8')
with file as f:
for _ in range(10):
print('I`m', 'Python', 'master')
time.sleep(10)
а после каждого вызова функции:
import time
file = open('result.txt', 'w', encoding='utf-8')
with file as f:
for _ in range(10):
print('I`m', 'Python', 'master', flush=True)
time.sleep(10)
Возвращаемое значение
Функция print() в Пайтоне не возвращает значений (то есть возвращает None).
Задачи к уроку
Для закрепления материала давайте вместе выполним несколько простых заданий.
1. Классика, как она есть: вывести строку “Hello, World!”
Решение:
Надеемся, сложностей у Вас не возникло, ведь мы это уже делали в сам начале.
print('Hello, World!')
# Вывод:
Hello, World!
2. Распечатайте ту же строку, но с кавычками.
Решение:
Всё, что Вам надо – использовать разные кавычки вокруг строки и внутри неё, иначе интерпретатор Вас не поймёт.
print('"Hello, World!"')
# Вывод:
"Hello, World!"
Что же делать, если в строке встречаются как одинарные, так и двойные кавычки? Экранировать!
print("\"Hello, World!\"")
# Вывод:
"Hello, World!"
3. Готовы к задачке со звёздочкой? Пользователь вводит целое число 2 раза. После каждого ввода программа выводит чему равно это число, если его умножить на два. Написанный код должен занимать одну строку. Пример:
Введите целое число 0
0 * 2 = 0
Введите целое число 3
3 * 2 = 6
Решение:
[print(переменная:=input('Введите целое число '), '*', 2, end=' = '+str(int(переменная)*2)+'\n') for i in range(2)]
# Вывод:
Введите целое число 0
0 * 2 = 0
Введите целое число 3
3 * 2 = 6