Nesta secção podes encontrar exercícios para aplicares os conceitos abordados ao longo do site. Para alguns deles é dada uma ou mais propostas de resolução. Os exercícios com * têm uma dificuldade acrescida.
Variáveis, operadores, print e input
Proposta de resolução:
# Pedir o nome ao utilizador e guardá-lo na variável nome
nome = input("Insere o teu nome: ")
# Pedir a idade ao utilizador e guardá-la na variável idade
idade = input("Insere a tua idade: ")
# Mostrar ao utilizador os dados que foram introduzidos (nome e idade)
print("O teu nome é", nome, "e tens", idade, "anos.")
Ex. 2. Cria um programa que peça ao utilizador os seguintes dados: Nome e Morada composta por 3 partes: rua, código postal e localidade. O programa, depois de receber estes dados devem mostrá-los de acordo com o exemplo abaixo:
Luís Gonçalves
Rua das Janelas Verdes
1900-012
Lisboa
Proposta de resolução:
# Pedir o nome ao utilizador e guardá-lo na variável nome
nome = input("Insere o teu nome: ")
# Pedir o nome ao utilizador e guardá-lo na variável rua
rua = input("Insere a rua onde moras: ")
# Pedir o nome ao utilizador e guardá-lo na variável codigoPostal
codigoPostal = str(input("Insere o código postal da tua morada: "))
# Pedir o nome ao utilizador e guardá-lo na variável localidade
localidade = input("Insere a localidade onde moras: ")
# Mostrar o nome e a morada completa
print(nome, "\n\t", rua, "\n\t\t", codigoPostal, "\n\t\t\t", localidade)
Ex. 3. Cria um programa que peça ao utilizador 4 números e que devolva o resultado da multiplicação dos dois primeiros, subtraindo-lhe o terceiro e somando o quarto número.
Propostas de resolução:
# Pedir o nome ao utilizador os quatro números e guarda-os nas respetivas variáveis
num1 = int(input("Insere o 1º número: "))
num2 = int(input("Insere o 2º número: "))
num3 = int(input("Insere o 3º número: "))
num4 = int(input("Insere o 4º número: "))
# Calcula o resultado pedido e guarda-o na variável resultado
resultado = num1 * num2 - num3 + num4
# Mostra o resultado obtido, numa nova linha, de acordo com os números dados
print("\nO resultado é: ", resultado)
-----------------------------------------------------------------------------------------------------------------
Outra proposta de resolução:
Se não for necessário guardar o valor do resultado na variável, podemos simplificar o código:
# Pedir o nome ao utilizador os quatro números e guarda-os nas respetivas variáveis
num1 = int(input("Insere o 1º número: "))
num2 = int(input("Insere o 2º número: "))
num3 = int(input("Insere o 3º número: "))
num4 = int(input("Insere o 4º número: "))
# Mostra o resultado obtido, numa nova linha, de acordo com os números dados
print("\nO resultado é: ", num1 * num2 - num3 + num4)
Nota: é possível simplificar o bloco de código inicial onde são pedidos os números ao utilizador, com recurso a listas e ciclos. Contudo, não é esse o objetivo neste exercício.
Ex. 4. Cria um programa que pergunte ao utilizador quantos livros já leu de cada temática: Romance, Policial, Drama e Ficção-Científica e guarda esses valores em variáveis diferentes. No final, o programa deverá devolver o número de livros de cada categoria e deve ainda devolver o número total de livros lidos.
Propostas de resolução:
# Pede ao utilizador que indique quantos livros leu de cada género questionado e guardar esse valor numa variável
romance = int(input("Quantos livros do género Romance já leste? R: "))
policial = int(input("\nQuantos livros do género Policial já leste? R: "))
drama = int(input("\nQuantos livros do género Drama já leste? R: "))
FiccaoCientifica = int(input("\nQuantos livros do género Ficção-Científica já leste? R: "))
# Mostra ao utilizador quanto livros de cada género leu
print(f"\n\nLivros do género Romance lidos: {romance}")
print(f"\nLivros do género Policial lidos: {policial}")
print(f"\nLivros do género Drama lidos: {drama}")
print(f"\nLivros do género Ficção-Científica lidos: {FiccaoCientifica}")
# Mostra ao utilizador quantos livros leu no total
print("\nTotal de livros lidos: ", romance + policial + drama + FiccaoCientifica)
-----------------------------------------------------------------------------------------------------------------
Outra proposta de resolução:
# Pede ao utilizador que indique quantos livros leu de cada género questionado e guardar esse valor numa variável
romance = int(input("Quantos livros do género Romance já leste? R: "))
policial = int(input("\nQuantos livros do género Policial já leste? R: "))
drama = int(input("\nQuantos livros do género Drama já leste? R: "))
FiccaoCientifica = int(input("\nQuantos livros do género Ficção-Científica já leste? R: "))
# Mostra ao utilizador quanto livros de cada género leu e o total de livro lidos
print(f"\nLivros lidos: \nRomance: {romance} \nPolicial: {policial} \nDrama: {drama} \nFicção-Científica: {FiccaoCientifica} \n\nTotal de livros lidos: ", romance + policial + drama + FiccaoCientifica)
Ex. 5. O Sr. Rui é o responsável pelo transporte de alguns alunos do Externato até às suas casas. Para saber o tempo total do percurso, o Sr. Rui contabiliza o tempo, em minutos, que demora a levar cada aluno a sua casa.
Cria um programa, em Python, que pergunte ao utilizador para introduzir os tempos de viagem dos cinco alunos que o Sr. Rui vai transportar num certo dia. O programa deve devolver o tempo total, em minutos, que o Sr. Rui demorará. E se o resultado for expresso em horas? E em segundos?
Proposta de resolução:
# pedir ao utilizador o tempo de viagem dos alunos
tva1 = int(input("Insere o tempo de viagem (em minutos) para o 1º aluno: "))
tva2 = int(input("Insere o tempo de viagem (em minutos) para o 2º aluno: "))
tva3 = int(input("Insere o tempo de viagem (em minutos) para o 3º aluno: "))
tva4 = int(input("Insere o tempo de viagem (em minutos) para o 4º aluno: "))
tva5 = int(input("Insere o tempo de viagem (em minutos) para o 5º aluno: "))
# inicializar a variável tempo_de_viagem
tempo_de_viagem = 0
# cálculo do tempo de viagem
tempo_de_viagem = tva1 + tva2 + tva3 + tva4 + tva5
# Mostra quanto tempo o Sr. Rui demora a fazer o percurso para deixar os alunos em suas casas (em minutos)
print("\nTempo total do percurso (em minutos): ", tempo_de_viagem)
# Mostra quanto tempo o Sr. Rui demora a fazer o percurso para deixar os alunos em suas casas (em horas)
print("\nTempo total do percurso (em horas): ", tempo_de_viagem/60)
# Mostra quanto tempo o Sr. Rui demora a fazer o percurso para deixar os alunos em suas casas (em segundos)
print("\nTempo total do percurso (em segundos): ", tempo_de_viagem*60)
Ex. 6. A Dona Natália precisa de encomendar material escolar para o novo ano letivo. Independentemente do valor da encomenda do material, a Dona Natália, tem sempre 10% de desconto sobre o valor da encomenda. Cria um programa que peça ao utilizador o valor que ira ser gasto na encomenda e que devolva o valor da encomenda, o valor do desconto e o valor final após o desconto.
Proposta de resolução:
# pedir ao utilizador o valor da encomenda realizado pela Dona Natália
valor_inicial = float(input("Valor da encomenda inicial da encomenda de material: "))
# calcular o valor de desconto (10%)
desconto = valor_inicial * 0.1
# mostra o valor inicial da encomenda
print("\nValor incial da encomenda: ", valor_inicial,"€")
# mostra o valor do desconto
print("\nValor do desconto: ", desconto,"€")
# mostra o valor final após o desconto de 10% sobre o valor inicial
print("\nValor final da encomenda: ", valor_inicial * 0.9,"€")
Ex. 7. A Roberta juntou as suas mesadas ao longo de um ano para poder comprar uma consola. Mas está indecisa entre a Playstation 5, a Xbox ou a Nintendo Switch. Cria um programa que peça ao utilizador o valor que a Roberta tem das suas poupanças e que mostre o valor que sobra para os preços de cada consola.
Proposta de resolução:
# pedir o valor que a Roberta tem em poupanças
poupanca = float(input("Indica o valor (em euros) que a Roberta conseguiu poupar: "))
# mostra os valores das consolas (apenas para informação do utilizador)
print("\nValor das consolas: \n\tPlaystation 5: 779€ \n\tXbox Series X: 499€ \n\tNintendo Switch: 349€")
# mostra o valor que sobra para cada consola (Se o valor for negativos, significa que
# a Roberta não tem dinheiro suficiente para essa consola)
print("\nValor que sobra na compra da Playstation 5: ", poupanca - 779,"€")
print("Valor que sobra na compra da Xbox Series X: ", poupanca - 499,"€")
print("Valor que sobra na compra da Nintendo Switch: ", poupanca - 349,"€")
Ex. 8. Cria um programa que peça ao utilizador o valor gasto em compras no supermercado em cada dia da semana (segunda-feira, terça-feira, quarta-feira, quinta-feira e sexta-feira. O programa deve devolver o valor gasto em cada dia e ainda o valor total gasto na semana.
Proposta de resolução:
# pedir ao utilizador o valor gasto no supermercado em cada dia da semana
d1 = float(input("Valor gasto (em euros) no supermercado na segunda-feira: "))
d2 = float(input("Valor gasto (em euros) no supermercado na terça-feira: "))
d3 = float(input("Valor gasto (em euros) no supermercado na quarta-feira: "))
d4 = float(input("Valor gasto (em euros) no supermercado na quinta-feira: "))
d5 = float(input("Valor gasto (em euros) no supermercado na sexta-feira: "))
# mostra o valor gasto em cada dia da semana e o respetivo total
print("\nValor gasto na segunda-feira: ", d1,"€")
print("Valor gasto na terça-feira: ", d2,"€")
print("Valor gasto na quarta-feira: ", d3,"€")
print("Valor gasto na quinta-feira: ", d4,"€")
print("Valor gasto na sexta-feira: ", d5,"€")
print("\tValor gasto durante a semana: ", d1 + d2 + d3 + d4 + d5,"€")
Ex. 9. Cria um programa que peça ao utilizador o valor do raio de um círculo e que devolva a respetiva área.
Sugestão: podes usar o valor aproximado do Pi = 3,14159.
*Ex. 9.1. Usa um operador conhecido para simplificar os cálculos que o programa anterior realiza.
Proposta de resolução Ex 9.:
# pedir ao utilizador o valor do raio do círculo
raio = float(input("Introduza o valor do raio do círculo: "))
# mostra a área do círculo
print("Valor da área do círculo: ", 3.14159 * raio * raio)
-----------------------------------------------------------------------------------------------------------------
Proposta de resolução Ex 9.1.:
# pedir ao utilizador o valor do raio do círculo
raio = float(input("Introduza o valor do raio do círculo: "))
# mostra a área do círculo
print("Valor da área do círculo: ", 3.14159 * (raio**2))
Ex. 10. Cria um programa em Python que receba do utilizador a quantidade de água, em litros, que este gastou nos primeiros 6 meses do ano. O programa deve mostrar os valores introduzidos pelo utilizador e deve atualizar a quantidade de água gasta entre cada mês.
Ex. 10.1. Modifica o programa anterior para mostrar o valor total a pagar pelo utilizador se cada litro de água custar 1,26€.
*Ex. 10.2. Modifica o programa de forma a responder à seguinte questão: Se, por cada litro de água, houver um desconto de 10%, qual o valor do desconto que o utilizador terá no final?
Proposta de resolução:
# pedir ao utilizador a quantidade de água consumida no
# primeiros 6 meses do ano
mes1 = float(input("Litros de água consumida em Janeiro: "))
mes2 = float(input("Litros de água consumida em Fevereiro: "))
mes3 = float(input("Litros de água consumida em Março: "))
mes4 = float(input("Litros de água consumida em Abril: "))
mes5 = float(input("Litros de água consumida em Maio: "))
mes6 = float(input("Litros de água consumida em Junho: "))
# cálculo da quantidade de água consumida
total_consumido = mes1 + mes2 + mes3 + mes4 + mes5 + mes6
# mostra o valor a pagar com base nos litros de água consumida e no preço por litro
print("\nValor total gasto: ", total_consumido * 1.26)
# cálculo do valor do desconto com
desconto = total_consumido * 0.1
# mostra o valor do desconto que o utilizador terá
print("\nValor do desconto: ", desconto)
Ex. 11. Cria um programa em Python que converta horas em segundos. Este número de horas deve ser introduzido pelo utilizador.
Proposta de resolução:
# pedir ao utilizador o número de horas
horas = int(input("Introduza o número de horas: "))
# conversão de horas em segundos
segundos = horas * 3600
# mostra a conversão do número de horas em segundos
print(f"{horas} hora(s) correspondem a {segundos} segundos.")
Ex. 12. A Marta quer forrar a parede do seu quarto com papel de parede. Tirou as medidas à parede reparou que esta formava um quadrado com 3 metros de largura e comprimento. Cria um programa que ajude a Marta a calcular a área da parede do quarto.
Ex. 12.1. Se cada metro quadrado de papel de parede custar 2,35€, qual o valor que a Marta tem de gastar para forrar as paredes do quarto?
Proposta de resolução 12.1:
# inicialização das variáveis
lado = 3
area = 0
custo_cada_metro = 2.35
custo_total = 0
# cálculo da área do quadrado
area = lado * lado
# cálculo do custo total de papal para forrar a parede
# cada metro quadrado custa 2.35€
custo_total = custo_cada_metro * area
# mostra o custo total necessário para forrar a parede
print("Custo total da quantidade de papel para forrar a parede: ", custo_total, "€")
*Ex. 12.2. Modifica o programa anterior para que seja o utilizador a pedir a medida da parede do quarto e o valor de cada metro quadrado de papel de parede. Este programa deve mostrar a medida da parede, a área da parede, o valor do metro quadrado de papel de parede e o valor total a gastar na compra de papel de parede.
Proposta de resolução 12.2:
# inicialização das variáveis
area = 0
custo_total = 0
# pedir ao utilizador a medida da parede do quarto e o custo do papel de parede por cada metro quadrado
lado = float(input("Insira o comprimento da parede do quarto: "))
custo_cada_metro = float(input("Insira o valor do metro quadrado do papel de parede: "))
# cálculo da área do quadrado
area = lado * lado
# cálculo do custo total de papel para forrar a parede cada metro quadrado custa 2.35€
custo_total = custo_cada_metro * area
# mostra o custo total necessário para forrar a parede
print(f"Custo total da quantidade de papel para forrar a parede: {custo_total}€")