Ficha 4 - Python
Ficha 4 - Python
NOTA – Todos os exercícios têm que ser feitos com recursos a listas.
1. Faça um programa que inicialize uma lista vazia e a preencha com 5 nomes diferentes digitados pelo
utilizador. Depois, deve solicitar um número entre 0 e 4 e remover o elemento que está nessa posição e
imprimir a lista final.
Output:
nomes = []
for i in range(5):
nome = input(f"Introduza o {i+1}º nome: ")
nomes.append(nome)
print("Lista inicial:", nomes)
posicao = int(input("Qual a posição do elemento a eliminar entre 0 e 4? "))
while posicao > 4:
posicao = int(input("Por favor, insira um número válido entre 0 e 4: "))
nomes.pop(posicao)
print("Lista final:", nomes)
2. Faça um programa que inicialize uma lista vazia e solicite ao utilizador 10 números ímpares diferentes.
Caso o número digitado seja par, solicite novamente um número, até que o valor seja um número
ímpar. No final, o programa deve exibir os 10 números digitados.
Output:
Página 1 de 9
numeros_impares = []
while len(numeros_impares) < 10:
numero = int(input(f"Introduza o {len(numeros_impares) + 1}º número ímpar:
"))
if numero % 2 != 0:
if numero not in numeros_impares:
numeros_impares.append(numero)
else:
print("Este número já foi inserido. Insira um número ímpar
diferente.")
else:
print("Tem que inserir um número ímpar.")
print("Lista de números ímpares:", numeros_impares)
3. Faça um programa que leia uma lista com 10 números inteiro e em seguida um valor X qualquer. O
programa deverá fazer uma busca do valor de X na lista e informar a posição em que foi encontrada a
primeira ocorrência do valor ou se não foi encontrado o valor.
Output:
numeros = []
for i in range(10):
numero = int(input(f"Qual o {i+1}º número? - "))
numeros.append(numero)
x = int(input("Qual o valor a procurar? - "))
Página 2 de 9
if x in numeros:
posicao = numeros.index(x) + 1
print(f"O valor encontra-se na lista na posição {posicao}")
else:
print("O valor não foi encontrado na lista.")
4. Faça um programa que leia uma lista com 10 números inteiros e troque os 5 primeiros valores pelos 5
últimos e vice-versa. No final, escreva a lista obtida.
Output:
def troca_elementos(lista):
if len(lista) != 10:
print("A lista deve conter exatamente 10 números.")
return lista
lista[:5], lista[5:] = lista[5:], lista[:5]
return lista
numeros = []
print("Digite 10 números inteiros")
for i in range(10):
numero = int(input(f"Digite o número {i + 1}: "))
numeros.append(numero)
lista_trocada = troca_elementos(numeros)
print("Lista após a troca:", lista_trocada)
5. Faça um programa que leia uma lista A com 10 números e armazene numa lista B todos os números
pares e, posteriormente, os ímpares numa lista C. No final deve apresentar o conteúdo das listas.
Output:
A = []
B = []
C = []
Página 3 de 9
print("Digite 10 números para a lista A:")
for i in range(10):
num = int(input(f"Digite o {i+1}º número: "))
A.append(num)
if num % 2 == 0:
B.append(num)
else:
C.append(num)
print("Conteúdo das listas:")
print(f"Lista A (todos os números): {A}")
print(f"Lista B (números pares): {B}")
print(f"Lista C (números ímpares): {C}")
6. Criar duas listas A e B cada um com 5 elementos inteiros. Construa uma lista C, onde cada elemento de
C é a soma dos respetivos elementos em A e B, ou seja: C[i] = A[i] + B[i]. No final deve apresentar as 3
listas.
Output:
A = []
B = []
C = []
print("Digite 5 números para a lista A:")
for i in range(5):
num = int(input(f"Digite o {i+1}º número: "))
A.append(num)
print("\nDigite 5 números para a lista B:")
for i in range(5):
num = int(input(f"Digite o {i+1}º número: "))
B.append(num)
for i in range(5):
C.append(A[i] + B[i])
print("\nConteúdo das listas:")
print(f"Lista A: {A}")
print(f"Lista B: {B}")
print(f"Lista C (soma de A e B): {C}")
Página 4 de 9
7. Criar uma lista A com 10 elementos inteiros. Implemente um programa que determine a soma dos
elementos armazenados na lista A que são múltiplos de 5. No final deve ser impressa a soma e a lista
com os múltiplos de 5.
Output:
8. Criar uma lista A com 6 números inteiros. Elabore um programa que escreva a média aritmética simples
dos números ímpares armazenados na lista, assim como uma nova lista com os números ímpares.
Output:
9. Faça um programa que leia duas listas e que gere uma terceira com os elementos das duas primeiras. A
inserção de dados deve terminar quando é inserido o valor 0. No final apresente as 3 listas.
Output:
Página 5 de 9
def ler_lista(nome_lista):
lista = []
print(f"Digite os elementos da {nome_lista} (digite 0 para terminar):")
while True:
numero = int(input())
if numero == 0:
break
lista.append(numero)
return lista
lista1 = ler_lista("Lista 1")
lista2 = ler_lista("Lista 2")
lista3 = lista1 + lista2
print("Lista 1:", lista1)
print("Lista 2:", lista2)
print("Lista 3 (união das listas 1 e 2):", lista3)
10. A lista das temperaturas médias registadas na primeira semana do mês de novembro na região do
Porto, foi armazenada na lista T = [8, 13, 14, 7, 6, 13, 11].
Faça um programa que imprima a menor e a maior temperatura, assim como a temperatura média.
Nota: utilize funções.
Output:
11. Faça um programa que leia 5 conjuntos de dois valores, o primeiro representando o número do aluno e
o segundo representando a sua altura em centímetros. Encontre o aluno mais alto e o mais baixo.
Mostre o número do aluno mais alto e o número do aluno mais baixo juntamente com as suas alturas.
Output:
Página 6 de 9
aluno = []
alturas = []
for i in range(5):
print(f"\nConjunto {i+1}:")
numero_aluno = int(input("Digite o número do aluno: "))
altura_aluno = int(input("Digite a altura do aluno (em cm): "))
aluno.append(numero_aluno)
alturas.append(altura_aluno)
indice_alto = alturas.index(max(alturas))
indice_baixo = alturas.index(min(alturas))
print("Resultados:")
print(f"Aluno mais alto: Número {aluno[indice_alto]}, Altura
{alturas[indice_alto]} cm")
print(f"Aluno mais baixo: Número {aluno[indice_baixo]}, Altura
{alturas[indice_baixo]} cm")
12. Faça um programa que receba as médias dos alunos de uma turma e em seguida calcule e imprima:
a. a média da turma;
b. a menor média da turma;
c. a maior média da turma;
d. a quantidade de alunos com média abaixo da média da turma.
Output:
def calcular_estatisticas():
medias = []
while True:
entrada = input("Digite a média do aluno (ou 'sair' para finalizar): ")
Página 7 de 9
if entrada.lower() == 'sair':
break
try:
media = float(entrada)
if 0 <= media <= 10:
medias.append(media)
else:
print("A média deve estar entre 0 e 10. Tente novamente.")
except ValueError:
print("Entrada inválida. Digite um número ou 'sair'.")
if not medias:
print("Nenhuma média foi inserida.")
return
media_turma = sum(medias) / len(medias)
menor_media = min(medias)
maior_media = max(medias)
abaixo_da_media = len([m for m in medias if m < media_turma])
print(f"\nResultados:")
print(f"Média da turma: {media_turma:.2f}")
print(f"Menor média: {menor_media:.2f}")
print(f"Maior média: {maior_media:.2f}")
print(f"Quantidade de alunos com média abaixo da média da turma:
{abaixo_da_media}")
13. Faça um programa que leia a idade de n pessoas. No final, o programa deverá verificar se a média de
idades varia entre [0, 25], [26, 60] ou se é > 60. Deve ser impresso se a turma é jovem, adulta ou idosa,
conforme a média calculada.
Output:
media_idades = sum(idades) / n
Página 8 de 9
if 0 <= media_idades <= 25:
classificacao = "jovem"
elif 26 <= media_idades <= 60:
classificacao = "adulta"
else:
classificacao = "idosa"
14. Faça um programa que leia uma quantidade indeterminada de números positivos. A entrada de dados
deverá terminar quando for lido um número negativo.
O programa deve contar quantos números estão nos seguintes intervalos: [0-25], [26-50], [51-75] e [76-
100]. No final, para além do número de elementos em cada intervalo, também deve ser impresso quais
os elementos de cada intervalo.
Output:
intervalo_0_25 = []
intervalo_26_50 = []
intervalo_51_75 = []
intervalo_76_100 = []
while True:
numero = int(input("Digite um número positivo (ou um número negativo para
sair): "))
if numero < 0:
break
if 0 <= numero <= 25:
intervalo_0_25.append(numero)
elif 26 <= numero <= 50:
intervalo_26_50.append(numero)
elif 51 <= numero <= 75:
intervalo_51_75.append(numero)
elif 76 <= numero <= 100:
intervalo_76_100.append(numero)
print(f"Números no intervalo [0-25]: {len(intervalo_0_25)} elementos")
print(f"Números no intervalo [26-50]: {len(intervalo_26_50)} elementos")
print(f"Números no intervalo [51-75]: {len(intervalo_51_75)} elementos")
print(f"Números no intervalo [76-100]: {len(intervalo_76_100)} elementos")
Página 9 de 9