E não, não usei IA kkkk .. E recomendo que faça o mesmo
Validando um CPF
Com ASCII Art e Formato de CPF na saída 123.456.789-01
Como ficou

Como fazer
Primeiro arquivo é o main.py
from functions import letreiro, limpa, erro, formato
def entrada_usuario() -> str:
"""Recebe entrada do usuário e retorna cpf validado"""
while True:
entrada = limpa(input("Digite um CPF: "))
if not entrada.isdigit():
erro("Erro: Digite somente números")
elif len(entrada) != 11:
erro("Erro: CPF precisa de 11 números")
else:
return entrada
def resultado(cpf: str):
"""Imprime CPF válido"""
print(f"\nCPF Válido : {formato(cpf)}")
def main():
"""Indice do programa"""
letreiro() # letreiro do progrma
cpf = entrada_usuario() # entrada e validação do que o usuário digitou
resultado(cpf) # resultado formatado
if __name__ == "__main__":
main()
O segundo aquivo é o functions.py
import os
def letreiro():
os.system("clear")
print("""
_____ ___ ____
/ ___/ / _ \ / __/
/ /__ / ___/ / _/
\___/ /_/ /_/
""")
def limpa(entrada: str) -> str:
"""Recebe uma str, retira pontuação e valores espaços em brancos"""
return entrada.replace(".", "").replace("-", "").strip()
def erro(mensagem: str):
print()
input(mensagem + "\n\n(Tecle ENTER para continuar)...")
letreiro()
def formato(num: str) -> str:
"""Recebe a str '123456789' e retorna com a máscara de CPF '123.456.789-01' """
return f"{num[:3]}.{num[3:6]}.{num[6:9]}-{num[9:]}"
Foi razoavelmente fácil de fazer, mas levei mais tempo com a modificação do programa, do que fazer ele funcionar. Por isso recomendo que façam igual falam no vídeo, primeiro faça funcionar e depois modificando, quando se pega a manhã, modificar fica fácil.
E não, não usei IA kkkk .. Qqr duvida só comentar que eu respondo assim que possível : )