Дополнительные возможности оператора вывода

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


Используем  скрытые возможности оператора print

Чтобы пояснить, о чём идёт речь, посмотрим, как происходит вывод значений переменных строковых и числовых типов данных. При обычном выводе мы их включаем в основной текст через запятую. Согласитесь, от этого код становится трудночитаем. Нет-нет, да и пропустит какой-нибудь программист кавычки или запятую.


Мой пример должен быть понятен сходу, но если вам сложно, то поясню.


Первый блок сохраняет указываемые мной значения в набор переменных
Через оператор print выводим поясняющий текст и значения.



my_name = "Николай"
my_age = 39
my_height = 185
my_weight = 90
my_eyes = "голубые"
my_teeth = "белые"
my_hair = "русые"

print("Меня зовут",my_name,".")
print ("Мне", my_age ,"лет.")
print ("Мой рост составляет",my_height,"см.")
print ("Мой вес -",my_weight,"кг.")
print ("У меня",my_eyes,"глаза и",my_hair,"волосы.")
print ("Мои зубы",my_teeth,", если я не пью кофе.")
print ("Если сложить все мои параметры, то получится число",my_age + my_height + my_weight)


Посмотрите внимательно на то, что получилось. Видите, после слова "Николай", точка идёт через пробел? Тоже самое с запятой, после белых зубов, хотя пробелов в тексте нет. Как решить - расскажу дальше.


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



my_name = "Николай"
my_age = 39
my_height = 185
my_weight = 90
my_eyes = "голубые"
my_teeth = "белые"
my_hair = "русые"

print ("Меня зовут %s." % my_name)
print ("Мне %s лет." % my_age)
print ("Мой рост составляет %d см." % my_height)
print ("Мой вес - %d кг." % my_weight)
print ("У меня %s глаза и %s волосы." % (my_eyes, my_hair))
print ("Мои зубы %s, если я не пью кофе." % my_teeth)
print ("Если сложить все мои параметры, то получится число = %d." % (my_age + my_height + my_weight))

Как видите, в этом примере с выводом текста всё нормально.



Для тех, до кого ещё недошло, поясню:


  • % - указываем перед переменной стоящей в конце.
  • %s - вывод в текст строковой переменной, указанной в конце
  • %d - вывод в текст числовой переменной, указанной в конце
  • (my_eyes, my_hair) - указание сразу некоторой последовательности переменных идущих в указанном порядке в тексте
  • (my_age + my_height + my_weight) - сразу суммируем числовые значения

Как вывести текст в одной строке?


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


Попробуйте ввести такой код



print(my_age, my_height)

Получился вывод в одну строчку



А теперь изменим на:



print(my_age, my_height, sep = " ")


Как видите, каждое значение выводится с новой строки, а не в одной, как обычной. Это связано с тем, что в параметр sep мы передали специальный символ новой строки.


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



print(my_age, my_height, end ='*')


Давайте уберём все дополнительные выводимые символы, принудительно задав пустое значение этим параметрам:



print(my_age, my_height, sep='', end='')


Получается всё слитно.



Со знанием дела, исправим наш первый пример.



my_name = "Николай"
my_age = 39
my_height = 185
my_weight = 90
my_eyes = "голубые"
my_teeth = "белые"
my_hair = "русые"

print("Меня зовут ",my_name,".\n","Мне ",my_age," лет.\n","Мой рост составляет ",my_height," см.\n","Мой вес - ",my_weight," кг.\n","У меня ",my_eyes," глаза и ",my_hair," волосы.\n", "Мои зубы ",my_teeth,", если я не пью кофе.\n", "Если сложить все мои параметры, то получится число ",my_age + my_height + my_weight,".\n", sep='', end='')

Вывод уместился водной строке (хотя и большой), но вывод исправлен.



Список специальных символов, используемых для вывода



И ещё, при выводе переменных не забывайте задавать им подходящие названия, чтобы потом не запутаться, что в них хранится и для чего они используются.


Команды ввода-вывода и арифметические операции в Питоне. Числовые типы данных в Питоне