Как отобразить разделитель после инструкции печати

#python #string

#python #строка

Вопрос:

Я хотел бы разделить свои инструкции печати пунктирной линией (или чем-то подобным), но я не могу найти способ сделать это, не печатая его в виде строки после каждого вывода. Например:

 a = 'Output 1'
b = 'Output 2'

separator = 'n-------------------------------------'

print(a, separator)
print(b, separator)
  

Это обеспечивает желаемый результат:

 Output 1 
-------------------------------------
Output 2 
-------------------------------------
  

Есть ли лучший способ сделать это без определения переменной ‘separator’ или создания моей собственной функции?

Заранее спасибо.

Комментарии:

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

2. вы можете иметь separator = 'n' '-'*15 более читаемый формат. И нет другого способа, кроме как создать свою собственную функцию.

3. Понятно, я надеялся, что print() or IPython.display примет аргумент, который сработает. Спасибо, что прояснили это для меня!

Ответ №1:

Короткий ответ — нет — вы должны создать для этого свою собственную функцию:

 def output(x):
    sep = "n-------------------------------------"
    print(x, separator, end="n")
  

Я думаю, стоит отметить, что вы можете сделать это немного более читаемым, используя:

 sep = f"n{'-'*37}"
# or
sep = "n"   "-"*37
  

Вы также можете разрешить функции принимать произвольное количество аргументов:

 def output(*args):
    sep = f"n{'-'*37}"
    for x in args:
        print(x, sep, end="n")

output("Output 1", "Output 2")

"""
Output 1 
-------------------------------------
Output 2 
-------------------------------------
"""
  

Комментарии:

1. Определенно более читаемый, я согласен. К сожалению, я надеялся обойти все «определяющие переменные». Тем не менее, спасибо.

2. Ну, вы могли бы определить функцию в отдельном модуле, а затем импортировать этот модуль в любой модуль, в котором вы работаете. Но, как вы сказали, к сожалению, обойти это невозможно.

3. и вы можете назвать функцию как ‘Print ()’ вместо ‘output ()’ ;))

4. @SadafShafi верно, но это становится проблемой, если вы хотите напечатать что-то без строки: D, если вы не используете заглавную букву «P»

5. @gmdev в этом случае используйте ‘print ()’ с маленьким ‘p’; D

Ответ №2:

Вы можете использовать этот:

 a = 'Output 1'
b = 'Output 2'

separator = 'n-------------------------------------'

print(a,b,sep =  separator, end = separator)
  

Комментарии:

1. он не дает желаемого результата

2. Вы просите совета, а не кого-то, кто будет кормить вас кодом. Конечный параметр работает просто отлично, не нужно понижать голоса людей, потому что вы хотели чего-то другого.

Ответ №3:

Есть ли лучший способ сделать это без определения переменной ‘separator’ или создания моей собственной функции?

Нет. Как вы можете напечатать 20 - , не определяя их?

 a = 'Output 1'
separator = 'n-------------------------------------n'

print(a, end=separator)
  

Ответ №4:

Функция печати в Python3 имеет end параметры, которые позволяют указать, как вы хотели бы, чтобы выводимый текст заканчивался. Если ваша проблема заключается в том, чтобы иметь другую переменную только для хранения разделителя, что-то вроде этого должно работать нормально:

 a = 'Output 1'
b = 'Output 2'
print(a, end = 'n-------------------------------------')
print(b, end = 'n-------------------------------------')
  

Комментарии:

1. это также не дает желаемого результата