Enviar um café pro programador

Mostrando postagens com marcador Curso completo de Python online grátis. Mostrar todas as postagens
Mostrando postagens com marcador Curso completo de Python online grátis. Mostrar todas as postagens

Exercícios de Funções e Módulos em Python

Agora que já concluímos nossa seção de Função e Módulo, chegou a hora de por a mão na massa e fazer alguns exercícios, criar alguns scripts para fixarmos bem os conhecimentos desta seção.


Exercícios de Função e Módulo em Python

  1. Escreva um script que pergunta ao usuário se ele deseja converter uma temperatura de grau Celsius para Farenheit ou vice-versa. Para cada opção, crie uma função. Crie uma terceira, que é um menu para o usuário escolher a opção desejada, onde esse menu chama a função de conversão correta.
    Conversão entre Celsius e Farenheit

  2. Faça um programa, com uma função que necessite de três argumentos, e que forneça a soma desses três argumentos através de uma função. Seu script também deve fornecer a média dos três números, através de uma segunda função que chama a primeira.
    Função invocando função

  3. Faça um programa que recebe três números do usuário, e identifica o maior através de uma função e o menor número através de outra função.
    Achar maior e menor número com funções

  4. A probabilidade de dar um valor em um dado é 1/6 (uma em 6). Faça um script em Python que simule 1 milhão de lançamentos de dados e mostre a frequência que deu para cada número.
    Jogando dados com o Python

  5. A série de Fibonacci é uma sequência de números, cujos dois primeiros são 0 e 1. O termo seguinte da sequência é obtido somando os dois anteriores. Faça uma script em Python que solicite um inteiro positivo ao usuário, n. Então uma função exibe todos os termos da sequência até o n-ésimo termo. Use recursividade.
    Gerar a sequência de Fibonacci

  6. Crie uma função que recebe um inteiro positivo e teste para saber se ele é primo ou não. Faça um script que recebe um inteiro n e mostra todos os primos, de 1 até n.
    Gerando números primos em Python

  7. Um número é dito perfeito quando ele é igual a soma de seus fatores. Por exemplo, os fatores de 6 são 1, 2 e 3 (ou seja, podemos dividir 6 por 1, por 2 e por 3) e 6=1+2+3, logo 6 é um número perfeito. Escreva uma função que recebe um inteiro e dizer se é perfeito ou não. Em outra função, peça um inteiro n e mostre todos os números perfeitos até n.
    Como achar números perfeitos

  8. Faça um programa para imprimir:
  9. Faça um programa para imprimir:
  10. Faça um programa, com uma função que necessite de um argumento. A função retorna o valor de caractere ‘P’, se seu argumento for positivo, e ‘N’, se seu argumento for zero ou negativo.

  11. Faça um programa com uma função chamada somaImposto. A função possui dois parâmetros formais: taxaImposto, que é a quantia de imposto sobre vendas expressa em porcentagem e custo, que é o custo de um item antes do imposto. A função “altera” o valor de custo para incluir o imposto sobre vendas.



  12. Faça um programa que converta da notação de 24 horas para a notação de 12 horas. Por exemplo, o programa deve converter 14:25 em 2:25 P.M. A entrada é dada em dois inteiros. Deve haver pelo menos duas funções: uma para fazer a conversão e uma para a saída. Registre a informação A.M./P.M. como um valor ‘A’ para A.M. e ‘P’ para P.M. Assim, a função para efetuar as conversões terá um parâmetro formal para registrar se é A.M. ou P.M. Inclua um loop que permita que o usuário repita esse cálculo para novos valores de entrada todas as vezes que desejar.

  13. Faça uma função que informe a quantidade de dígitos de um determinado número inteiro informado.
    Resolvido no e-book Python Progressivo (PDF)

Programa que acha raízes de uma equação do segundo grau em Python

