Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Minha resolução para o desafio "Agrupando informações dos pacientes"

import re

pacientes = {}
def cadastrar_paciente():
    quantidade = int(input("Quantos pacientes deseja cadastrar? "))
    for chaves in range(quantidade):
        nome = input("Digite o nome do paciente: ")
        sobrenome = input("Digite o sobrenome do paciente: ")
        idade = input("Digite a idade do paciente: ")
        pacientes[chaves] = {"nome": nome, "sobrenome": sobrenome, "idade": idade}
    
    if pacientes and all(
        validar_dados(
            dados_paciente['nome'],
            dados_paciente['sobrenome'],
            dados_paciente['idade']
        ) for dados_paciente in pacientes.values()):

        limpar_tela()
        print("Dados do Paciente:")

        for paciente in pacientes.values():
            print("-" * 20)
            print(
                f"Nome: {paciente['nome']}\n"
                f"Sobrenome: {paciente['sobrenome']}\n"
                f"Idade: {paciente['idade']}"
            )

def validar_dados(nome, sobrenome, idade):
    if not re.match(r"^[A-Za-z\s]+$", nome):
        print("Nome inválido. Deve conter apenas letras e espaços.")
        return False
    if not re.match(r"^[A-Za-z\s]+$", sobrenome):
        print("Sobrenome inválido. Deve conter apenas letras e espaços.")
        return False
    if not re.match(r"^\d+$", idade):
        print("Idade inválida. Deve conter apenas números.")
        return False
    return True

def limpar_tela():
    import os
    os.system('cls' if os.name == 'nt' else 'clear')

cadastrar_paciente()
2 respostas
solução!

Oii, Edgard!

Obrigada por compartilhar seu código com a comunidade Alura.

Ficou muito bacana como você estruturou a função validar_dados utilizando regex para garantir a integridade das informações. Isso deixa o código mais confiável na hora de cadastrar os pacientes.

Uma dica interessante para o futuro é utilizar o método str.title() para padronizar a escrita dos nomes, colocando a primeira letra de cada palavra em maiúsculo. Veja este exemplo:


nome = input("Digite o nome: ")
nome_formatado = nome.title()

print(nome_formatado)

O código acima transforma, por exemplo, "maria da silva" em "Maria Da Silva", melhorando a apresentação dos dados.

Conteúdos relacionados
Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado pela dica, vou dar uma olhada sobre esse método.