1. diferença entre print() e return no python [RESOLVIDO]
jornadalinuxusa Debian
Post recolhido
Enviado em 31/12/2016 - 12:43h
Eae pessoal, blz?, galera, estou aprendendo sozinho programação e escolhi Python como primeira linguagem, e a minha duvida é:
qual a diferença entre print() e return?
pois não consegui achar nada explicando de forma clara a diferença entre eles (ou pelo menos não ficou claro pra mim, rsrsrs). Se alguém puder me dar essa força ficarei grato, pois aprender sozinho não é fácil, mas minha motivação é de mais de 8000!
2. Re: diferença entre print() e return no python [RESOLVIDO]
Melhor resposta
Lisandrousa Arch Linux
Post recolhido
Enviado em 31/12/2016 - 18:09h
Print e Return são cousas realmente muito diferentes, talvez assim fique mais claro:
Estou em uma parte qualquer de um programa e quero que seja impressa uma informação na saída padrão (geralmente o console, tela, etc), é o caso de usar print. O print está pegando algo e imprimindo para a saída padrão.
O return, como o nome diz, retorna um valor em memória, é uma resposta a um chamado anteriormente feito no programa a uma função que vai responder com o return, ou também pode ser a resposta de um "programa" ao chamado de outro "programa".
Talvez a terminologia não seja a mais adequada e correta, mas a intenção é tentar esclarecer a dúvida e não a correção conceitual. Ok?
Então vejamos:
Posso ter um programa_A.py que vai imprimir no console uma lista de números e ao lado de cada número seu quadrado.
O programa poderia ser assim:
# isto é um comentário ele não é interpretado pelo python
# aqui definimos uma lista
lista = [1,2,3,4]
# aqui no corpo principal iteramos a lista imprimindo
for numero in lista:
print('Numero: {} tem o quadrado: {}' .format(numero, numero**2))
A impressão no console seria:
Numero: 1 tem o quadrado: 1
Numero: 2 tem o quadrado: 4
Numero: 3 tem o quadrado: 9
Numero: 4 tem o quadrado: 16
Mas e se eu quisesse que esta lista fosse mutável ou que eu quisesse que ela fosse gerada em uma função do meu programa?
Bom meu programa_A.py poderia ficar assim:
# abaixo a função que gera e retorna uma lista
# ela não imprime nada, só retorna o valor para quem pediu
def funcao_lista():
return list(range(1,5))
# aqui no corpo principal iteramos a resposta
# da função lista e não mais a lista
for numero in funcao_lista():
print('Numero: {} tem o quadrado: {}' .format(numero, numero**2))
O resultado é o mesmo, mas podemos observar que o return não imprime no console, quem faz isso é o print.
Agora também poderíamos colocar a função em um programa_B.py e chamá-la no nosso programa_A.py.
Aí nosso programa_B.py seria simplesmente:
# abaixo a função que gera e retorna uma lista
# ela não imprime nada, só retorna o valor para quem pediu
def funcao_lista():
return list(range(1,5))
E o programa_A.py poderia ser:
# importamos a função dejada do outro programa
from programa_B import funcao_lista
# aqui no corpo principal iteramos a resposta
# da função lista importada
for numero in funcao_lista():
print('Numero: {} tem o quadrado: {}' .format(numero, numero**2))
Veja que o programa_B.py não imprime nada, só retorna os valores para que programa_A.py possa fazer seu trabalho e imprimir par o console.
Espero que esta mini dica te ajude a compreender as diferenças.
Abraço
3. Re: diferença entre print() e return no python [RESOLVIDO]
Mauriciodezusa Debian
Post recolhido
Enviado em 31/12/2016 - 14:14h
jornadalinux escreveu:
Eae pessoal, blz?, galera, estou aprendendo sozinho programação e escolhi Python como primeira linguagem, e a minha duvida é:
qual a diferença entre print() e return?
pois não consegui achar nada explicando de forma clara a diferença entre eles (ou pelo menos não ficou claro pra mim, rsrsrs). Se alguém puder me dar essa força ficarei grato, pois aprender sozinho não é fácil, mas minha motivação é de mais de 8000!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
4. Re: diferença entre print() e return no python
ctw6avusa Nenhuma
Post recolhido
Enviado em 31/12/2016 - 14:36h
Eu também estou prendendo sozinho e é bem melhor.
print('string') = imprime na tela qualquer coisa que você mande.
return = retorna qualquer coisa que você mande.
Ex:
def teste1():
print('teste1')
def teste2():
return 'teste2'
teste1()
print(teste2)
A primeira função agente só chama, pois, o print já está embutido. A segunda temos que mandar imprimir a função que está retornando uma string.
Então ctw6av, a parte do print eu entendi, mas a parte do return, em qual situação é melhor implementar um return ao invés do print()?
6. Re: diferença entre print() e return no python
ctw6avusa Nenhuma
Post recolhido
Enviado em 31/12/2016 - 15:26h
A melhor forma é sempre dentro de funções, exemplo disso é saber se uma determinada função retorna verdadeiro ou falso
def inconstant(value):
if value >= 1: return True
else: return False
if inconstant(2):
print('True')
A função inconstant só retorna verdadeiro ou falso, sendo verdadeiro se o argumento passado for maior ou igual a 1 e falso se for igual a 0.
O if chamado abaixo da declaração da função "if contant(2)" chama a função com o argumento 2 que é maior que 1 fazendo a função retornar True e a linha abaixo faz o trabalho de imprimir True na tela.
Valores retornados por funções não são impressos na tela, mas podem ser armazenados em variáveis:
temp = incanstant(2)
onde temp a partir de agora terá o valor True.
No caso de uma função que retorna algo, ela não será instanciada sendo assim o valor retornado por ela é salvo na variável.
8. Re: diferença entre print() e return no python [RESOLVIDO]
jornadalinuxusa Debian
Post recolhido
Enviado em 31/12/2016 - 20:32h
vamos ver se eu entendi
vou criar duas funções:
func_print() - para imprimir o valor
func_return() - para retornar o valor
def func_print():
print(5)
def func_return():
return 10
se chamar a função func_print(), assim:
func_print()
o valor 5 será exibido na tela.
se chamar a função func_return(), assim:
func_return()
não será exibido nada na tela, POR QUE?, pq o comando 'return' não retorna um valor
da mesma forma como o comando 'print()'. Para retornar um valor de uma função que tem o comando 'return', insira fora das funções definidas o nome da função dentro de um comando 'print()', assim:
print(func_return)
pronto, o valor associado ao 'return' dentro da função será retornado/exibido na tela.
Bom Galera, isso foi o que entedi, me deem feedback caso eu tenha entedido errado, ok?, valew Pessoal!!!
9. Re: diferença entre print() e return no python [RESOLVIDO]
10. Re: diferença entre print() e return no python
jornadalinuxusa Debian
Post recolhido
Enviado em 31/12/2016 - 20:40h
Valew Galera, pela atenção e esforço de todos, só passando pra agradecer xD!
11. Re: diferença entre print() e return no python [RESOLVIDO]
Mauriciodezusa Debian
Post recolhido
Enviado em 31/12/2016 - 23:02h
jornadalinux escreveu:
Valew Galera, pela atenção e esforço de todos, só passando pra agradecer xD!
Agora que já te explicaram a diferença entre print e return eu vou te falar de VOL ... aqui a gente marca o tópico como resolvido quando nossas duvidas e/ou problemas são sanados e depois costumamos marcar uma 'melhor resposta'
Abçs !!!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
12. Re: diferença entre print() e return no python [RESOLVIDO]
jornadalinuxusa Debian
Post recolhido
Enviado em 31/12/2016 - 23:12h
Mauriciodez escreveu:
jornadalinux escreveu:
Valew Galera, pela atenção e esforço de todos, só passando pra agradecer xD!
Agora que já te explicaram a diferença entre print e return eu vou te falar de VOL ... aqui a gente marca o tópico como resolvido quando nossas duvidas e/ou problemas são sanados e depois costumamos marcar uma 'melhor resposta'
Abçs !!!
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
Foi mal Mauriciodez, fiquei tão empolgado em ter aprendido que me descuidei, vacilo meu, valew por ter lembrado ;D