Печать числа в питоне

Форматирование строк

Часто форматирование строк связано с их выводом на экран. Однако следует помнить, что на вывод передается уже сформированная строка. Создание строки, то есть вставка в нее данных в заданных форматах, является отдельной операцией. Готовая строка может быть, например, присвоена переменной, а не выводиться сразу на экран.

% — оператор форматирования строки

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

Такой способ форматирования считается старым потому, что заимствован из функции printf языка C, а в Python кроме него появились другие способы вставки данных в «строки-шаблоны». Однако в ряде случаев удобнее использовать оператор % .

Вывод вещественного числа с заданной точностью

Оператор деления / возвращает вещественное число. Если количество знаков после запятой бесконечно, интерпретатор Python выведит его с большим количеством знаков в дробной части:

С помощью оператора форматирования строки % можно выполнить округление числа до требуемой точности. Например, оставить только два знака после запятой. Для этого внутри строки, то есть в кавычках, записывают комбинацию символов, которая начинается со знака % . Далее ставят точку. Число после точки обозначает количество знаков после запятой. Символ f обозначает вещественный тип данных float .

Обратите внимание, переменная a содержит число с большим количеством знаков в дробной части. Строка ‘1.33’ является результатом выполнения выражения ‘%.2f’ % a . Функции print() передается готовая строка ‘1.33’ . Предварительно эту строку можно было бы присвоить отдельной переменной:

Читайте также:  Javascript длина имени переменной

С другой стороны, по правую сторону от оператора форматирования строки не обязательно указывать переменную. Чаще здесь записывают непосредственно выражение. При этом берут его в скобки.

Строка, содержащая в себе спецификаторы преобразования, также может содержать обычные символы:

Символ d в формате вставки обозначает целое число (тип int ).

Оператор форматирования строк выполняет округление вещественных чисел, а не простое отбрасывание «лишних» цифр:

Вывод символа

Чтобы получить любой символ из таблицы Unicode, в спецификаторе используют букву c , при этом после знака оператора форматирования указывают код требуемого символа.

print('%c' % 189) print('%c' % 32400)

Вставка в строку значений словаря через ключи

ab = print('%(good)s, %(price).2f' % ab)

Вывод данных в поля заданной ширины

Бывает данные надо вывести в виде таблицы. Это значит, что каждый элемент данных выводится в поле определенной ширины, которая измеряется в знакоместах.

Например, вместо подобного вывода:

First 483 1.1 Second 9 10.7 
First 483 1.1 Second 9 10.7 

Для таких случаев в формате вставки элемента данных в строку указывается ширина поля (количество знакомест). Делается это сразу после знака процента.

print('%-7s %5d %8.1f' % ('First', 483, 1.1)) print('%-7s %5d %8.1f' % ('Second', 9, 10.65))

Знак «минус» заставляет данные выравниваться по левому краю. По умолчанию они выравниваются по правому:

print('%7s %5d' % ('First', 483)) print('%7s %5d' % ('Second', 9))

Строковый метод format

Строковый метод format вставляет переданные в него аргументы в строку, к которой применяется. В строке места вставки, или «поля замены», определяются фигурными скобками. Внутри скобок могут указываться индексы или ключи аргументов, переданных в метод format.

print("<>, <> and <>".format('A', 8, 'B')) print(", and ".format('A', 8, 'B'))

В format() может передоваться больше аргументов, чем имеется мест вставок в строке. В таком случае оставшиеся аргументы игнорируются.

nums = ['I', 'II', 'III', 'IV', 'V'] print("<> <> <>".format(*nums)) print(" ".format(*nums))

Вставка значений по ключу:

print(' = '.format(var='pi', value=3.14))
u = print('-'.format(**u)) print(''.format(**u)) print('-'.format('John', **u))
class House: size = 5 street = "Red" h = House() print(', '.format(h))

Метод format позволяет задавать ширину поля и выравнивание:

u = print('--'.format(**u)) print('10>-4>-'.format(**u)) print('--'.format(**u))
print('<>'.format(4/3)) print(''.format(4/3)) print(''.format(4/3)) print(''.format(4/3)) print(''.format(4/3))
1.3333333333333333 1.333333 1.33 1.33 1.333333e+00 

Форматированные строковые литералы

В последних версиях Python появилась возможность использовать так называемые форматированные строковые литералы (formatted string literals). В отличие от обычных строковых литералов перед f-строками ставится буква f .

В теле строки могут находиться включения в фигурных скобках. В процессе выполнения программы интерпретатор исполняет выражения в фигурных скобках, вставляя их результат в соответстующие места строки.

user = input() print(f'Hello !') a = 4.5678 print(f'Result ')
print(f'Hello !') a = 4 b = 3 print(f'Result ')
John Hello John! Result 1.33 

Выравнивание строк другими строковыми методами

a = "Hello" print('|', a.center(10), '|') print(a.rjust(14)) print(a.ljust(10)) print(a.ljust(14, '.')) print(a.center(14, '.'))
| Hello | Hello Hello Hello. . Hello. 

Источник

Функция Print() в Python

На примерах узнайте, какие возможности предлагает функция print в Python.

Многие из вас при чтении этого руководства наверняка подумают, что в этой простой функции нет ничего нераскрытого, потому что именно с print многие начинают свое знакомство с Python, выводя на экран заветную фразу Hello, World! . Это естественно не только для Python, но и для любого языка, что функция print является базовой и одним из первых шагов при изучении как программирования в целом, так и конкретного синтаксиса. Однако со временем многие переходят к более продвинутым темам, забывая о возможностях простых на первый взгляд функций.

