Curso
Função Python Print()
Se você estiver começando a usar Python e quiser saber mais, faça o curso Introdução à ciência de dados em Python do DataCamp.

Muitos de vocês, ao lerem este tutorial, podem pensar que não há nada desconhecido sobre uma simples função Python Print, já que todos começaram a aprender Python com o exemplo sempre atual de imprimir Hello, World!
. Também é verdade que, em Python ou em qualquer outra linguagem de programação, a função Print é a mais básica e a primeira etapa do aprendizado de uma determinada linguagem. No entanto, ao aprender uma linguagem de programação, às vezes você tende a se concentrar em tópicos mais avançados e, muitas vezes, esquece as complexidades ou os recursos de uma função simples que quase sempre usa.
O foco do tutorial de hoje será inteiramente na função Print do Python; você aprenderá sobre a função mais subestimada.
Vamos começar este tutorial imprimindo o exemplo Hello, World!
.
print("Hello, World!")
Hello, World!
Diferentemente de Python2
, que não exigia a colocação de parênteses, em Python3
, os parênteses são obrigatórios, caso contrário, ocorrerá um erro de sintaxe, conforme mostrado abaixo.
print "Hello, World!"
File "", line 1
print "Hello, World!"
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")?
A partir do resultado acima, você pode concluir que, no Python3, print()
não é uma instrução, mas uma função.
Dito isso, vamos verificar o site type/class
da função print()
.
type(print)
builtin_function_or_method
Ele retorna builtin_function_or_method
, o que significa que é um Python Function
predefinido ou incorporado.
Agora, digamos que você queira adicionar uma nova linha ou um espaço vertical entre os dois outputs abaixo. Para isso, basta chamar a função print()
sem passar nenhum argumento.
print("Hello, World!");print("Hello, World!")
Hello, World!
Hello, World!
print("Hello, World!")
print()
print("Hello, World!")
Hello, World!
Hello, World!
Vejamos a sintaxe da função print()
. print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Como você já sabe, a função print imprime os valores em um fluxo ou em sys.stdout por padrão. O sys.stdout ou saída padrão do sistema significa que a função de impressão imprimirá a saída na tela e pode até ser alterada para stdin ou stderr.
Argumentos opcionais de palavra-chave:
-
sep
: Pode ser uma cadeia de caracteres que você gostaria de inserir entre os valores; o padrão é espaço.Vamos colocar uma lista de palavras dentro da função de impressão e separá-las com uma nova linha. Lembre-se de que, por padrão, o separador adiciona um espaço em branco entre cada palavra.
print('datacamp','tutorial','on','python','print','function')
datacamp tutorial on python print function
print('datacamp','tutorial','on','python','print','function',sep='\n') #`\n` will put each word in a new line
datacamp
tutorial
on
python
print
function
Da mesma forma, você pode separá-los com uma vírgula, ou adicionar dois \n
, o que adicionará uma linha vazia entre eles, ou até mesmo adicionar um sinal de adição $(+)$.
print('datacamp','tutorial','on','python','print','function',sep=',')
datacamp,tutorial,on,python,print,function
print('datacamp','tutorial','on','python','print','function',sep='\n\n')
datacamp
tutorial
on
python
print
function
print('datacamp','tutorial','on','python','print','function',sep=',+')
datacamp,+tutorial,+on,+python,+print,+function
Antes de passar para o próximo argumento, ou seja, end
, lembre-se de que você também pode passar uma variável para a função de impressão. Para entender isso, vamos dar um exemplo, definindo uma lista de números inteiros e passando-a para a função de impressão. Você esperaria que ele imprimisse a lista de números inteiros.
int_list = [1,2,3,4,5,6]
print(int_list)
[1, 2, 3, 4, 5, 6]
-
end
: É uma cadeia de caracteres anexada após o último valor, cujo padrão é uma nova linha. Ele permite que o programador defina um caractere final personalizado para cada chamada de impressão que não seja a nova linha padrão ou\n
.Digamos que você tenha duas cadeias de caracteres e queira uni-las com um espaço. Tudo o que você precisa fazer é, na função de impressão da primeira cadeia de caracteres
str1
, adicionar o argumentoend
entre aspas e esperar que as duas cadeias de caracteres sejam unidas por um espaço.
str1 = 'datacamp tutorial on'
str2 = 'python print function'
print(str1)
print(str2)
datacamp tutorial on
python print function
print(str1,end=' ')
print(str2)
datacamp tutorial on python print function
Vejamos outro exemplo em que você tem uma função cujo trabalho é imprimir todos os valores de uma lista na mesma linha. Você pode fazer isso com o argumento end
, conforme mostrado abaixo:
def value(items):
for item in items:
print(item, end=' ')
value([1,2,3,4])
1 2 3 4
-
file
: Um objeto do tipo arquivo (fluxo); o padrão é o sys.stdout atual. Aqui você pode mencionar o arquivo no qual gostaria de gravar ou anexar a saída da função de impressão.Ao usar o argumento file, você pode armazenar a saída da função de impressão em um arquivo em vários formatos, como
.csv
,.txt
, etc. Vamos entender isso com um exemplo em que você itera sobre cada elemento da lista. Ele é salvo em um arquivo de texto. Para fazer isso, primeiro você abrirá um arquivo de texto em um estadoappend
no qual salvará a saída do comando print. Em seguida, você definirá a função cuja saída será anexada ao arquivo de texto.
file = open('print.txt','a+')
def value(items):
for item in items:
print(item, file=file)
file.close() # close the file ones the function execution completes.
value([1,2,3,4,5,6,7,8,9,10])
Quando a execução da função acima for concluída, você deverá ver um arquivo chamado print.txt
no diretório atual. Vamos abri-lo e ver seu conteúdo.
A partir da saída acima, fica claro que você pode até mesmo salvar a saída em arquivos e não apenas imprimir a saída no terminal ou no notebook.
-
flush
: Ele determina se o fluxo deve ser liberado à força. Por padrão, ele é definido como False.Normalmente, a saída para um arquivo ou para o console é armazenada em buffer, com saída de texto pelo menos até que você imprima uma nova linha(Fonte). Buffer significa que a saída é armazenada em algum tipo de registro no qual a saída reside antes de estar pronta para ser armazenada ou de o arquivo ser finalmente fechado. O trabalho do flush é garantir que a saída, que está sendo armazenada em buffer, vá para o destino com segurança.
import time
print('Please enter your email-id : ', end=' ')
#print('Please enter your email-id : ', end=' ', flush=True) #run this to see the difference and comment out the above line of code.
time.sleep(5)
Please enter your email-id :
Se você executar as linhas de código acima no terminal, perceberá que a string de prompt não aparece até que o temporizador de suspensão termine e o programa seja encerrado(Fonte). No entanto, se você adicionar flush=True
na função de impressão, verá o prompt e terá de esperar 5 segundos para que o programa termine.
De alguma forma, o Jupyter Notebook ou o Jupyter Lab cuida disso e mostra o prompt antes do cronômetro de 5 segundos, portanto, se quiser testar essa funcionalidade do print, certifique-se de executá-lo no terminal de linha de comando e não no Jupyter Notebook.
Vamos ver como você pode usar a função print para receber a entrada do usuário no notebook do jupyter. Para isso, você usará a função integrada do python input()
.
tutorial_topic = input()
print("The topic of today's tutorial is: ", end='')
print(tutorial_topic)
Print Function
The topic of today's tutorial is: Print Function
Assim que executar a célula acima, você verá um resultado como o mostrado abaixo:
Aqui você definiu um argumento nomeado opcional end
que aprendeu anteriormente, que concatena a instrução estática dentro da instrução print com a entrada do usuário.
Vamos ver algumas maneiras mais legais de imprimir valores variáveis dentro da função print.
- Para exibir o valor de uma variável junto com uma cadeia de caracteres predefinida, tudo o que você precisa fazer é adicionar uma vírgula entre as duas. Aqui, a posição da cadeia de caracteres predefinida e da variável não importa.
a = 2
b = "Datacamp"
print(a,"is an integer while",b,"is a string.")
2 is an integer while Datacamp is a string.
-
Você pode usar o argumento
format
, no qual pode passar quantas variáveis quiser imprimir. Ao passar as variáveis na função de formato, você precisa especificar os números de índice (ordem em que são colocados dentro do argumento de formato) na cadeia predefinida. Portanto, essa função de impressão funcionará agora como um modelo para você.Outro aspecto a ser lembrado é que aqui os números de índice são representados por um colchete
{}
que representa um espaço reservado.Vamos entender isso com o exemplo abaixo:
a = 2
b = "Datacamp"
print("{0} is an integer while {1} is a string.".format(a,b))
2 is an integer while Datacamp is a string.
Se você colocar o número de índice da segunda variável em ambos os locais, como esperado, serão impressos os mesmos valores, nesse caso, a variável b
para ambas.
print("{1} is an integer while {1} is a string.".format(a,b))
Datacamp is an integer while Datacamp is a string.
-
Semelhante a um argumento
format
em que a função de impressão atua como um modelo, você tem um sinal de porcentagem (%) que pode ser usado para imprimir os valores das variáveis.Como o argumento de formato, ele também tem um conceito de espaços reservados. No entanto, diferentemente da função
format
, em que você passa apenas os números de índice, nessa função você também precisa especificar o tipo de dado que o placeholder deve esperar.- %d é usado como espaço reservado para valores numéricos ou decimais.
- %s é usado como um espaço reservado para cadeias de caracteres.
a = 2
b = "Datacamp"
print("%d is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
Vamos ver o que acontece se você especificar %s
para a variável a
, que é um número inteiro.
print("%s is an integer while %s is a string."%(a,b))
2 is an integer while Datacamp is a string.
Como você pode ver no exemplo acima, ele ainda funciona. O motivo é que a função Print
executou implicitamente typecasting
e converteu o número inteiro em uma cadeia de caracteres. Entretanto, o oposto não é verdadeiro. Ele não conseguirá converter uma cadeia de caracteres em um número inteiro e resultará em um TypeError
.
Vamos descobrir.
print("%d is an integer while %d is a string."%(a,b))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
----> 1 print("%d is an integer while %d is a string."%(a,b))
TypeError: %d format: a number is required, not str
Conclusão
Parabéns por terminar o tutorial.
Esse tutorial foi um bom ponto de partida para iniciantes que desejam se tornar proficientes em Python. Talvez você queira brincar um pouco mais com a função Print e explorar mais algumas de suas funcionalidades que podem ter ficado de fora deste tutorial.
Fique à vontade para fazer qualquer pergunta relacionada a este tutorial na seção de comentários abaixo.
Se estiver começando a usar Python e quiser saber mais, confira o curso Introdução à ciência de dados em Python do DataCamp e o Tutorial de funções Python.
Cursos de Python
Curso
Intermediate Python
Curso
Introduction to Data Science in Python
Tutorial
Tutorial e exemplos de funções e métodos de lista do Python
Tutorial
Tutorial de funções Python
Tutorial
Python Print Without New Line (Imprimir sem nova linha): O que você precisa saber

Allan Ouko
7 min
Tutorial
Matrizes Python

DataCamp Team
3 min
Tutorial