Поиск…


Основы печати

В Python 3 и выше print - это функция, а не ключевое слово.

print('hello world!')
# out: hello world!

foo = 1
bar = 'bar'
baz = 3.14

print(foo)    
# out: 1
print(bar)    
# out: bar
print(baz)
# out: 3.14

Вы также можете передать несколько параметров для print :

print(foo, bar, baz)
# out: 1 bar 3.14

Другой способ print нескольких параметров - использовать +

print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14

Однако вы должны быть осторожны при использовании + для печати нескольких параметров, так как тип параметров должен быть одинаковым. Попытка напечатать приведенный выше пример без приведения в string сначала приведет к ошибке, потому что она попытается добавить номер 1 в строку "bar" и добавить это к числу 3.14 .

# Wrong:
# type:int  str  float
print(foo + bar + baz)
# will result in an error

Это связано с тем, что сначала будет оцениваться содержимое print :

print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]

В противном случае использование + может быть очень полезно для пользователя для чтения вывода переменных. В приведенном ниже примере вывод очень прост для чтения!

В приведенном ниже сценарии это

import random 
#telling python to include a function to create random numbers
randnum = random.randint(0, 12) 
#make a random number between 0 and 12 and assign it to a variable
print("The randomly generated number was - " + str(randnum))

Вы можете запретить автоматическую print функции печати с помощью параметра end :

print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?

Если вы хотите записать файл, вы можете передать его как file параметров:

with open('my_file.txt', 'w+') as my_file:
    print("this goes to the file!", file=my_file)

это идет к файлу!

Параметры печати

Вы можете делать больше, чем просто печатать текст. print также есть несколько параметров, которые помогут вам.

Аргумент sep : поместите строку между аргументами.

Вам нужно распечатать список слов, разделенных запятой или какой-либо другой строкой?

>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>

Аргумент end : используйте что-то другое, кроме новой строки в конце

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

>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1

paragraph2
>>>

file аргумента: отправьте вывод в другое место, кроме sys.stdout.

Теперь вы можете отправить свой текст в stdout, файл или StringIO и не заботятся о том, что вам дано. Если он кланяется как файл, он работает как файл.

>>> def sendit(out, *values, sep=' ', end='\n'):
...     print(*values, sep=sep, end=end, file=out)
... 
>>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
apples    bannas    cherries
>>> with open("delete-me.txt", "w+") as f:
...    sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
... 
>>> with open("delete-me.txt", "rt") as f:
...     print(f.read())
... 
apples bannas cherries

>>>

Существует четвертый параметр flush который будет принудительно очищать поток.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow