Olá William, tudo bem com você?
O comportamento apresentado ocorre porque as variáveis lotacao
e meio_atuacao
são definidas dentro das funções internas lotacao_usuario()
e atuacao_usuario()
, e não estão disponíveis no escopo da função externa cadastrar_usuario()
. Para resolver isso, basta retornar os valores dessas variáveis usando a cláusula return
e atribuí-los a novas variáveis dentro da função cadastrar_usuario()
.
Aqui está um exemplo de como você pode fazer isso, deixei o código simplificado por não ter acesso ao projeto completo:
Exemplo para a função lotacao_usuario
def lotacao_usuario():
# Seu código atual
# ...
return lotacao # Retorne a variável lotacao
Exemplo para a função atuacao_usuario
Nessa função, ao invés de fazer o uso da função print()
dentro das validações if
e elif, basta retornar o valor presente na variável meio_atuacao
, como no exemplo simplificado abaixo:
def atuacao_usuario():
meio_atuacao = int(input('Informe seu meio de atuação: '))
# Seu código atual
# ...
if (meio_atuacao == 5):
meio_atuacao = ("Análise de Riscos")
return meio_atuacao # Retorne a variável meio_atuacao
elif (meio_atuacao == 6):
meio_atuacao = ("Não se aplica")
return meio_atuacao # Retorne a variável meio_atuacao
else:
opcao_invalida()
Por fim, na função cadastrar_usuario
, basta chamar as funções lotacao_usuario
e atuacao_usuario
e atribuir seu retorno as variáveis lotacao
e meio_atuacao
, como apresentado abaixo:
def cadastrar_usuario():
nome_usuario = input('Informe seu nome: ').strip().title()
email_usuario = input('Informe seu e-mail: ').strip().title()
lotacao = lotacao_usuario() # Chame a função e atribua o valor retornado
meio_atuacao = atuacao_usuario() # Chame a função e atribua o valor retornado
print('Parabéns, seu cadastro foi registrado os seguintes dados: Seu nome: {}, seu e-mail: {}, sua lotação - {} e, sua área de atuação como: {}.'.format(nome_usuario, email_usuario, lotacao, meio_atuacao))
# Teste a função principal
cadastrar_usuario()
Exemplo de execução:

Com essas mudanças, as variáveis lotacao
e meio_atuacao
serão definidas no escopo da função cadastrar_usuario()
e estarão disponíveis para uso na função print
. Após realizar as modificações acima, salve o arquivo e execute-o novamente.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!