Olá, pude trabalhar algumas funções novas e questões de lógicas diferentes ao realizar essa parte do código. Pensei em algumas coisas e as que eu não sabia exatamente como fazer recorria ao chat e aprendia com ele, além de ver suas sugestões e melhorias.
Irei listar algumas coisas que aprendi:
- chamada do main() causando recursão(gostaria de confirmar essa questão)
- uso do lower e da função any para comparar
- adicionei a opção de apagr restaurantes, mas ainda não trabalhei nela
- usei o enumerate e vi um pouco como ele funciona
- vi sobre o try e except junto com o value error e como usar o except Exception as e:
- juntei a condições de numeros errados com a de caracteres que nao eram numeros em uma so (dentro da função escolher_op)
conclusão -> com certeza desenvolvi muito a lógica e pude aprender mais sobre python
import os
restaurantes = ["Domes", "Jsk"]
def limpar_tela():
os.system("cls" if os.name == "nt" else "clear")
def exibir_nome_programa_e_opcoes():
print("""
░██████╗░█████╗░██████╗░░█████╗░██████╗░ ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗ ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
╚█████╗░███████║██████╦╝██║░░██║██████╔╝ █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗ ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║ ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝ ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░
1. Cadastrar restaurante
2. Listar restaurante
3. Ativar restaurante
4. Apagar restaunte
5. Sair
""")
def mensagem_voltar_menu():
input("\nDigite enter para voltar ao menu...")
def exibir_subtitulo(texto):
limpar_tela()
print(texto)
print()
def cadastrar_restaurantes():
exibir_subtitulo("Cadastro de novos restaurantes")
while True:
nome_restaurante = input("Digite o nome do restaurante que deseja cadastrar (ou 's'/'sair' para voltar): ").strip()
nome_restaurante = nome_restaurante.title()
if nome_restaurante.lower() in ("s", "sair"):
break
elif not nome_restaurante:
print("Nome vazio não é válido.\n")
continue
elif any(restaurante.lower() == nome_restaurante.lower() for restaurante in restaurantes):
print(f"O restaurante {nome_restaurante} já está cadastrado.\n")
continue
else:
restaurantes.append(nome_restaurante)
print(f"O restaurante {nome_restaurante} foi cadastrado com sucesso!\n")
mensagem_voltar_menu()
def listar_restaurantes():
exibir_subtitulo("Restaurantes cadastrados")
if not restaurantes:
print("Nenhum restaurante cadastrado.")
else:
for i, restaurante in enumerate(restaurantes, start = 1):
print(f"{i}. {restaurante}")
print()
mensagem_voltar_menu()
def ativar_restaurantes():
limpar_tela()
def apagar_restaurante():
pass
def finalizar_app():
exibir_subtitulo("Encerrando o app...")
def escolher_op():
try:
opcao_escolhida = int(input("Digite uma opção: "))
if opcao_escolhida not in range(1, 6):
raise ValueError
except ValueError:
exibir_subtitulo("Opção inválida. Digite um número (1 a 4).")
mensagem_voltar_menu()
return True
match opcao_escolhida:
case 1:
cadastrar_restaurantes()
return True
case 2:
listar_restaurantes()
return True
case 3:
ativar_restaurantes()
return True
case 4:
apagar_restaurante()
return True
case 5:
finalizar_app()
return False
def main():
while True:
limpar_tela()
exibir_nome_programa_e_opcoes()
if not escolher_op():
break
if __name__ == "__main__":
main()