Prévia do material em texto
PENSAMENTO
COMPUTACIONAL
Fernando Esquírio Torres
Comandos de entrada
e saída (utilizando a
linguagem Python)
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
� Descrever o comando print.
� Definir o comando input.
� Praticar os comandos print, input e variáveis em problemas
computacionais.
Introdução
Os programas implementados em uma linguagem de programação,
geralmente, oferecem comandos básicos para a leitura de dados e o
envio de uma resposta ao usuário com o resultado do processamento
desses dados. Muitas vezes, os programas também provêm a interação
entre o usuário e o computador, por meio de comandos de entrada e
saída de dados.
Neste capítulo, você vai estudar os conceitos e o funcionamento
dos comandos print e input, que permitem imprimir uma resposta
na tela do computador e inserir dados por meio do teclado, respectiva-
mente. Por fim, você vai aprender como utilizá-los para resolver problemas
computacionais.
Saída de dados utilizando a função print()
As linguagens de programação, inclusive o Python, disponibilizam diversas
funções para facilitar a implementação de programas. Uma dessas funções é a
print(), que imprime mensagens específicas na saída padrão do computador,
que pode ser o console da IDE de programação (do inglês integrated develo-
pment environment, ou interface de desenvolvimento integrado), ou a tela do
computador, conforme leciona Banin (2018). Essa mensagem pode ser uma
sequência de caracteres (string) ou outros objetos, como variáveis e constantes.
Sintaxe
Segundo Barry (2018), a sintaxe da função print é:
print(*objects, sep=separator, end=end, file=sys.stdout,
flush=False)
onde os parâmetros são:
� *objects (necessário): são os objetos que serão impressos; pode ser
uma string (sequência de caracteres) ou, ainda, variáveis ou constantes.
� sep (opcional): especifica como os objetos impressos serão separados.
O padrão é um espaço ‘ ’.
� end (opcional): especifica o caractere impresso no final. O padrão
é ‘\n’ (nova linha).
� file (opcional): arquivo para ser preenchido com determinado
conteúdo.
� flush (opcional): um valor booleano para especificar se a saída será
liberada (True) ou armazenada em um buffer (False). O valor padrão
é False.
Utilizando a função print()
De acordo com Ramalho (2015), a partir da versão Python 3, o comando
print() deve obrigatoriamente usar parênteses.
Vejamos a Figura 1.
Comandos de entrada e saída (utilizando a linguagem Python)2
Figura 1. (a) Código com o comando
print usado para imprimir uma men-
sagem e (b) resultado da impressão no
prompt da IDE.
A Figura 1a mostra um código que utiliza a função print para imprimir
a mensagem ‘Olá Mundo!’ no prompt do computador (Figura 1b). Na figura, é
possível observar que a frase (string) que se deseja imprimir deve estar dentro
dos parênteses e entre aspas simples ou duplas, segundo Borges (2014). Assim,
o comando print interpreta que deverá imprimir a mensagem escrita entre as
aspas. O resultado da impressão é mostrado no console da IDE de programação.
A Figura 2 mostra como alterar os parâmetros sep e end.
Figura 2. (a) Código com parâmetros sep e end no comando print e (b) resultado da
impressão no prompt da IDE.
A Figura 2a mostra um trecho de código com a utilização do parâmetro
sep, que define como os objetos impressos serão separados; na Figura 2, os
elementos foram separados por três traços. Em seguida, é possível observar o
uso do parâmetro end, que determina o que será impresso ao final. A Figura 2b
mostra o resultado impresso no prompt da IDE, produzido pela execução do
código.
3Comandos de entrada e saída (utilizando a linguagem Python)
Na Figura 3, observa-se como é possível imprimir uma mensagem com
variáveis, constantes e strings.
Figura 3. (a) Código para imprimir uma mensagem com diversos
elementos e (b) resultado da impressão no prompt da IDE.
A Figura 3a mostra uma código que imprime uma mensagem concatenando
as strings entre aspas simples e a variável raio ou area.
Em programação, concatenar é o termo usado para indicar a ação de unir duas ou
mais strings para, por exemplo, formar uma mensagem para ser impressa na tela do
computador. O Python torna possível concatenar elementos como strings, variáveis,
constantes, etc.
Na Figura 3, os argumentos do comando print(arg1, arg2, arg3)
estão listados e separados por vírgula, sendo que, no primeiro comando
print(), o arg1 é a string ‘Raio do círculo:’, o arg2 é a variável raio e o
arg3 é a string ‘cm’. Desse modo, o interpretador do Python faz a conversão
automaticamente do tipo de dados necessário para imprimir as variáveis
numéricas como uma string, conforme aponta Downey (2016).
Comandos de entrada e saída (utilizando a linguagem Python)4
A linguagem Python tem sua origem no inglês; sendo assim, ela interpreta o ponto (.)
como o símbolo que indica um número decimal; na língua portuguesa, emprega-se a
vírgula nessa situação. Por isso, no exemplo da Figura 3a, o número pi (3,14) é escrito
como 3.14, e a área é impressa como 28.2735. Assim, o ponto representa o número
decimal.
A função print() possui códigos especiais, chamados sequências de
escape, que são combinações de caracteres iniciadas com o sinal de barra
invertida ( \ ) e algum outro caractere. Essa sequência representa caracteres
ou entradas que não podem ser digitadas diretamente no programa, como o
Enter (quebra de linha). A sequência de escape é decodificada no momento
da impressão e será interpretada como um caractere especial — por exemplo,
aspas simples ou duplas. Ela também pode ser usada para formatar a impressão,
originando uma quebra de linha ou tabulação, conforme leciona Perkovic
(2016). As principais combinações de caracteres são apresentadas no Quadro 1.
Fonte: Adaptado de Perkovic (2016).
Sequência Descrição
\n Quebra de linha (line feed ou LF)
\t Tabulação horizontal
\v Tabulação vertical (em impressoras)
\" Aspa simples
\' Aspa dupla
\\ Barra invertida
\0 Caractere nulo (usado como terminador de strings)
\a Beep de alerta
Quadro 1. Sequência de escape da função print
5Comandos de entrada e saída (utilizando a linguagem Python)
A Figura 4 mostra um exemplo de como usar a sequência de escape para
a quebra de linha (\n) e a tabulação (\t) com o comando print().
Figura 4. (a) Código utilizando a função print com quebra de linha (\n) e tabulação (\t);
(b) resultado da impressão no prompt da IDE.
No código da Figura 4a, é possível observar duas quebras de linha antes
de imprimir a primeira frase. Em seguida, observam-se uma quebra de linha
para imprimir a segunda parte e uma tabulação para dar um espaço entre as
duas últimas frases. A Figura 4b mostra a impressão da mensagem no prompt
da IDE de programação, que é o resultado da execução do código.
Esses caracteres de formatação são muito úteis para formatar uma impressão
na tela — por exemplo, para imprimir um texto em forma de tabela (Figura 5).
Figura 5. (a) Código para impressão de um texto formatado em uma tabela e (b) resultado
da impressão no prompt da IDE.
Entrada de dados utilizando a função input()
Na linguagem Python, a função input() permite ler dados de uma entrada
padrão — por exemplo, o teclado. Essa função suspende o fluxo de execução
do programa e aguarda que o usuário digite um valor no console, conforme
descreve Banin (2018). O valor lido por padrão é uma string e deverá ser
armazenado em uma variável.
Comandos de entrada e saída (utilizando a linguagem Python)6
Sintaxe
Segundo Barry (2018), a sintaxe da função input é:
input(prompt)
onde o parâmetro é:
� prompt (opcional): uma string que será impressa na tela em forma
de mensagem.
Utilizando a função input()
Uma forma de utilizar o comando input() é mostrada na Figura 6.
Figura 6. Comando input(): (a) esperando o usuário digitar o nome;
(b) resultado final depois da informação digitada.
O exemplo da Figura 6 mostra o comando input()solicitando que o
usuário digite seu nome (Figura 6a); o fluxo do programa fica travado até
que o usuário digite algo no teclado e pressione a tecla Enter, e o conteúdo
digitado no teclado é armazenado na variável de nome x. Depois disso, o
programa segue executando normalmente e imprime a mensagem para o
usuário concatenando as strings (Figura 6b).
7Comandos de entrada e saída (utilizando a linguagem Python)
A Figura 7 mostra como solicitar várias informações ao usuário e imprimir
os valores digitados.
Figura 7. (a) Código solicitando várias entradas de dados ao usuário; (b) mensagens
exibidas para a entrada de dados; (c) resultado da impressão no prompt da IDE.
A Figura 7a mostra o código que solicita ao usuário inserir, por meio do
teclado, dois dados (nome e sobrenome). As mensagens solicitando ao usuário
os dados são mostradas na Figura 7b, e o resultado da execução do código é
mostrado na Figura 7c.
Conversão de tipos de dados (casting)
O valor lido pela função input() na linguagem Python é sempre interpretado
como uma string (sequência de caracteres). Isso pode ser um problema, se
for necessário ler valores numéricos do tipo inteiro ou decimal com vírgula
(float). A solução para esse problema é fazer a conversão de tipos de dados,
denominada casting, conforme expõe Matthes (2016). A Figura 8 mostra como
realizar a conversão de valores digitados pelo teclado para inteiro e float.
Figura 8. Conversão de tipos nas funções input() e print().
Comandos de entrada e saída (utilizando a linguagem Python)8
Na linha 4 do código mostrado na Figura 8, o método int() faz a conversão
da string digitada no teclado para o tipo de dado inteiro, e o valor convertido
para inteiro é armazenado na variável age. Na linha 5 do código, o método
float() faz a conversão da string digitada no teclado para o tipo de dado
inteiro, e o valor convertido para inteiro é armazenado na variável height.
Nas linhas 8 e 9, é necessário fazer a conversão pelo método str() das
variáveis numéricas (int e float) para string, pois, nesse caso, o código está
concatenando (juntando) strings para serem impressas. Assim, o comando
print(arg1+arg2+arg3) é escrito com o sinal de + entre as strings. As
mensagens solicitando ao usuário os dados são mostradas na Figura 9a, e o
resultado da execução do código é mostrado na Figura 9b.
Figura 9. (a) Mensagens exibidas para a entrada de dados e (b)
resultado da impressão no prompt da IDE.
Aplicações práticas das funções print(),
input() e variáveis em problemas
computacionais
As funções de entrada e saída são utilizadas em programas que necessitam
de uma interação com o usuário. Essas aplicações geralmente processam in-
formações (dados) digitadas pelo usuário no teclado e retornam os resultados,
imprimindo-os por meio de mensagens na tela. Um exemplo simples desse
tipo de aplicação é criar um programa para converter a temperatura de graus
Celsius para graus Fahrenheit e Kelvin (Figura 10).
9Comandos de entrada e saída (utilizando a linguagem Python)
Figura 10. Conversão de temperaturas.
Nesse código, o usuário deve digitar a temperatura em graus Celsius que
deseja converter; em seguida, o programa processa o dado, fazendo o cas-
ting de string para um valor numérico float, e armazena o valor na variável
temp _ c. Então, os cálculos de conversão são realizados para a temperatura
em Fahrenheit, por meio da equação temp _ f = 1.8*temp _ c + 32,
e em Kelvin, por meio da equação temp _ k = temp _ c + 273,15. Por
fim, os resultados são impressos na tela. Observe a necessidade de fazer a
conversão de tipos de dados para obter os resultados esperados na impressão
das respostas.
Além das funções utilizadas para a conversão de dados, a linguagem de
programação Python possui outros métodos que podem ser alinhados com os
comandos entrada e saída, sendo, desse modo, muito úteis para a construção
dos programas, conforme aponta Slatkin (2016). Tais métodos são apresentados
nas seções a seguir.
Método format()
O método format(value, format) permite formatar valores para um
formato específico. Ele é muito útil para formatar strings, números, bases
numéricas, etc. Segundo Banin (2018), a sintaxe da função format é:
format(value, format)
Comandos de entrada e saída (utilizando a linguagem Python)10
onde os parâmetros são:
� value (necessário): um valor em qualquer formato.
� format (necessário): formato para o qual você deseja converter o
valor.
O format() é um método da classe string da linguagem Python que
possibilita editar strings de formas diversas. Desse modo, é possível concatenar
strings com o comando "Eu tenho {0} anos".format(idade).
Para entender mais sobre o método format(), acesse o link a seguir.
https://qrgo.page.link/dnSNG
A Figura 11 mostra como utilizar o método format() com a função
print() para formatar uma mensagem de texto que será impressa na tela.
Figura 11. (a) Código com o método format() para strings e (b) um resultado
da formatação.
11Comandos de entrada e saída (utilizando a linguagem Python)
No exemplo da Figura 11a, é possível observar que a variável mensagem,
que será impressa, é construída de acordo com os valores digitados pelo
usuário. O método format() é utilizado duas vezes no código: a primeira
vez é para formatar o número digitado para a base hexadecimal, e a segunda
vez é para formatar a mensagem a ser impressa, substituindo os valores em
decimal e hexadecimal nas posições determinadas pelos números entre chaves,
na ordem em que eles foram listados.
O exemplo da Figura 12 mostra como utilizar o método format() com a
função print() para formatar valores numéricos que serão impressos na tela.
Figura 12. (a) Método format() para valores numéricos e (b) um resultado da conversão.
Nesse exemplo da Figura 12, o método format() é utilizado para limitar
a quantidade de casas decimais que serão exibidas na impressão. No caso, a
formatação .2f indica que deverão ser impressas duas casas decimais após
o ponto decimal.
Método eval()
O método eval(expr, gloabls=None, local=None) permite que
strings sejam interpretadas como um trecho de código em Python, retornando
Comandos de entrada e saída (utilizando a linguagem Python)12
um objeto. No contexto das funções de input() e print(), a função eval()
permite que uma entrada seja interpretada como um comando em Python.
Segundo Ramalho (2015), a sintaxe da função eval é:
eval(expr, globals=None, locals=None)
onde os parâmetros são:
� expr (necessário): uma string (sequência de caracteres) que contenha
uma expressão válida em Python.
� globals (opcional): namespace global, utilizado para executar o
código. Precisa ser um dicionário, e o padrão é None.
� locals (opcional): namespace local utilizado na execução do código.
Pode ser qualquer mapeamento, e o padrão é None.
O uso desse comando no escopo da função input() ganhou importância
com a troca das funções entre o Python 2 e o Python 3, conforme mostra o Qua-
dro 2. A realização de interpretação da entrada como um trecho de código de
forma implícita pode levar a erros de implementação. Dessa forma, a utilização
da função eval() garante que a entrada será interpretada como um trecho
de código somente quando o desenvolvedor explicitamente programar isso.
Fonte: Adaptado de Ramalho (2015).
Python 2 Python 3
input(): a entrada é interpretada
como um comando
eval(input()): a entrada é
interpretada como um comando
raw _ input(): a entrada é
interpretada como string
input(): a entrada é
interpretada como string
Quadro 2. Diferença dos comandos de entrada de dados entre a linguagem Python ver-
são 2 e a versão 3
A utilização de expressões em Python como entrada permite uma certa
flexibilização dos problemas que podem ser resolvidos em um terminal de
comandos.
13Comandos de entrada e saída (utilizando a linguagem Python)
A Figura 13 mostra como é possível interpretar uma equação lida pela
função input() por meio do método eval().
Figura 13. Métodoeval() e função input().
Um resultado possível ao executar esse código é mostrado na Figura 14.
Figura 14. Resultado da execução do código utilizando
o eval().
Esse tipo de interação é interessante, pois o usuário pode digitar uma
expressão matemática e obter o resultado do cálculo impresso na tela.
Método strftime( )
O método strftime(code) retorna uma struct que representa uma data
(com dia, mês, ano, hora, minutos e segundos) em um formato específico.
Esse comando é muito útil quando vamos trabalhar com datas e é preciso
separar as informações de ano, mês, dia, etc. Segundo Banin (2018), a sintaxe
da função strftime é:
strftime(code)
Comandos de entrada e saída (utilizando a linguagem Python)14
onde os parâmetros são:
� code (necessário): código especial com a informação desejada. Por
exemplo: %Y ano com quatro dígitos, %y ano com dois dígitos, %m
mês, %d dia, entre outros.
O strftime() é um método da classe datetime da linguagem Python,
que trabalha e edita datas de diversas maneiras. A seguir, a Figura 15 mostra
como utilizar o método strftime() para separar o dia, o mês e o ano para
imprimir na tela utilizando a função print().
Figura 15. (a) Método strftime() e (b) um resultado da formatação.
Na Figura 15, o método strftime() entende que é para separar o ano,
o mês e o dia, por meio dos códigos %Y, %m e %d, respectivamente. Pode-se
utilizar outros códigos, como %M para minutos, %H para horas, etc.
15Comandos de entrada e saída (utilizando a linguagem Python)
BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo:
Érica, 2018.
BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018.
BORGES, L. E. Python para desenvolvedores. São Paulo: Novatec, 2014.
DOWNEY, A. B. Pense em Python: pense como um cientista da computação. São Paulo:
Novatec, 2016.
MATTHES, E. Curso intensivo de Python: uma introdução prática e baseada em projetos
à programação. São Paulo: Novatec, 2016.
PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento
de aplicações. Rio de Janeiro: LTC, 2016.
RAMALHO, L. Python fluente: programação clara, concisa e eficaz. São Paulo: Novatec,
2015.
SLATKIN, B. Python eficaz: 59 maneiras de programar melhor em Python. São Paulo:
Novatec, 2016.
Leituras recomendadas
RAMALHO, L. Aprenda a programar. 2013. Disponível em: https://wiki.python.org.br/
DocumentacaoPython?action=AttachFile&do=view&target=Aprenda_a_Programar-
-Luciano_Ramalho.pdf. Acesso em: 30 maio 2019.
ROBERGE, A. Simple input built-in in Python 3000. 2006. Disponível em: https://www.
python.org/dev/peps/pep-3111/. Acesso em: 30 maio 2019.
TALIN. Advanced string formatting. 2006. Disponível em: https://www.python.org/dev/
peps/pep-3101/. Acesso em: 30 maio 2019.
Comandos de entrada e saída (utilizando a linguagem Python)16