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

Usando funções dentro de funções

def gera_nome_convite(convite): tamanho = len(convite) parte1 = convite[0:4] posicao_inicial = tamanho-4 posicao_final = tamanho parte2 = convite[posicao_inicial:posicao_final] nome_formatado = parte1 + ' ' + parte2 print "%s" % (nome_formatado)

def envia_convite(nome_convidado): print 'Enviando convite para ' + "%s" % (nome_convidado)

def processa_convite(nome_convidado): nome_processado = gera_nome_convite(nome_convidado) envia_convite(nome_processado)

Executando este código estou obtendo o seguinte resultado:

from biblioteca import * processa_convite("Rodrigo Maruyama") Rodr yama Enviando convite para None

2 respostas
solução!

Olá Rodrigo,

Uma dica quando for realizar a postagem de código, utilize o botão "<> Inserir código" e coloque seu código entre as 3 aspas simples. O código fica formatado tornando a leitura melhor.

Sobre o seu código o problema está na função "gera_nome_convite" onde você só está imprimindo a variável "nome_formatado", o correto ai nesse caso seria devolver a variável utilizando return. Desse jeito:

def gera_nome_convite(convite): 
    tamanho = len(convite) 
    parte1 = convite[0:4] 
    posicao_inicial = tamanho-4 
    posicao_final = tamanho 
    parte2 = convite[posicao_inicial:posicao_final]
    nome_formatado = parte1 + ' ' + parte2 
    return nome_formatado # <-- Linha alterada para return

def envia_convite(nome_convidado): 
    print 'Enviando convite para ' + "%s" % (nome_convidado)

def processa_convite(nome_convidado): 
    nome_processado = gera_nome_convite(nome_convidado) 
    envia_convite(nome_processado)

Obrigado Felipe, tanto pela dica da formatação do texto quanto pela duvida em si. Fiz a alteração sugerida acrescentado o return e funcionou como esperado.