Desenvolva um programa computacional capaz de atualizar o arquivo anterior incluindo novos nomes e dizendo quantos nomes estão disponíveis.
Passo 1
O problema pede um programa que receba novos nomes do usuário, atualize um arquivo de texto já existente (cada nome em uma linha) e, ao final, informe quantos nomes o arquivo contém. O conteúdo principal é manipulação de arquivos em linguagem de programação (aqui usaremos Python) e contagem de linhas não vazias.
Passo 2
Definimos que o arquivo será um simples arquivo de texto, por exemplo
"nomes.txt"
, em que cada linha armazena exatamente um nome. O programa vai:- abrir o arquivo em modo de acréscimo para adicionar novos nomes;
- ler do teclado nomes até o usuário digitar linha em branco;
- em seguida reabrir o arquivo em modo de leitura, contar quantas linhas não vazias existem e exibir esse total.
Passo 3
Implementamos a função
atualizar_nomes
em Python:- usamos
open(fnome, 'a', encoding='utf-8')
para abrir o arquivo sem apagar o conteúdo antigo; - em laço
while True
pedimosinput()
, e se o usuário pressionar ENTER sem texto, saímos do laço; - cada nome informado é escrito seguido de
\n
; - depois fechamos esse handle e abrimos novamente em modo leitura com
open(fnome, 'r', encoding='utf-8')
; - contamos linhas não vazias com
sum(1 for linha in f if linha.strip())
; - finalmente imprimimos o total.
Passo 4
Segue o código completo em Python:
def atualizar_nomes(fnome):
# Abre para acréscimo e adiciona novos nomes
with open(fnome, 'a', encoding='utf-8') as f:
while True:
nome = input('Digite um nome para adicionar (ou ENTER para encerrar): ').strip()
if not nome:
break
f.write(nome + '\n')
# Abre para leitura e conta quantas linhas não vazias existem
with open(fnome, 'r', encoding='utf-8') as f:
total = sum(1 for linha in f if linha.strip())
print(f'Total de nomes disponíveis: {total}')
if __name__ == '__main__':
atualizar_nomes('nomes.txt')
Resposta
O programa acima atualiza o arquivo
"nomes.txt"
com novos nomes informados pelo usuário e, ao final, exibe quantos nomes o arquivo contém.