"
Faça um programa que calcule as raízes de uma equação do segundo grau, na forma ax² + bx + c. O programa deverá pedir os valores de a, b e c e fazer as consistências, informando ao usuário nas seguintes situações:
  1. Se o usuário informar o valor de A igual a zero, a equação não é do segundo grau e o programa não deve fazer pedir os demais valores, sendo encerrado;
  2. Se o delta calculado for negativo, a equação não possui raizes reais. Informe ao usuário e encerre o programa;
  3. Se o delta calculado for igual a zero a equação possui apenas uma raiz real; informe-a ao usuário;
  4. Se o delta for positivo, a equação possui duas raiz reais; informe-as ao usuário;
PS: digite 'import math' no início de seu script. Para achar a raiz quadrada da variável x, faça: math.sqrt(x)
"



Equação do segundo grau em Python

Antes de mais nada, vamos relembrar a fórmula de Bháskara para achar as raízes de uma equação do segundo grau, do tipo: ax² + bx + c = 0 :
Fórmula de Bháskara em Python
O primeiro teste que fazemos é em relação ao coeficiente a. Se for 0, não é uma equação do segundo grau e acaba o programa.

Se for diferente de 0, cai no else, que é onde todo nosso programa vai funcionar. Primeiro, dentro do else, pedimos o valor dos coeficientes b e c.

Agora, vamos calcular o delta.
Em Python, fica assim: delta = b*b - (4*a*c)

Agora vamos testar o delta, dentro de um if aninhado no else anterior.
Se for menor que 0, encerramos o programa dizendo que as raízes são imaginárias.

Em seguida, usamos um elif para testar se delta for 0, se sim valor da raiz será:raiz = -b / (2*a)

Por fim, se não é menor que 0 e o delta não é 0, é porque vai ser sempre maior que 0. Essa condição cai no else aninhado, onde calculamos as raízes assim:
raiz1 = (-b + math.sqrt(delta) ) / (2*a)
raiz2 = (-b  - math.sqrt(delta) ) / (2*a)

Nosso código ficou:

    import math
    
    print('Equaçao do 2o grau da forma: ax² + bx + c')
    
    a = int( input('Coeficiente a: ') )

    if(a==0):
        print('Se a=0, não é equação do segundo grau. Tchau')
    else:
        b = int( input('Coeficiente b: ') )
        c = int( input('Coeficiente c: ') )
        delta = b*b - (4*a*c)

        if delta<0:
            print('Delta menor que 0. Raízes imaginárias. Tchau')
        elif delta==0:
            raiz = -b / (2*a)
            print('Delta=0 , raiz = ',raiz)
        else:
            raiz1 = (-b + math.sqrt(delta) ) / (2*a)
            raiz2 = (-b - math.sqrt(delta) ) / (2*a)
            print('Raizes: ',raiz1,' e ',raiz2)



Python - Trocando o valor de duas variáveis

"Faça um programa que pede dois inteiro e armazene em duas variáveis. Em seguida, troque o valor das variáveis e exiba na tela"



Temos duas variáveis: var1 e var2

Vamos fazer com que var2 receba o valor de var1:
var2 = var1

Agora vamos fazer com que var1 receba o valor de var2...epa!
Vai dar erro, pois eu MUDEI o valor de var2 no comando anterior!
O valor originalmente em var2 foi perdido quando fiz essa variável mudar de valor.

E agora, José?
Calma, você faz o Curso Python Progressivo, e vai aprender a resolver isso.
O segredo é: usar uma variável auxiliar, a aux

A função dar aux é guardar aquele primeiro valor contido em var2.
Então, a troca de valores se dá assim:

aux = var2
var2 = var1
var1 = aux

Faz sentido pra você?
Reflita e veja se entender perfeitamente, pois esse algoritmo de troca é MUITO importante!


    var1 = int(input('Primeiro numero: '))
    var2  = int(input('Segundo numero : '))

    print('Variavel 1: ',var1)
    print('Variavel 2: ',var2)
    print('Invertendo...')

    aux  = var2
    var2 = var1
    var1 = aux
    
    print('Variavel 1: ',var1)
    print('Variavel 2: ',var2)



