Pular para o conteúdo principal

Função Python Print()

Saiba como você pode aproveitar os recursos de uma simples função Python Print de várias maneiras com a ajuda de exemplos.
24 de abr. de 2024  · 10 min de leitura

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.

bandeira

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 argumento end 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 estado append 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.

saída

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:

saída

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.

Temas

Cursos de Python

curso

Introduction to Python

4 hr
6M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

tutorial

Tutorial e exemplos de funções e métodos de lista do Python

Saiba mais sobre as funções e os métodos da Lista do Python. Siga exemplos de código para list() e outras funções e métodos Python agora!
Abid Ali Awan's photo

Abid Ali Awan

7 min

tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

tutorial

Python Print Without New Line (Imprimir sem nova linha): O que você precisa saber

Controle a saída de impressão do Python para evitar novas linhas automáticas. Saiba como substituir o comportamento padrão da nova linha usando o parâmetro end, o módulo sys e a concatenação de strings.
Allan Ouko's photo

Allan Ouko

7 min

tutorial

Matrizes Python

Matrizes Python com exemplos de código. Saiba como criar e imprimir matrizes usando o Python NumPy hoje mesmo!
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Tutorial de indexação de lista Python()

Neste tutorial, você aprenderá exclusivamente sobre a função index().
Sejal Jaiswal's photo

Sejal Jaiswal

6 min

tutorial

Formatação de f-string em Python

Saiba mais sobre a técnica de formatação f-string no Python 3.6. Neste tutorial, você verá as vantagens que ele oferece e verá alguns exemplos de casos de uso.
Hafeezul Kareem Shaik's photo

Hafeezul Kareem Shaik

5 min

Ver maisVer mais