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

[Dúvida] Laço for

Bom dia, instrutores. Gostaria de um auxilio no código abaixo:

import os


def app():
    os.system("cls")

    app_logo()

    print("1. Cadastrar Restaurante")
    print("2. Listar Restaurante")
    print("3. Ativar Restaurante")
    print("4. Sair\n")

    selected = int(input("Escolha uma opção: "))

    choosed_option(selected)


def app_logo():
    print("""
        ░██████╗░█████╗░██████╗░░█████╗░██████╗    ░███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
        ██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗    ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
        ╚█████╗░███████║██████╦╝██║░░██║██████╔╝    █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
        ░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗    ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
        ██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║    ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
        ╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝    ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░
        """)


def choosed_option(selected):
    try:
        match selected:
            case 1:
                register_restaurant()
            case 2:
                list_restaurant()
            case 3:
                active_restaurant()
            case 4:
                os.system("cls")
                print("Finalizando app")
            case _:
                invalid_option()
    except:
        invalid_option()


def register_restaurant():
    os.system("cls")
    print("Cadastro de novos restaurantes")

    restaurant = []

    name_restaurant = input("Insira o nome do restaurante: ")

    restaurant.append(name_restaurant)

    print("O restaurante foi cadastrado com sucesso!\n")
    input("Digite uma tecla para voltar ao menu")
    app()


def list_restaurant():
    os.system("cls")
    print("Lista dos restaurantes cadastrados")

    for key in restaurant:
        print(key)
        print("-------------------------------------------------")

    input("Digite uma tecla para voltar ao menu")
    app()


def active_restaurant():
    print("Ativando restaurante")


def invalid_option():
    print("Opção Inválida\n")
    input("Digite uma tecla para voltar ao menu")
    app()


if __name__ == "__main__":
    app()

O laço for não reconhece a variável "restaurant"

2 respostas
solução!

Não sou instrutor mas espero poder ajudar. Acho que o problema pode estar nesta parte do código:

def register_restaurant(): os.system("cls") print("Cadastro de novos restaurantes")

**restaurant = []**	

Você colocou uma variavel de nome restaurant, apenas dentro de uma função, que no caso é register_restaurant().

As variaveis que estão dentro de funções, são variaveis locais e só vão ser acessadas localmente pelas funções. Já as variaveis globais, geralmente ficam no topo do código, tipo la em cima. Desse jeito ela é reconhecida e pode ser usada no restante do código.

Era isso mesmo, obrigado Victor