Python Print

Основы

Как правило, программа – это обработчик данных. Это означает, что она получает данные, обрабатывает их и возвращает. Одним из простейших способов показать пользователю результат работы программы – вывести сообщение в консоль. Часто простоту языка оценивают по тому, сколько кода необходимо для этой операции. Давайте посмотрим на несколько языков и попробуем вывести в консоль классическое «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

Простейший случай применения этой функции выглядит следующим образом:


Такой код выведет в консоль пустую строку и перейдёт на следующую. Если говорить совсем уж техническим языком – будет напечатан неотображаемый символ перевода строки.
Важно, как и в остальных функциях, не забывать про круглые скобки. Без них не произойдёт вызов функции, а будет передана сама функция (её объект).
Теперь давайте продвинемся дальше и напишем что-нибудь более осмысленное, чем пустая строка:

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>
Советы: 1. Если перечислить несколько аргументов, функция выведет все из них, «склеив» в одну строку, разделяя пробелом (поведение по умолчанию):
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

Оцените статью
О Python на русском языке
Добавить комментарий

Adblock
detector