Python - Três números em ordem decrescente

"Faça um Programa que leia três números e mostre-os em ordem decrescente."



Invertendo dois a dois

O grande segredo desse tipo de algoritmo, é comparar e trocar valor das variáveis, duas a duas.

Por exemplo, vamos pegar a sequência: 10 - 20 - 30
Primeira posição: 10
Segunda posição: 20
Terceira posição: 30

Primeiro vamos comparar a segunda posição com a terceira.
A terceira posição é maior que a segunda? Se for, inverte.
Agora fica: 10 - 30 - 20

Pronto, colocamos em ordem decrescente as duas últimas posições.
Agora vamos comparar a primeira posição com a segunda.

A segunda posição tem um valor maior (30) que a primeira (10)?
Sim! Tem! Então inverte essas duas.
Agora fica: 30 - 10 - 20

Note que ao fazer isso, da direita pra esquerda, pegando duas a duas a posição, jogamos sempre o maior número pro começo da ordem.

Por fim, vamos comparar novamente a segunda com a terceira posição.
A terceira é maior que a segunda? Se for, troca! E é.
Agora fica: 30 - 20 - 10

Algoritmo:
1. Compara as duas últimas posições
2. Compara as duas primeiras posições
3. Compara novamente as duas últimas posições


primeiro = int(input('Primeiro numero: '))
    segundo  = int(input('Segundo numero : '))
    terceiro = int(input('Terceiro numero: '))

    print(primeiro,'-',segundo,'-',terceiro)

    if(terceiro > segundo):
        aux = terceiro
        terceiro = segundo
        segundo = aux

    if(segundo > primeiro):
        aux = segundo
        segundo = primeiro
        primeiro = aux

    if(terceiro > segundo):
        aux = terceiro
        terceiro = segundo
        segundo = aux

    print(primeiro,'-',segundo,'-',terceiro)

Mais a frente, estudaremos o algoritmo de bubble sort, onde vamos aprender a ordenar listas de números de qualquer tamanho. A lógica é a mesma: ir comparando dois a dois, do fim pro começo (ou começo pro fim - depende se quer ordem crescente ou decrescente).






Treinando mais ordenação

Só pra treinar, vamos pegar uma sequência maior, de 4 números:
10 - 20 - 40 - 30

Vamos comparar dois a dois.
1. Quarta posição com a terceira: tá ok, 40 é maior que 30, não invertemos.
Ordem: 10 - 20 - 40 - 30

2. Agora a terceira posição (40) com a segunda (20):
40 é maior, então inverte.
Agora fica: 10 - 40 - 20 - 30

3. Segunda com a primeira posição: inverte, pois 40 > 10
Agora fica: 40 - 10 - 20 - 30

4. Chegamos no começo da lista. A primeira posição tem o maior número, que é o correto. Agora vamos comparar tudo de novo, da direita pra esquerda, porém vamos até a segunda posição, pois a primeira já tem o maior.

5. Comparando quarta com terceira: inverte, pois 30 > 20
Temos: 40 - 10 - 30 - 20

6. Comparando terceira com segunda: inverte, pois 30 > 10
Temos: 40 - 30 - 10 - 20
Chegamos ao fim, e colocamos o segundo maior valor na segunda posição, como desejamos. Não mexemos mais na primeira nem na segunda posição da lista.

Agora, vamos pro começo de novo, na direita.

7. Comparando a quarta com a terceira posição: inverte, pois 20 > 10
Temos: 40 - 30 - 20 - 10

Chegamos ao fim, o terceiro maior número na terceira posição.
Automaticamente, a última posição foi preenchida e...tcharam, a lista ficou ordenada, do maior pro menor!

Python - Recebe três números e exibe o maior e o menor

"Faça um Programa que leia três números inteiros, em seguida mostre o maior e o menor deles."



Código Comentado em Python

