Strings e saída de dados¶
Vimos que é possível mostrar uma expressão, dado ou variável escrevendo o valor desta variável no final da célula. Entretanto nem sempre utilizamos o Jupyter Notebook para programar em Python. Entretanto, desta forma estamos limitado ao último dado da célula. Quando queremos imprimir algum dado intermediário ou com alguma construção mais complexa devemos recorrer à função de saída de dados print(). De forma similar, existe uma função que permite imprimir dados crus display().
Funções de saída de dados¶
Função print¶
A função print() tem o objetivo de imprimir na tela o valor que estiver sendo passado. Veja e execute a célula abaixo.
print("Este é um texto comum")
var1 = 300
print(var1)
Tarefa:
Com as funções de saída podemos criar programas mais complexos. Como por exemplo um programa capaz de converter a temperatura. Considere a seguinte fómula:
$$ C=5\times((F-32)/9) $$
Onde $C$ representa a temperatura em Celcius e $F$ representa a temperatura em Fahrenheit.
A saída do programa deve ser algo como:
A temperatura em Celcius é de XX graus.
Teste-o para a temperatura de $100^oF$, $32^oF$ e $192^oF$.
Dica:
Defina a temperatura em Fahrenheit como uma variável e altere a saída dela.
Caracter nova linha¶
Quando queremos escrever uma string com mais de uma linha podemos recorrer ao caracter \n. Este caracter simboliza uma quebra linha. Veja o exemplo abaixo:
print("Esta é a primeira linha.\nEsta é a segunda linha.\nEsta é a terceira linha.")
Esta é a primeira linha. Esta é a segunda linha. Esta é a terceira linha.
Uma outra forma de trabalhar com strings multi-linhas é usando três delimitadores de strings, como mostra abaixo:
print("""Esta é a primeira linha.
Esta é a segunda linha.
Esta é a terceira linha.""")
Esta é a primeira linha. Esta é a segunda linha. Esta é a terceira linha.
Observação:
Essa é a mesma notação utilizada para escrever comentário multi-linha.
Tarefa:
Crie um programa capaz de calcular a raiz quadrada, o dobro e o triplo de um número. Cada resultado deve ser impresso em uma única linha.
- Faça a tarefa utilizando o caracter
\n - Faça a tarefa utilizando a sintáxe de string multi-linha
Função display¶
A função display() também exibe um resultado na tela, porém de forma diferente da função print(). Esta função é exclusiva do Jupyter, e utiliza o mecanismo de representação multimodal do ambiente, permitindo que os dados sejam exibidos em diferentes formatos, como texto, HTML, Markdown, LaTeX, ou gráficos, dependendo das representações disponíveis no objeto.
Ela pode utilizar diferentes métodos de representação, dependendo do tipo de dado, incluindo:
__repr__()__str__()
Para representação mais ricas a função display() utiliza outros métodos, como __repr_html__(), __repr_json__(), __repr_latex__(), entre outras.` A escolha do método ocorre automaticamente, conforme o tipo de dado.
Embora não seja necessário compreender detalhadamente esses métodos nem a exibição de formatações avançadas, é útil saber que eles existem e que o Jupyter os utiliza para proporcionar visualizações mais informativas.
Importante:
Na prática, sempre que uma variável é declarada ao final de uma célula, o Jupyter chama a função
display()automaticamente nos bastidores. No entanto, é possível utilizar display() diretamente em qualquer parte do código para exibir dados antes do fim da célula.
Tarefa:
Repita o exemplo abaixo usando a função display():
# Troque pela função display aqui
print("Esta é a primeira linha.\nEsta é a segunda linha.\nEsta é a terceira linha.")
O que você vê de diferente em relação à função print()?
Escreva a resposta em uma string usando a função display().
Print com mais de um argumento¶
Até agora trabalhamos com a função print() recebendo um único argumento de entrada (parâmetro) na forma de string. Entretanto esta função permite que você insira mais de argumento (parâmetro). Veja o exemplo abaixo:
nome = 'Lucas'
data = 19
mes='Abril'
print('O meu nome é',nome,'e minha data de aniversário é',data,'de',mes,'.')
O meu nome é Lucas e minha data de aniversário é 19 de Abril .
Observe que no exemplo acima não houve necessidade de adicionar espaço no final da string. A própria função print() fez isso para a gente.
Tarefa:
Crie um programa que peça como entrada três palavras e forme uma frase com essas três palavras. A saída deve ser mostrada como:
A frase formada com essas três palavras é: [palavra1] [palavra2] [palavra3]
Dica:
Salve as palavras em variáveis.
Argumentos sep e end¶
Quando trabalhamos com múltiplos objetos de entrada, percebemos que sempre entre um parâmetro e outro, é adicionado um espaço em branco. Além disso, ao final do print() havia sempre uma quebra linha. Este é o comportamento padrão da função print() , entretanto podemos alterá-lo mudando os parâmetros opcionais sep= e end=. Descritos na tabela abaixo:
| Parâmetro opcional | Descrição |
|---|---|
| sep | Quando dois ou mais argumentos são passados para a função print() sep coloca entre eles um espaço em branco ou um outro valor que podemos passar para sep. |
| end | O valor padrão de end é uma nova linha \n e por isso que sempre a função print adiciona uma nova linha depois de imprimir tudo que lhe foi passado, mas, podemos definir outro valor com uma tabulação \t por exemplo. |
Sendo assim a notação da função print() é da seguinte forma:
print(arg1,arg2,arg3,...,sep=valor_do_sep,end=valor_do_end)
Veja e execute o exemplo abaixo:
ano1 = '1980'
ano2 = '1990'
ano3 = '2000'
ano4 = '2010'
texto = "Alterando o valor de sep"
print(texto)
print(ano1, ano2, ano3, ano4, sep='--->')
# pula uma linha
print()
texto = "Alterando o valor de sep e end"
print(texto)
print(ano1, ano2, ano3, ano4, sep='--->', end='.\n')