• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

lanah_

return ou print

5 mensagens neste tópico

Eu tou tentando definir uma funcao.. qdo coloco 'print' me da um resultado (o resultado correto) e 'return' um outro resultado (errado).. Pq??

A funcao:

def file_to_dictionary(file, str):  
    ''' Given an open file that contains a unique string followed by a given
    string delimiter and more text on each line, return a dictionary that
    contains an entry for each line in the file: the unique string as the key
    and the rest of the text as the value (excluding the delimiter, and
    leading and trailing whitespace). '''
    
    input = open(file, "r")
    file_dict = {}
    for lines in input:
        if lines.startswith(str):
            file_dict[str] = lines
            print file_dict

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque estás a usar um ciclo, e a cada "volta" é imprimido um valor, se fizeres return a função é terminada nessa volta e devolve só esse valor. Estás a perceber?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para isso existe o yield.

def funcao():
    for i in range(10):
        yield i

for i in funcao(): print i

Agora, para o teu código, em vez de print, nao metes nada e depois indentado com o código da função, metes return file_dict (mesma indent que o for).

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
def file_to_dictionary(file, str):  
    ''' Given an open file that contains a unique string followed by a given
    string delimiter and more text on each line, return a dictionary that
    contains an entry for each line in the file: the unique string as the key
    and the rest of the text as the value (excluding the delimiter, and
    leading and trailing whitespace). '''
    
    input = open(file, "r")
    file_dict = {}
    for lines in input:
        if lines.startswith(str):
            file_dict[str] = lines
    return file_dict

print file_to_dictionary(ficheiro,string)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora