Expressões e saída de dados

Ver Todos os Exercícios

Teoria

Bora falar de saída de dados??

Fala aí, meu chegado! Uma das coisas mais importantes é saber fazer o computador se comunicar com a gente. E como computadores são, fundamentalmente, calculadoras, então bora aprender a fazer contas também!

Vamo começar criando um arquivo no seu editor de código, tá?! Como cada faculdade usa um editor de texto diferente, eu vou usar um aqui do próprio Responde Aí! Todos os códigos funcionam igual, mesmo com diferentes editores, beleza?! Mas o ideal é você usar o mesmo que sua faculdade usa pra já ir se acostumando.

Faz o seguinte, depois de criar um arquivo, escreva a seguinte continha e execute o seu programa (cada editor de texto tem uma tecla diferente pra executar, mas geralmente é F5):

Depois de executar, o que aconteceu? Nada, né?! Exato! Você mandou fazer a conta, mas não mandou ele fazer absolutamente nada depois disso.

Seu computador fez a conta, mas não te mostrou o resultado simplesmente porque você não o mandou mostrar, entende? Pra gente mandar o computador exibir na tela alguma coisa, usamos o comando print(). Esse comando diz pro computador mostrar o resultado do que você colocar dentro dos parênteses do comando.

Depois de executar, você vai ver que agora ele mostrou alguma coisa, o número 10.

Viu como os computadores são obedientes?

Operações matemáticas

Mas você deve ter reparado que eu disse “resultado”. Isso significa que podemos colocar qualquer coisa dentro dos parênteses que, o computador vai tentar resolver e, se conseguir, vai mostrar o resultado pra gente. Vamos testar com outras contas? Se liga em como ficam os operadores matemáticos em Python na tabelinha:

Você pode tentar fazer outras contas pra se familiarizar com os operadores. Como, por exemplo, vamos tentar converter graus Celsius pra Fahrenheit. Você lembra da fórmula? Pois eu não, acabei de pesquisar no Google:

Agora sim, mas como vamos transformar essa fórmula em algo que a gente possa usar no nosso código?!

Bem, o primeiro passo é sempre transformar o problema em um passo a passo bem definido pra gente conseguir passar essas instruções pro computador (os computadores são burrinhos, lembra?!). Nesse momento tá fazendo 23ºC aqui no Rio de Janeiro, e eu quero saber essa temperatura em graus Fº. Então, vamos mandar o nosso computador fazer a seguinte sequência de passos: “exiba o resultado de (9 vezes 23 dividido por 5 mais 32)”. Em Python, ficaria assim:

Que, quando executado, resulta em 73.4º F.

Uma coisa interessante a se notar aqui é que a precedência dos operadores em Python é exatamente a mesma da matemática, ou seja, primeiro ele vai fazer as multiplicações e divisões, depois as somas e subtrações. Também é possível, assim como na matemática, alterar a precedência padrão utilizando parênteses. Se liga na diferença entre o comando anterior e esse:

Se você executar o programa assim, resultado parece bem loko, né? Isso porque o computador, dessa vez, calculou a soma antes de calcular a divisão. Agora, vamos tentar dificultar a parada. Se liga na seguinte função matemática:

Pra gente saber quanto é utilizando seria assim: “exiba o resultado de (2 vezes 3 elevado a 2 menos 4 vezes 3 mais 2)”. Em python, ficaria assim:

Que resulta em 8. E se agora a gente quisesse saber o valor de, teríamos que fazer a mesma coisa. A nova ordem poderia ser “exiba o resultado de (2 vezes 4 elevado a 2 menos 4 vezes 4 mais 2)”. Em Python:

Beleza, o resultado vai ser 18, e tudo certo.

Por enquanto é isso, galera! Te vejo no próximo tópico!

Operações matemáticas

Exercícios Resolvidos

Exercício Resolvido #1

Faça um programa que calcule e exiba a área de um quadrado de lado 10.7m.

Passo 1

Cara, a primeira coisa que a gente tem que fazer pra resolver qualquer problema de programação é pensar em qual o passo a passo que nós faríamos pra resolver o problema.

E pra passar essas instruções pro computador, nós usamos python.

As instruções pra esse exercício são duas:

  1. Calcular a área do retângulo
  2. Exibir o resultado da área calculada.

Então, vamos começar!

Passo 2

Focando no primeiro problema, você provavelmente se lembra que a área de um quadrado é dada pelo comprimento do lado ao quadrado. O exercício nos dá o comprimento do lado, 10.7 metros. Porém, a unidade não importa na hora dos cálculos, só no resultado final. Com isso, podemos calcular a área com o seguinte comando:

