Atividade de Python — Listas, Conjuntos e Dicionários
Aluno: Henry Gabriel Piozzi RA: 24002752
Exercício 1 — Listas de Pares e Ímpares
Lê 20 números inteiros e separa em listas de pares e ímpares, exibindo tamanho e elementos de cada lista.
numbers = [int(input('Insira um numero: ')) for i in range(20)]
even = [number for number in numbers if number % 2 == 0]
odd = [number for number in numbers if number % 2 == 1]
print('Lista inteira\nTamanho: ', len(numbers), '\nNumeros: ', numbers)
print('Lista Pares\nTamanho: ', len(even), '\nNumeros: ', even)
print('Lista Impares\nTamanho: ', len(odd), '\nNumeros: ', odd)
Entradas utilizadas na execução:
>>> Números inseridos: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20
Saída:
Lista inteira
Tamanho: 20
Numeros: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
Lista Pares
Tamanho: 10
Numeros: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
Lista Impares
Tamanho: 10
Numeros: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
Exercício 2 — Remoção de Negativos
Lê 10 números e remove os negativos da lista usando iteração com while.
numbers = [int(input('Insira um numero: ')) for i in range(10)]
i = 0
while i < len(numbers):
if numbers[i] < 0:
[Link](i)
else:
i += 1
print('Lista sem numeros negativos: ', numbers)
Entradas utilizadas na execução:
>>> Números inseridos: 5, -3, 8, -1, 0, 7, -9, 4, -2, 6
Saída:
Lista sem numeros negativos: [5, 8, 0, 7, 4, 6]
Exercício 3 — Média das Provas
Recebe duas listas com notas da turma em duas provas, calcula a média de cada uma e indica qual foi melhor.
def ex3(p1, p2):
avg_p1 = sum(p1) / len(p1)
avg_p2 = sum(p2) / len(p2)
print('Media da turma na prova 1: ', avg_p1)
print('Media da turma na prova 2: ', avg_p2)
if avg_p1 > avg_p2:
print('A turma obteve a melhor media na prova 1')
else:
print('A turma obteve a melhor media na prova 2')
ex3([7.0, 8.5, 6.0, 9.0, 7.5], [6.0, 7.0, 5.5, 8.0, 6.5])
Entradas utilizadas na execução:
>>> p1 = [7.0, 8.5, 6.0, 9.0, 7.5] | p2 = [6.0, 7.0, 5.5, 8.0, 6.5]
Saída:
Media da turma na prova 1: 7.6
Media da turma na prova 2: 6.6
A turma obteve a melhor media na prova 1
Exercício 4 — União e Ordenação de Listas
Une duas listas, exibe a lista unida, ordenada crescente e decrescente.
def ex4(l1, l2):
l3 = [*l1, *l2]
print(l3)
print(sorted(l3))
print(sorted(l3, reverse=True))
ex4([5, 2, 8, 1], [9, 3, 7, 4])
Entradas utilizadas na execução:
>>> l1 = [5, 2, 8, 1] | l2 = [9, 3, 7, 4]
Saída:
[5, 2, 8, 1, 9, 3, 7, 4]
[1, 2, 3, 4, 5, 7, 8, 9]
[9, 8, 7, 5, 4, 3, 2, 1]
Exercício 5 — Ordenação Manual (Insertion Sort)
Lê 10 números e os insere em ordem crescente manualmente, sem usar sort().
numbers = [int(input('Insira um numero: ')) for i in range(10)]
ordered = []
for num in numbers:
inserted = False
for i in range(len(ordered)):
if num < ordered[i]:
[Link](i, num)
inserted = True
break
if not inserted:
[Link](num)
print('Lista ordenada: ', ordered)
Entradas utilizadas na execução:
>>> Números inseridos: 42, 7, 19, 3, 55, 28, 11, 36, 2, 99
Saída:
Lista ordenada: [2, 3, 7, 11, 19, 28, 36, 42, 55, 99]
Exercício 6 — Operações com Conjuntos (Filmes)
Usa conjuntos para encontrar filmes que ambos gostam, que pelo menos um gosta, e nos quais discordam.
movies_p1 = {'Matrix', 'Vingadores', 'Interestelar', 'O Poderoso Chefao', 'Pulp Fiction'}
movies_p2 = {'Matrix', 'Vingadores', 'O Senhor dos Aneis', 'Pulp Fiction', 'Clube da Luta'}
print('Filme que pelo menos um gosta: ', *movies_p1.union(movies_p2))
print('Filme que os dois gostam: ', *movies_p1.intersection(movies_p2))
print('Filmes que discordam: ',
*movies_p1.difference(movies_p2),
*movies_p2.difference(movies_p1))
Saída:
Filme que pelo menos um gosta: Matrix Vingadores Interestelar O Poderoso Chefao
Pulp Fiction O Senhor dos Aneis Clube da Luta
Filme que os dois gostam: Matrix Vingadores Pulp Fiction
Filmes que discordam: Interestelar O Poderoso Chefao O Senhor dos Aneis Clube da Luta
Exercício 7 — Cadastro e Separação por Idade
Cadastra pessoas com CPF, nome e idade em um dicionário e separa maiores e menores de idade.
pessoas = {}
while True:
cpf = input('Insira um CPF: ')
nome = input('Insira um nome: ')
idade = int(input('Insira uma idade: '))
pessoas[cpf] = {'nome': nome, 'idade': idade}
if input('Deseja continuar? (s/n) ') == 'n':
break
# ... separação de menores e maiores de idade ...
print('Pessoas menores de idade: ', menores_de_idade)
print('Pessoas maiores de idade: ', pessoas)
Entradas utilizadas na execução:
>>> CPF: 111.111.111-11 | Nome: Ana Silva | Idade: 16 | Continuar: s
>>> CPF: 222.222.222-22 | Nome: Bruno Lima | Idade: 25 | Continuar: s
>>> CPF: 333.333.333-33 | Nome: Carla Souza | Idade: 15 | Continuar: n
Saída:
Pessoas menores de idade: {'111.111.111-11': {'nome': 'Ana Silva', 'idade': 16},
'333.333.333-33': {'nome': 'Carla Souza', 'idade': 15}}
Pessoas maiores de idade: {'222.222.222-22': {'nome': 'Bruno Lima', 'idade': 25}}
Exercício 8 — Identificação de Estado pelo CPF
Lê um CPF no formato [Link]-xx e identifica o estado emissor pelo nono dígito.
cpf = input('Insira um CPF (formato [Link]-xx): ')
n_estado = cpf[10]
estados = {
'1': 'DF, GO, MT, MS, TO', '2': 'AC, AM, AP, PA, RO, RR',
'3': 'CE, MA, PI', '4': 'AL, PB, PE, RN',
'5': 'BA, SE', '6': 'MG',
'7': 'ES, RJ', '8': 'SP',
'9': 'PR, SC', '0': 'RS'
}
print('O CPF pertence ao estado(s): ', estados[n_estado])
Entradas utilizadas na execução:
>>> CPF inserido: 123.456.789-09
Saída:
O CPF pertence ao estado(s): PR, SC
Exercício 9 — Validação de E-mail
Valida se o e-mail possui '@' e '.' e extrai o domínio entre o '@' e o último '.'.
while True:
email = input('Insira um email valido: ')
if not ('@' in email and '.' in email):
print('Email invalido')
continue
for i in range(len(email)):
if email[i] == '@': arroba = i
elif email[i] == '.': ponto = i
if arroba < ponto:
print(email[arroba+1:ponto])
else:
print('Email invalido')
Entradas utilizadas na execução:
>>> E-mail inserido: henry@[Link]
Saída:
gmail
Exercício 10 — Comparação de Strings
Compara duas strings quanto ao tamanho e igualdade de conteúdo.
string1 = input('Insira a primeira string: ')
string2 = input('Insira a segunda string: ')
if len(string1) != len(string2):
print('As strings sao de tamanhos diferentes')
else:
print('As strings sao de tamanhos iguais')
if string1 == string2:
print('As strings sao iguais')
else:
print('As strings sao diferentes')
Entradas utilizadas na execução:
>>> String 1: 'Python' | String 2: 'Python'
Saída:
As strings sao de tamanhos iguais
As strings sao iguais
Henry Gabriel Piozzi · RA 24002752 · Atividade de Python