Baixe o app para aproveitar ainda mais
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 um 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() solicitandoque 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 real, e o valor convertido para real é 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étodo eval() 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
Compartilhar