Olá! Vamos aprender agora conceito bem interessante, que é o conceito de entrada de dados. Até o momento a gente aprendeu a fazer uns programinhas simples que geram uma determinada saída de dados, mas a gente não tem mecanismos pra definir os dados que entram no programa. Vamos ver isso aqui agora. Vamos supor, começar com problema do mundo real pra motivar a gente. Vamos supor que você foi viajar para os Estados Unidos, você tava andando na rua e você viu ali que a temperatura era, no dia seguinte, ia ser 85 graus. Então, você se pergunta: "Será que 85 graus é quente, é frio?". Mas aí você lembra que você aprendeu no ensino médio a fazer conversão entre temperaturas. Daí, você pensa: "Qual será mesmo a fórmula de conversão?". Daí você se esforça e você lembra que a fórmula é Celsius sobre cinco é igual a Fahrenheit menos 32 dividido por nove, você se lembra disso. E daí você se lembra das aulas de Python que você fez e fala "Já sei! Eu vou fazer programa Python que vai converter a temperatura de Fahrenheit pra Celsius e já vou saber como é que faz". Então daí você vai lá, você abre o seu editor de textos e começa a fazer novo programa pra implementar isso aqui. Então, vejamos o que a gente pode fazer. A temperatura, vamos supor que é 78 Fahrenheit, eu quero fazer uma comparação com esse número 78. Então, a primeira coisa, eu vou guardar numa variável. Lembra que as variáveis tem que ter nome que indica o significado dela. Então, bom nome para essa variável seria temperaturaFahrenheit. Então, eu vou dizer: temperaturaFahrenheit vai guardar o valor 78 porque é o valor da temperatura. E daí eu vou querer calcular uma temperatura Celsius. Agora, qual será o valor dessa temperatura Celsius? Vamos olhar aqui pra nossa fórmula. Pra isolar o Celsius do lado esquerdo, o que eu preciso fazer é pegar esse cinco e passar multiplicando ali pra cima. Então, a minha fórmula ficaria: temperaturaFahrenheit menos 32, multiplicada por cinco. Mas eu quero primeiro fazer a subtração, então por isso eu preciso desses parênteses aqui, e depois multiplicar por cinco e finalmente dividir por nove. Então, eu acho que essa minha fórmula aqui já tá fazendo aquilo que eu preciso e agora eu posso imprimir o resultado: "A temperatura Celsius é, daí eu vou imprimir aqui a temperaturaCelsius. Será que tá certo esse nosso programa? Vamos ver. Eu vou gravar num arquivo chamado "ConversorDeTemperatura.py". Eu vou guardar aqui nesse meu diretório, que tem os nossos programas, eu vou salvar e daí eu venho aqui e falo: "python3 ConversorDeTemperatura.py". E mando executar. Opa! Deu erro. Eu não preciso me desesperar porque deu erro, porque, geral, quando dá uma mensagem de erro, a mensagem de erro tá dando uma dica de onde tá o erro. Então, por exemplo, aqui ele falou: nesse arquivo ConversorDeTemperatura, na linha três, essa aqui é a linha três, tem determinado erro. Qual que será o erro aqui? Vamos ver: "NameError". "O nome 'F' não está definido". Eu falei: "Ué, o F de Fahrenheit não está definido?". Vamos lá dar uma olhada no programa. E, realmente, eu me confundi, porque F era o valor ali na minha fórmula, mas não no programa. No programa eu tinha chamado de temperaturaFahrenheit. Então, simplesmente vou substituir esse F aqui pelo temperaturaFahrenheit. Então, devo ter, com isso, corrigido o erro. Então, vocês veem que, quando dá erro não é motivo de desespero; a gente pode ler a mensagem de erro e entender, e daí corrigir e executar novamente. Executando novamente, deu a temperatura Celsius: é 25.555. É uma temperatura muito agradável; dá pra eu sair no dia seguinte tranquilo. Mas vamos supor que dois dias depois ele mostra que a temperatura é 20 graus. Daí, eu falo: "20 graus? Será que 20 graus é agradável ou não?". E daí eu quero usar de novo o meu programa. Daí, que que eu tenho que fazer? Preciso voltar ao editor de texto, vir aqui modificar o meu programa, salvar, daí voltar para o meu terminal, executar novamente o programa e daí vem: a temperatura Celsius é -seis. Nossa, é muito frio! Então, preciso me agasalhar muito bem. Mas note que isso aqui é meio desagradável. Do jeito que a gente fez, toda vez que eu quero saber uma nova conversão, eu tenho que alterar o meu programa, ir pra outro lugar, pro editor, modificar o programa e voltar aqui. Não tá programa muito flexível, né? Seria mais interessante que o programa perguntasse pra mim qual é a temperatura que eu quero converter e cada vez convertesse uma temperatura diferente. Como a gente pode fazer isso? Então, o que a gente quer fazer é programa que, ao invés de ter esse número fixo, que seja uma entrada do usuário, esse número que eu tô passando aqui. Como eu posso fazer isso? Usando uma função que existe no Python, que é a função "input". Então, para isso, eu coloco aqui "input" e dou uma mensagem pro usuário: "Digite uma temperatura Fahrenheit". [SOM] Daí, vez de ter aquele número fixo, o usuário vai ter a oportunidade de digitar uma temperatura Fahrenheit. Vamos ver se o programa tá funcionando agora. Eu salvei e vou executar aqui. "Digite uma temperatura Fahrenheit". Por exemplo, eu quero a temperatura 20. Opa! De novo deu uma mensagem de erro. Mas calma, vamos ler qual a mensagem de erro. Ele falou: "nessa mesma linha aqui, temperaturaFahrenheit...". Deu erro de tipo. Erro de tipo? Então tem algum tipo errado, será? Vamos ver, ele tá falando aqui na subtração, temperaturaFahrenheit- 32, ele tá falando que tem erro de operador não suportado nessa subtração. Ele tá falando que eu tô tentando fazer uma subtração de string, "str", e de inteiro. O 32 é inteiro. Mas será que essa temperaturaFahrenheit é string? Por que que é string? Vamos ver. Porque na verdade essa função "input", ela vai ler alguma coisa que o usuário digita do teclado, e daí essa função pode ser qualquer número, carácter. Então a função "input" sempre devolve string. E, se eu quero usar depois esse valor que ela devolve numa conta numérica, daí eu preciso converter esse string, ou para inteiro, ou para float. Aqui, no caso, eu quero para float. Como que eu posso fazer isso? Eu poderia ter uma outra variável temporária, que vai guardar esse valor. Então, essa variável temporária, eu quero que converta para float a minha temperatura Fahrenheit. E, depois aqui, vez de usar a temperaturaFahrenheit, eu posso usar essa minha variável temporária. Então, essa é uma forma de fazer isso. Uma outra forma alternativa seria, eu vou desfazer o que eu fiz. Uma forma alternativa seria, o problema tá aqui, a temperaturaFahrenheit é string, eu posso aqui mesmo já converter. Float, quero você que você converta esse string para float. E daí eu salvo isso, vamos ver se dá certo agora. Eu executo aqui novamente e eu falo: "Agora, eu quero que você converta a temperatura 34". Deu certo: a temperatura 34 Celsius é uma temperatura bem fria, 1.111. Eu quero corrigir, não gostei que esse 34 ficou grudado no Fahrenheit. Como a gente pode corrigir isso aqui? Eu vou simplesmente colocar dois pontos e espaço pra ficar mais elegante. Daí, vou tentar agora. "Digite uma temperatura Fahrenheit: ", ele colocou dois pontos, espaço. Eu quero, por exemplo, escolher uma temperatura bem grande agora: 200 graus Fahrenheit. Temperatura Celsius é 93, a água tá quase entrando ebulição. Mas note que agora a gente fez programa que virou programa genérico. Porque toda vez que eu executo, ele pergunta dado de entrada, número, pro usuário, o usuário pode digitar qualquer número aqui. Então, ele pode digitar 65 e daí ele converte, dá 18 Celsius. Então, fizemos programa bem mais genérico, que recebe valor de entrada, que faz cálculo e gera uma saída. Vamos exercitar pouco mais isso? Eu vou criar aqui outro programa. Eu quero fazer agora programa, por exemplo, que vai falar "oi" pra mãe e "oi" pro pai. Então, por exemplo, o nome da mãe recebe input: "Qual o nome da sua mãe?". E o nome do pai input: "Qual o nome do seu pai?". E daí, esse é programa muito educado. Ele pode falar o seguinte: "Bom dia Sra". Daí eu vou colocar aqui o nome da mãe. [SEM_ÁUDIO] O nome da mãe. Daí eu vou colocar ponto de exclamação. Pode ser bom dia... três pontos de exclamação para ser bom dia bem enfático. E depois eu falo também: "E bom dia Sr." e aqui o nome do pai. Nome do pai. Então vamos gravar isso aqui num programa. Vou chamar o programa de "Educado". Educado.py. Dessa vez eu não esqueci a extensão, Educado.py. E daí a gente pode aqui executar o programa. Vamos lá. Python3 Educado. Acho que eu gravei. A gente tem que tomar cuidado com isso, né? No lugar onde você grava eu acabei gravando outro diretório. Eu quero gravar isso aqui, vou dar save as. Save as, eu quero gravar no diretório daqui do nosso curso, então Educado "iii" salvar no diretório do curso. Aqui, python3. Agora sim apareceu aqui. Educado.py. Daí ele perguntou: "Qual o nome da sua mãe?" Vamos supor que o nome da minha mãe é Josefina. Qual o nome do seu pai? O nome do meu pai é Josebétio. Daí ele falou: "Bom dia, Sra. Josefina" e "bom dia Sr. Josebétio". Se você é muito perfeccionista, você vai gostar que... não vai gostar que faltou o ponto final aqui. Vamos colocar ponto final pra ficar bem bonitinho. Daí a gente executa de novo nosso programa. Aproveitar e pode dar outros nomes: Qual é o nome da sua mãe? O nome da minha mãe vai ser Madona. Qual o nome do seu pai? Vai ser Paul. Bom dia, Sra. Madona e bom dia, Sr. Paul. Então hoje a gente fez programa aqui. Esse programa tem duas entradas, que são dois strings, e gera uma saída que é string também. Só a título de exemplo, vamos abrir aqui outro programa pouquinho mais sofisticado, pouquinho mais complicado, pra a gente analisar ele. Esse aqui é programa que ele faz cálculo, dada uma quantidade de segundos, então eu vou falar uma quantidade de segundos, ele diz, ele quebra esses segundos horas, minutos e segundos. Então vamos ver, primeiro vamos ver o programa executando, depois a gente vê como ele faz isso. Esse programa se chama ContaSegundos.py. Então se eu executar ele aqui, python3 ContaSegundos.py, ele pergunta: "Por favor, entre com o número de segundos que deseja converter." Então eu quero converter, por exemplo, 17345. Ele converte, olha: 17345 segundos são quatro horas, 49 minutos e cinco segundos. Vamos dar uma olhada nesse código? Então primeiro tem segundos, então tem esses segundos, str é uma variável que vai guardar os segundos num formato de string e é o que o input devolve aqui quando a gente pede para digitar isso. Depois eu faço uma conversão. Para deixar de ser string eu converto pra inteiro e guardo uma variável chamada total segundos. Daí eu faço alguns cálculos. Eu falo: as horas, uma hora tem 60 vezes 60, que é 3.600 segundos, então quantas horas têm naquela quantidade de segundos, eu preciso pra fazer isso? Fazer uma divisão inteira. Eu pego o total segundos e divido por 3.600, mas pego só a parte inteira da divisão e guardo isso aqui nas horas. Pra saber os segundos restantes, depois que eu peguei o número de horas, eu pego o resto da divisão. Então aqui os segundos restantes está aguardando o total dos segundos, o resto da divisão dele por 3.600. É o que sobrou além dessas horas. E daí eu posso calcular os minutos. Os minutos, de novo eu faço a divisão inteira do que sobrou dos segundos por 60, né, porque cada minuto tem 60 segundos. Pego a divisão inteira. E os segundos restantes lá no final, eu pego essa variável aqui, segundos restantes, e pego o resto da divisão por 60 e daí eu já tenho nessas três variáveis: variável hora vai guardar o número de horas, a variável minutos vai guardar o número de minutos e essa segundos restantes final vai ter o número de segundos. Então é assim que funciona o nosso programa. E note que posso executar ele várias vezes, cada vez dando uma entrada diferente e, por conseguinte, a saída vai ser diferente. Então se eu perguntar: 20.000 segundos, quanto que é isso? 20.000 segundos são cinco horas, 33 minutos e 20 segundos. Vamos colocar número bem grande aqui, que seja talvez maior do que 24 horas. 120.000 segundos. Não, espera, aqui agora 120.000 segundos. Isso dá 33 horas, 20 minutos e zero segundo. Se seu quisesse, aí fica de lição de casa para vocês, estender esse programa para vez de ele falar 33 horas, pra quebrar número de dias, então ele falar: dia e depois o número de horas, número de minutos e número de segundos. Então eu gostaria que vocês brincassem pouco com as coisas que a gente viu nessa aula e, particular, com a entrada de dados e com a saída de dados e pensem programinhas interessantes que vocês poderiam construir dessa forma. [MÚSICA] [MÚSICA] [MÚSICA]