python
Faça uma função que recebe uma lista contendo 10 números inteiros por
parâmetro, e retorne uma lista contendo somente os números pares. Implemente também,
uma outra função que receba a lista contendo os números pares e faça a gravação desses
números em um arquivo chamado pares.txt. Implementar a função main( ) para testar o
programa e fazer a leitura dos dados do arquivo e os imprimir na tela.
Soluções para a tarefa
O programa abaixo (e também anexado) não conta com validação de dados ou tratamento de erros/exceções, assim espera-se que o usuário entre com os dados de acordo com o que foi estabelecido no exercício.
Por exemplo, caso sejam enviados dados não inteiros (int), será retornado uma exceção ValueError, ou seja, de forma simples, o Python não será capaz de converter o dado em um número inteiro.
Ainda, foram feitas algumas considerações que não ficaram explícitas no texto. Não é claro se o documento 'pares.txt' é recriado toda vez que rodamos o programa ou se deve-se apenas ir atualizando o documento com a nova lista de números pares, portanto optei por preservar os dados e apenas atualizar o arquivo.
Obs.: Os pontos que precedem algumas das linhas de programação não fazem parte do programa, foram colocados apenas para garantir a indentação do código aqui no site.
[Python 3.8]
def id_pares(lst):
.....lst_pares = list()
.....for valor in lst:
..........if valor%2 == 0:
...............lst_pares.append(valor)
.....return lst_pares
def arquivamento(lst):
.....f = open('pares.txt', 'a')
.....for valor in lst:
..........f.write(f'{valor} ')
.....f.write('\n')
.....f.close()
def main():
.....lista = list()
.....print('Entrada de Dados')
.....for i in range(10):
..........lista.append(int(input(f'Digite o {i+1}° valor: ')))
.....print()
.....nova_lista = id_pares(lista)
.....arquivamento(nova_lista)
.....f = open('pares.txt', 'r')
.....print(f.read())
.....f.close()
if __name__ == '__main__':
.....main()