Onde area_do_quadrado é uma variável que nós estamos criando e colocando dentro dela o resultado da conta 10.7 ao quadrado (o operador ** significa exponenciação, lembra?).

Passo 3

Agora, pensando na segunda instrução, precisamos dizer pro computador exibir o resultado da nossa conta do passo 1. O comando em python que exibe na tela é o print(), colocando dentro dos parênteses o valor que queremos exibir. Nesse caso, a área que está guardada dentro da variável area_do_quadrado. Então o comando fica:

Além disso, podemos complementar nossa resposta exibindo também a unidade de área. Como a unidade do lado do quadrado é em metros, a unidade de área do quadrado é m² (metro quadrado). Então, em vez do comando acima, podemos usar

Obs: o comando print() aceita que você passe vários valores separados por vírgulas, e então eles serão exibidos lado a lado.

Resposta

Exercício Resolvido #2

Faça um programa que calcule e exiba a raiz cúbica de 704969.

Passo 1

Bom, como em todo exercício de programação, a gente começa estruturando o passo a passo necessário pra resolver o problema. Nesse caso, dois passos são necessários:

  1. Calcular a raíz cúbica de 704969.
  2. Exibir o resultado do cálculo do passo 1.

A primeira vista parece um pouco difícil, porque Python não tem nenhum operador pra raiz cúbica… Então, como a gente pode calcular esse troço?!

Você deve lembrar, lá da matemática, que √ 2 , por exemplo, também pode ser representado por 2 1 2 . Ou seja, se você elevar o número 704969 à 1/3, o resultado é o mesmo da raiz cúbica.

Agora o problema ficou mais fácil de resolver, né? Porque operador de exponenciação a gente tem no python! Vamos ao código:

Repara no que a gente tá fazendo, a gente criou uma variável chamada “raiz” e colocou dentro dela o resultado da expressão 704969**(1/3). Se liga nos parênteses. O uso deles nesse caso é necessário, porque o operador de exponenciação (**) tem uma precedência maior que o de divisão (/). Ou seja, se a gente não colocasse parênteses, o computador calcularia 704969 elevado a 1 e depois dividiria o resultado por 3, que não é a resposta que a gente quer.

Precisamos, primeiro, fazer a divisão 1/3 pra depois fazer a exponenciação. Com isso, o uso do parênteses, sacou? Se liga no segundo passooo.

Passo 2

O segundo passo é usar o comando print() pra exibir na tela o resultado da conta feita no passo 1. Vamos passar como parâmetro a variável “raiz”. Olha:

Com isso, é possível a gente calcular a raiz cúbica mesmo sem ter um operador específico pra isso, viu?? Valeuuu

Resposta

Exercício Resolvido #3

Ao executar o seguinte programa em Python, qual será o resultado?

Passo 1

Fala aí, meu chegado! Bom, olhando pra esse exercício já dá pra saber que se a gente tentar executar vai dar ruim. Mas vamo lá, vamos copiar tudo no nosso editor de código pra gente ver no que vai dar. Eu já copiei, olha:

(Ok, eu assumo, é a mesma imagem)

Ao tentar executar esse programa, o resultado parece com isso:

Caramba!! Deu erro! Hahah não se preocupe, durante nossa jornada em programação, a gente vai ver MUITOS erros acontecerem. Mas não se preocupe com isso, em Python os erros são nossos amigos. Eles dizem o que a gente fez de errado, e onde.

Nesse caso o erro tá falando que na linha 1 a gente cometeu o erro ZeroDivisionError. Ou seja, a gente tentou fazer uma divisão por zero. Mas não dá pra dividir nada por zero!

É, meu amigo... Se você reparar bem, ali no código tem um (5-7+2), e o resultado dessa expressão matemática é zero. Se a gente tentar dividir QUALQUER coisa por 0, vai dar esse erro, pois a divisão por zero é um problema que a humanidade não sabe resolver. (talvez os dogs já saibam hahaha)

Então, esse exercício tá querendo te mostrar como o Python reage quando a gente faz alguma besteira, beleza. Não precisa ficar desesperado quando vir as letrinhas vermelhas, cara! Elas sempre dão uma dica de como resolver o problema. Então, leia pacientemente as mensagens de erro, beleza???

Até a próxima, manooo!

Resposta

Vai dar o erro ZeroDivisionError, pois não é possível dividir por zero.

Exercício Resolvido #4