Vamos usar o mesmo código da questão anterior, pra achar o maior número:
Achar o maior número em Python 

Em seguida, vamos achar o menor.
A lógica é a mesma de achar o maior, primeiro fazemos com que a variável 'menor' receba o valor do 'primeiro' número.

Em seguida, comparamos se o segundo valor é menor que o primeiro.
Se for, a variável 'menor' agora vai receber o valor de 'segundo'.
Se não for menor, fica como está ('menor' continua com o valor de 'primeiro', que é o menor entre os dois primeiros números).

Agora vamos fazer o mesmo teste com o terceiro número.
Se ele for menor que o valor armazenado em 'menor', fazemos com que 'menor' receba o valor de 'terceiro'.

Nosso código fica:


 primeiro = int(input('Primeiro numero: '))
    segundo  = int(input('Segundo numero : '))
    terceiro = int(input('Terceiro numero: '))

    # Achando o maior número
    maior = primeiro

    if (segundo > maior):
        maior = segundo
    if (terceiro > maior):
        maior = terceiro

    print('Maior: ',maior)

    # Achando o menor número
    menor = primeiro

    if (segundo < menor):
        menor = segundo
    if (terceiro < menor):
        menor = terceiro

    print('Menor: ',menor)



10 Exercícios Sobre a Função print no Python

Em nosso último tutorial de nosso Curso de Python, ensinamos você como exibir mensagens na tela, usando a função print:


Agora vamos fazer algo de extrema utilidade e importância: exercícios.
É simplesmente IMPOSSÍVEL se tornar um programador sem fazer exercícios, ou seja, sem colocar a mão na massa, quebrar a cabeça e tentar programar sozinho.

Por isso, no decorrer de todo nosso curso, iremos propor exercícios que você deve tentar ao máximo resolvê-los.

Eu quero obter certificado Python Progressivo e Entrar no Mercado de Trabalho!

Exercícios em Python com a função print

1. Frase na tela - Implemente um programa que escreve na tela a frase "O primeiro programa a gente nunca esquece!".

2. Etiqueta - Elabore um programa que escreve seu nome completo na primeira linha, seu endereço na segunda, e o CEP e telefone na terceira.

3. Letra de música - Faça um programa que mostre na tela uma letra de música que você gosta (proibido letras do Justin Bieber).

4. Mensagem - Escreva uma mensagem para uma pessoa de quem goste. Implemente um programa que imprima essa mensagem, tire um print e mande pra essa pessoa. Diga que foi um vírus que algum hacker instalou em seu computador.

5. Ao site - Faça um programa que mostre na tela o que você deseja fazer usando seus conhecimentos de Python.






6. Quadrado - Escrever um programa que mostre a seguinte figura:

XXXXX
X   X
X   X
X   X
XXXXX

7. Tabela de notas - Você foi contrato por uma escola pra fazer o sistema de boletim dos alunos. Como primeiro passo, escreva um programa que produza a seguinte saída:
ALUNO(A)          NOTA
=========         =====
ALINE              9.0  
MÁRIO              DEZ
SÉRGIO             4.5    
SHIRLEY            7.0

8. Letra grande - Elabore um programa para produzir na tela a letra P, de Python Progressivo. Se fosse
‘L’, seria assim:
L
L
L
LLLLL

9. Menu - Elabore um programa que mostre o seguinte menu na tela:
Cadastro de Clientes
0 - Fim
1 - Inclui
2 - Altera
3 - Exclui
4 - Consulta
Opção: 

10. Pinheiro  - Implemente um programa que desenhe um "pinheiro" na tela, similar ao abaixo.
Enriqueça o desenho com outros caracteres, simulando enfeites.
       X
      XXX
     XXXXX
    XXXXXXX
   XXXXXXXXX
  XXXXXXXXXXX
 XXXXXXXXXXXXX
XXXXXXXXXXXXXXX
       XX
       XX
      XXXX

Estou esperando seu código-fonte nos comentários!


Leia também: