Вывод значений print с новой строки

Стояла задача сделать простой калькулятор с простейшими операциями. Получился такой код:

print ('Введите число 1')
str1= int(input())
print ('Введите число 2')
str2= int(input())
print ('Сложение = ', str1+str2, 'Вычитание = ', str1-str2, 'Умножение = ', str1*str2, 'Деление = ', str1/str2, 'Возведение в степень = ', str1**str2, end='\n' )

Особенность задания в том, что при выводе нужно использовать только одну команду print, но результат по каждой операции должен быть выведен с новой строки. Использовал end='\n', но похоже как-то неправильно, вывод получается одной строкой. Как сделать так, что бы значения выводились с новой строки?


Ответы (3 шт):

Автор решения: SwaD

Допустим, вывод значений в новой строке при помощи 1 print, можно сделать так:

str1 = int(input('Введите число 1: '))
str2 = int(input('Введите число 2: '))
# Используем \n как разделитель строки
print(f'Сложение = {str1+str2}\nВычитание = {str1-str2}\nУмножение = {str1*str2}\nДеление = {str1/str2}\nВозведение в степень = {str1**str2}')
# используем sep='\n' как разделитель значений print
print(f'Сложение = {str1+str2}', f'Вычитание = {str1-str2}', f'Умножение = {str1*str2}', f'Деление = {str1/str2}', f'Возведение в степень = {str1**str2}', sep='\n')

Ну и лишние print убраны и помещены в input

→ Ссылка
Автор решения: Amgarak

Тут нужно использовать не end, а sep и как бонус добавить f-строк.

sep — это строка, которую необходимо вставлять между значениями, по умолчанию — пробел.

str1= 3
str2= 2
print (f'Сложение = {str1+str2}', f'Вычитание =  {str1-str2}', f'Умножение =  {str1*str2}', f'Деление =  {str1/str2}', f'Возведение в степень =  {str1**str2}', sep='\n' )

Вывод:

Сложение = 5
Вычитание =  1
Умножение =  6
Деление =  1.5
Возведение в степень =  9

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

str1= 3
str2= 2
print ('Калькулятор:',f'Сложение = {str1+str2}', f'Вычитание =  {str1-str2}', f'Умножение =  {str1*str2}', f'Деление =  {str1/str2}', f'Возведение в степень =  {str1**str2}', sep='\n ---' )

Вывод:

Калькулятор:
 ---Сложение = 5
 ---Вычитание =  1
 ---Умножение =  6
 ---Деление =  1.5
 ---Возведение в степень =  9
→ Ссылка
Автор решения: Краева Екатерина
print ('Введите число 1')
str1= int(input())
print ('Введите число 2')
str2= int(input())
print (f'Сложение = {str1+str2}', 'Вычитание = {str1-str2}', 'Умножение = {str1*str2}', 'Деление = {str1/str2}', 'Возведение в степень = {str1**str2}, sep='\n' )

Использованы f-строки. Это конструкции, позволяющие вставлять значение переменной в текст строки без дополнительного перевода.

Также параметр end нужно заменить на параметр sep. Он устанавливает разделитель между введёнными строками.

→ Ссылка