Qual dos seguintes comandos em Python exibe o número 4 no terminal?

  1. Print(4)
  2. print 2+2
  3. print(7-3)
  4. Print[“4”]

Passo 1

Fala aí, meu padrinho!!! Vamo analisar as nossas alternativas, mas sem trapacear! Tenta resolver de cabeça, lembrando dos conceitos da aula, antes de copiar e colar no editor, beleza?! Malandrinho.

É importante que as regrinhas de como escrever os códigos fiquei bem guardadas na sua cabecinha, porque na hora da prova nem sempre dá pra testar, jae? Beleza! Vamos começar!

Na alternativa A tá tudo parecendo uma maravilha. Exceto pelo fato de que Print tá escrito com o P maiúsculo, cara!!! Tu não pode esquecer disso. Python é uma linguagem que tem uma característica chamada “case sensitive”. Você lembra o que é?! Bom, de qualquer forma eu vou te lembrar.

Isso significa que ela trata as letras maiúsculas e minúsculas como coisas diferentes, beleza?? Por isso, o comando print só funciona se estiver escrito tudo minúsculo. Quer testar?? Ok, vamos testar!

Digitei no meu editor de código, e agora vou executar.

Olha, que resultado doido! Mas calma, vamos analisar nosso erro pra ver o que deu. Ler o erro com paz no coração é essencial pra gente aprender a não errar mais, beleza?!

Essas letrinhas vermelhas estão dizendo pra gente onde a gente fez besteira, e o problema. Tá dizendo que ‘Print’ não está definido. Isso significa que nosso computador não tem a menor ideia do que ‘Print’ significa. Viu? Ele sabe o que é print, mas Print não. Cuidado com isso, cara!

Vamos pra segunda alternativa!

Passo 2

Na segunda alternativa o print tá escrito certinho. Ufa! Então essa seria uma ótima alternativa SE TIVESSE OS PARÊNTESES ALI!!

Foi mal, me exaltei. Mas essa era uma pegadinha. Nas versões mais antigas de Python, os parênteses não eram necessários. Porém, nas versões atuais, eles são obrigatórios em todas as funções. Vamos ver o que acontece se a gente tentar executar este comando no nosso editor de código?

Vamos executar essa parada pra ver o que acontece...

Mano, olha a malcriação que o Python faz pra gente!!

Isso acontece porque antes esse código funcionava, mas agora não funciona. Mas repara que ele até ensina a gente a corrigir. Legal, né??

