Devolver o resultado de uma função

  1. Pode utilizar a keyword (palavra-chave) return para dizer a uma função para devolver algum valor. A declaração return sai da função, por exemplo:
def multiplicar(a, b):
    return a * b

print(multiplicar(3, 4))    # saída: 12

def multiplicar(a, b):
    return

print(multiplicar(3, 4))    # saída: None
  1. O resultado de uma função pode ser facilmente atribuído a uma variável, por exemplo
def desejos():
    return "Feliz Aniversario!"

d = desejos()

print(d)    # saida: Feliz Aniversario!

Veja a diferença no output dos dois exemplos a seguir:

# Exemplo 1
def desejos():
    print("Meus Desejos")
    return "Feliz Aniversario"

desejos()    # saída: Meus Desejos

# Exemplo 2
def desejos():
    print("Meus Desejos")
    return "Feliz Aniversario"

print(desejos())

# Saída: Meus Desejos
#        Feliz Aniversario
  1. Pode utilizar uma lista como argumento de uma função, por exemplo:
def oi_todomundo(minha_lista):
    for nome in minha_lista:
        print("Oi,", nome)

oi_todomundo(["Adam", "John", "Lucy"])
  1. Uma lista também pode ser o resultado de uma função, por exemplo:
def criar_lista(n):
    minha_lista = []
    for i in range(n):
        minha_lista.append(i)
    return minha_lista

print(criar_lista(5))

Scopes em Python

  1. Uma variável que existe fora de uma função tem um scope dentro do corpo da função (Exemplo 1), a menos que a função defina uma variável com o mesmo nome (Exemplo 2, e Exemplo 3), por exemplo:
var = 2
def mult_pela_var(x):
    return x * var

print(mult_pela_var(7))    # saida: 14
def mult(x):
    var = 5
    return x * var

print(mult(7))    # saida: 35
def mult(x):
    var = 7
    return x * var

var = 3
print(mult(7))    # saida: 49

  1. Uma variável que existe dentro de uma função tem um scope dentro do corpo da função (Exemplo 4), por exemplo: