Informática, perguntado por matheusbrenndo, 8 meses atrás

python

Faça um programa que leia uma lista de 10 posições e a armazene em um arquivo
chamado busca.txt. Em seguida, o usuário deverá informar um valor X qualquer a ser localizado
no arquivo. Faça a leitura dos dados armazenados e faça a busca do valor de X e escreva no
final do arquivo a quantidade de vezes que o valor foi encontrado, ou caso não seja encontrado,
escreva “ valor não foi encontrado". Posteriormente faça a leitura de todos os dados do arquivo
e os imprima na tela.

Soluções para a tarefa

Respondido por GeBEfte
2

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 'busca.txt' é recriado toda vez que rodamos o programa ou se deve-se apenas ir atualizando o documento com a nova lista e a informação sobre a busca, considerei que o arquivo seja sempre recriado, ou seja, não interessa o que programa processou anteriormente. Também, considero que os dados são inteiros, mas nada impede que sejam alteradas as funções de casting para permitir dados em ponto flutuante (float) ou strings (str).

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]

f = open('busca.txt', 'w+')

lista = list()

print('Entrada de Dados')

for i in range(10):

.....valor = int(input(f'Digite o {i+1}° valor: '))

.....lista.append(valor)

..... f.write(f'{valor} ')

x = str(input('\nDigite o valor que deve ser buscado: ')).strip()

f.seek(0)

dados = f.readline().split()

if dados.count(x) == 0:

.....f.write('\nValor não foi encontrado')

else:

.....f.write(f'\nO valor {x} aparece {dados.count(x)} vez(es)')

f.seek(0)

print(f'\nConteúdo do arquivo busca.txt:\n {f.read()}')

f.close()

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio

Anexos:
Perguntas interessantes