Это руководство целиком посвящено функции print в Python — из него вы узнаете о том, насколько она недооценена.

Если в Python 2 скобки можно не использовать, то в Python3 они обязательны. Если их не указать, то будет вызвана синтаксическая ошибка.

 File "", line 1 print "Hello, World!" ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")? 

Из текста выше можно сделать вывод, что в Python 3 print() — это не инструкция, а функция.

Чтобы убедиться, проверим type/class функции print() .

builtin_function_or_method 

Возвращается builtin_function_or_method . Это значит, что это ранее определенная или встроенная функция Python.

Предположим, что нужно добавить перенос строки или вертикальный отступ между двумя выводами. Для этого достаточно вызвать print() , не передавая аргументов.

print("Hello, World!");print("Hello, World!") 
print("Hello, World!") print() print("Hello, World!") 

Рассмотрим синтаксис функции print() .

print(value, . sep=», end=’\n’, file=sys.stdout, flush=False)

Как вы знаете, функция print выводит значения в поток данных или в sys.stdout по умолчанию. sys.stdout или стандартный вывод системы означают, что функция print выведет значение на экран. Его можно поменять на stdin или stderr .

Необязательные аргументы:

  • sep — это может быть строка, которую необходимо вставлять между значениями, по умолчанию — пробел. Вставим список слов в print и разделим их с помощью символа новой строки. Еще раз: по умолчанию разделитель добавляет пробел между каждым словом.
print('туториал', 'по', 'функции', 'print()') 
туториал по функции print() 
# \n перенесет каждое слово на новую строку print('туториал', 'по', 'функции', 'print()', sep='\n') 
туториал по функции print() 

Также можно разделить слова запятыми или добавить два символа новой строки ( \n ), что приведет к появлению пустой строки между каждой строкой с текстом или, например, знак плюс ( + ).

print('туториал', 'по', 'функции', 'print()', sep=',') 
print('туториал', 'по', 'функции', 'print()', sep='\n\n') 
туториал по функции print() 
print('туториал', 'по', 'функции', 'print()', sep=',+') 

Прежде чем переходить к следующему аргументу, end , стоит напомнить, что в функцию можно передать и переменную. Например, определим список целых чисел и вставим его в функцию pass . Это список и будет выведен.

int_list = [1,2,3,4,5,6] print(int_list) 

Предположим, есть две строки, а задача состоит в том, чтобы объединить их, оставив пробел. Для этого нужно в первой функции print указать первую строку, str1 и аргумент end с кавычками. В таком случае на экран выведутся две строки с пробелом между ними.

str1 = 'туториал по' str2 = 'функции print()' print(str1) print(str2) 
туториал по функции print() 
туториал по функции print() 

Возьмем другой пример, где есть функция, которая должна выводить значения списка на одной строке. Этого можно добиться с помощью такого значения аргумента end :

def value(items): for item in items: print(item, end=' ') value([1,2,3,4]) 
file = open('print.txt','a+') def value(items): for item in items: print(item, file=file) file.close() # закройте файл после работы с ним. value([1,2,3,4,5,6,7,8,9,10]) 
import time print('Пожалуйста, введите ваш электронный адрес : ', end=' ') # print('Пожалуйста, введите ваш электронный адрес : ', end=' ', flush=True) # запустите код выше, чтобы увидеть разницу. time.sleep(5) 
Пожалуйста, введите ваш электронный адрес : 

А теперь посмотрим, как можно использовать функцию print для получения ввода от пользователя в Jupyter Notebook. Для этого используется встроенная функция input() .

tutorial_topic = input() print("Тема сегодняшнего урока: ", end='') print(tutorial_topic) 
функция print() Тема сегодняшнего урока: функция print() 

Здесь указан опциональный аргумент end , который объединяет статическую инструкцию в print и ввод пользователя.

Рассмотрим другие интересные способы вывода значений переменных в функции print .

    Для отображения значения переменной вместе с определенной строкой, нужно лишь добавить запятые между ними. В этом случае положение строки и переменной не имеет значения.

a = 2 b = "PythonRU" print(a,"— целое число, а",b,"— строка.") 
2 — целое число, а PythonRU — строка. 
a = 2 b = "PythonRU" print(" — целое число, а — строка.".format(a,b)) 
2 — целое число, а PythonRU — строка. 

Если поставить одинаковый номер индекса в обоих местах, то при выводе на этих позициях будут одни и те же значения.

a = 2 b = "PythonRU" print(" — целое число, а — строка.".format(a,b)) 
PythonRU — целое число, а PythonRU — строка. 
a = 2 b = "PythonRU" print("%d — целое число, а %s — строка."%(a,b)) 
2 — целое число, а PythonRU — строка. 

Посмотрим, что произойдет, если указать %s для переменной a , которая является целым числом.

print("%s — целое число, а %s — строка."%(a,b)) 
2 — целое число, а PythonRU — строка. 

Как видно, все работает. Причина в том, что функция print неявно выполняет typecasting и конвертирует целое число в строку. Но в обратном порядке это работать не будет. Функция не сможет конвертировать строку в целое число, а вместо этого выведется TypeError .

print("%d — целое число, а %d — строка."%(a,b)) 
 --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in ----> 1 print("%d — целое число, а %d — строка."%(a,b)) TypeError: %d format: a number is required, not str 

Вывод

Это руководство — отличная отправная точка для новичков, желающих добиться высокого уровня мастерства в Python. Поиграйте с функций print еще и разберитесь с другими возможностями, которые не были рассмотрены здесь.

Источник

Оцените статью