A dica que essa alternativa nos dá é que, se por acaso tu for estudar pra tua prova utilizando outros meios, como youtube, apostilas que tu baixa na internet, etc, verifica antes se a versão é compatível com a versão que você usa na faculdade, beleza?? (Ou estuda pelo Responde Aí que eu cuido disso pra você, porque torço muito pelo seu sucesso

Partiu pra letra C!

Passo 3

Aqui na letra C o print tá escrito certinho, tudo minúsculo. Além disso, têm os parênteses ali, bonitinho. E o resultado de 7-3 realmente é 4. É! Parece estar tudo certinho... Vamos testar?

Copiei e colei a questão no meu editor de texto pra gente ver no que vai dar. Vamos executar!

Olha lá, olha só, maravilha!! Conseguimos!

Deu certo! Realmente, essa era a alternativa certa! Ufa, ainda bem que a gente acertou! Rsrs

Vamos dar uma olhadinha na próxima pra ver o que tem de errado??

Partiu letra D.

Passo 4

Hmmm. A gente já sabe que a alternativa certa é a C. Então já temos spoiler de que essa tá errada também!

Começando pelo Print, com P maiúsculo! Viu!! Sabia que tava errado hahaha já começou mal.

Beleza, essa alternativa com certeza não funcionaria. Mas vamos continuar analisando.

Reparou que tem colchetes [] em vez de parênteses ()? É, isso pode confundir um pouco, porque realmente a gente pode usar [] em Python, porém, não é a mesma coisa! Têm funções diferentes, beleza? Continua comigo aqui no Responde Aí que você vai aprender a usar os colchetes []. Até lá, vamos usar só parênteses, beleza??

Ok. A terceira coisa que a gente tem que notar é o uso das aspas. Cara, nesse caso, tá certo também. Se liga, quando a gente digita só números, a gente tá falando de números (dãaa). Mas, em Python, tudo que a gente põe entre parênteses é tratado como texto. É, sim, possível a gente criar um texto que tem o número 4. Mas a gente vai ver esse tema mais pra frente, ok?!

Ok, nosso exercício já acabou, já sabemos a resposta. Valeuuu!

Resposta

Alternativa C.

Exercício Resolvido #5

Determine, sem executar, qual o resultado do código abaixo:

Passo 1

Fala aí, meu compatriota!!! Esse exercício é malandrinho, e tem algumas coisas que a gente precisa pensar sobre o funcionamento de Python pra resolver.

Mas, cara, antes de tudo, talvez você não saiba o conceito de comentários em Python. Por isso, é a primeira coisa que eu vou te contar.

Cara, quando a gente escreve o caractere “#” (hashtag), tudo que vier depois vai ser desconsiderado pelo Python, isso significa que a gente pode fazer anotações no código! Olha um exemplo da utilidade dos comentários:

Quando você executar esse programa, seu computador vai cagar e andar pras linhas que começam com #, assim como no enunciado. A partir do #, tudo fica vermelhinho, tá vendo? Significa que o Python NÃO VAI LER. Comentários só são úteis pra gente mesmo.

Beleza! Agora vamo continuar o exercício falando da matemática na primeira linha do código do enunciado.

Cara, esse é tranquilo. A precedência aqui é igual ao da matemática que a gente costuma usar, então a gente primeiro faz o 3*2, que vai dar 6. Depois a gente soma mais 2, que vai dar 8.

Beleza! Essa foi mais tranquila. Vamos pra segunda!

Passo 2

Se liga nessa aqui! É a mesma equação de antes, mas com parênteses no 2+2.

É bom pra lembrar que, assim como na matemática, os parênteses têm a mais alta precedência dentre os operadores matemáticos. Isso significa que os parênteses sempre vão ser resolvidos antes dos outros operadores matemáticos, e são usados pra forçar precedência nas expressões.

Nesse caso, será resolvido primeiro o (2+2), que vai virar 4.

Logo depois, a conta a ser resolvida vai ser 3*4, que vai dar 12. Beleza?? Vamo ver a terceira linha agora.

Passo 3

Essa é mais complicada, porque o operador de exponenciação (**) é meio doido! O operador de segunda maior precedência é o **, isso significa que quando não houver parênteses (), as potenciações serão as próximas a serem resolvidas. Porém, diferente de todos os outros operadores, a associatividade do ** é feita da direita pra esquerda. Hmmm, mas o que isso significa?!

Calma! Vem comigo que eu te explico. Olha essa expressão:

Cara, repara que quando a gente tem vários operadores de mesma precedência, a gente resolve da esquerda pra direita. A resposta dessa conta é 9, porque primeiro a gente resolveria o 7-1.

Se a gente tivesse feito o 1 + 3 primeiro, o resultado seria diferente.

Tô te falando isso pra te dizer que, quando a gente tem vários operadores de mesma precedência juntos, a gente geralmente vai resolvendo as contas da esquerda pra direita (left-associative), a menos que tenha um parênteses, beleza??

Porém, o operador ** tem a peculiaridade de ter a associatividade da direita pra esquerda (right-associative). Então, quando a gente tem mais de um ** ligado um no outro, igual a gente tá tendo em

primeiro vai ser resolvido o mais a direita. Ou seja, o resultado dessa conta vai ser:

Agora que a gente já resolveu os operadores de maior precedência, não podemos esquecer o humilde 1 que tinha ali na frente. Então, o resultado vai ser:

Ufa! Acabouuuu! Te vejo no próximo.

Resposta

Exercício Resolvido #6

Ao executar o código abaixo, qual vai ser a saída? (Não trapaceia, vacilão)

  1. 15
  2. 20.0
  3. 15.0

Passo 1

Fala aí, meu manooo! De boa, cara? Esse exercício é mais pra gente manjar do uso de números reais. Se liga, em Python os números inteiros são denotados de forma diferente dos números reais. Você lembra a diferença?!

Os números reais tem um ponto. Por exemplo, os números 3.0, 3.5, 3.14, etc. Repara que mesmo os números inteiros podem ser escritos como reais. O número 4, por exemplo, também pode ser escrito como 4.0. Significa a mesma coisa, mas a notação é diferente.

Esse exercício tem o intuito de mostrar pra gente que quando a gente usa o operador de divisão “/”, independente dos valores que forem utilizados, o resultado vai ser um número real.

Por isso, a primeira alternativa já pode ser descartada, pois o resultado com certeza vai ser um número real, e o número 15 é inteiro.

Passo 2

Agora vamo analisar a segunda alternativa. Cara, esse aqui queria confundir a gente na precedência dos operadores. Se não tivesse os parênteses, o resultado seria 20.0 mesmo, porém, aqueles parênteses ali forçam uma precedência na expressão (10+20). Com isso, o resultado dessa conta nem dá 20, olha:

Caramba, agora já temos até spoiler de qual deveria ser o resultado. (repara que o 15 tem um “.0” no final, isso significa que tá sendo tratado como um número real, mesmo sendo um número inteiro, beleza??).

Vamos pra ultima agora!

Passo 3

Ok, eu assumo, a gente já sabe que essa ta certa porque é a última opção hahaha. A notação de números reais se chama float na computação, e eu vou te explicar tudinho sobre isso depois, eu juro.

Mas agora, é importante você saber que SEMPRE que Python considerar um número como real a notação vai ter um “.” em algum lugar, beleza??

Resposta

Alternativa C.

Exercício Resolvido #7

Um círculo de raio 2 é colocado dentro de um retângulo de lados 5 e 7. Faça um programa que informe o tamanho da área do retângulo que não está sendo ocupada pelo círculo.

Passo 1

E ai, cara! Nesse exercício aqui a gente precisa lembrar das fórmulas das áreas das figuras planas.

Tá escrito que a gente tem um retângulo de lados 5 e 7, com um círculo de raio 2 dentro. Então, o que a gente tem é mais ou menos isso aqui:

E o exercício pede a área do retângulo que não tá sendo ocupada pelo círculo (área azul, na ilustração acima).

Pra calcular a área em azul, a gente pode calcular a área total do retângulo e depois subtrair a área do círculo! Pra isso, a gente precisa de alguns passos:

  1. Calcular a área do retângulo
  2. Calcular a área do círculo
  3. Calcular a diferença e exibir

Aqui no primeiro passo a gente precisa da área do retângulo, que é dada por:

Nesse caso,

Beleza! Agora precisamos calcular a área do círculo no passo 2.

Passo 2

Nessa parte aqui a gente precisa puxar lá do fundo da gaveta a fórmula da área de um círculo:

Como a gente também sabe o valor de R, então já podemos calcular também!

Não esquecendo das regras de precedência: a potenciação ali vai ser calculada antes da multiplicação, beleza? É isso que a gente quer mesmo!

Só falta a gente calcular a diferença entre essas áreas agora, no passo 3!

Passo 3

Agora, pra chegar na área do retângulo não sobreposta pelo círculo, a gente vai a área do círculo do retângulo:

Beleza! Agora a nossa variável area_restante tem dentro dela o valor da área em azul da ilustração. Pra concluir o exercício, a gente precisa exibir ela pro usuário. Vamos fazer isso usando o comando print().

Beleza! Agora que já fizemos tudo, a gente precisa testar, né? É sempre bom fazer aquele teste maroto pra garantir que a gente fez tudo certo. Vamos executar esse programa pra ver no que dá!

Opa! Executou sem erros!

Valeu! Até o próximo exercício!

Resposta

Exercício Resolvido #8

Utilizando Python, descubra se o número 5776 é divisível por 3. Justifique.

Passo 1

Fala aí, cara! Esse exercício é mais pra gente buscar utilizar o operador de resto da divisão (%). Isso porque pra gente saber se um número é divisível por 3, basta ver se o resto da divisão é zero, certo?

Ok, eu sei que você concordou! Pra isso, vamos fazer a conta e depois exibir o resultado. A partir do resultado, a gente saber dizer se é divisível ou não. Então vamos lá, mãos à obra!

O resultado do código acima é:

Um! Isso significa que 5776 não é divisível por 3, beleza?

Resposta

Não é divisível, pois o resto da divisão de 5776 por 3 é diferente de zero.

Exercício Resolvido #9

“A operação aritmética soma é a única com o mesmo nível de precedência da multiplicação.”

Indique se a afirmação é verdadeira ou falsa. Justifique.

Passo 1

Fala aí, cara! Esse aqui quer que a gente pense um pouco sobre as precedências dos operadores matemáticos em python.

Na verdade, as precedências dos operadores em python é exatamente a mesma que na matemática que a gente tá acostumado a ver.

Com isso em mente, temos que a afirmação é falsa em dois pontos.

  1. A soma tem precedência menor que a multiplicação. Isso significa que a multiplicação é realizada antes da soma.
  2. A multiplicação tem mesma precedência das operações de divisão, resto e divisão inteira.

Com isso, concluímos que a resposta é que a afirmação é falsa. hehehe

Resposta

Falsa, pois a operação de multiplicação é realizada antes da operação de adição.