Документация по Python

Функция print

В: Документация по Python

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

В 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 , который будет принудительно очистить поток.

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.