quarta-feira, 25 de março de 2020

Funções em Python

Funções em Python


As funções são blocos de códigos que podem ser reaproveitados no mesmo programa ou em outros. Um exemplo de função, que utilizamos muito, é a print e type. Uma função pode receber um valor, aplicar alguma operação nesse valor e retornar outro valor. A função também pode não receber valor nenhum, essa seria uma função sem parâmetros.

Criando uma função em python

As funções em python são declaradas com a palavra reservada def. Vamos criar uma função simples que imprime na tela “print dentro da função”.
Exemplo
def imprime():
  print('print dentro da função')

# chama a função print passando a string 'print fora da função' como parâmetro
print('print fora da função')
# chama nossa função sem parâmetros
imprime()
Se você retirar o ‘imprime()’ do código a função imprime() não será executada.

Parâmetros e argumentos

Parâmetros e argumentos são as mesmas coisas, o dado passado para a função. Esse dado pode ser uma string, uma matriz, um numero etc.

Passando parâmetros para uma função

Os parâmetros, passados para uma função, vão sempre entre os parênteses. A quantidade de parâmetros depende dos dados necessários para a função fazer o seu trabalho. Por exemplo: Uma função para imprimir um texto na tela. Essa função só vai precisar de um argumento: O texto que será impresso. Uma função para somar dois valores: Essa função vai precisar de dois valores. Os parâmetros são separados por vírgulas.
Exemplo
def imprime(a):
  # imprime o valor passado para a função imprime
  print(a)

def soma(a, b):
  return a + b # retorna a soma de a mais b

# chama a função imprime
imprime('Uma mensagem!!!')
# chama a função imprime passando
# o resultado da função soma
imprime(soma(2, 5))

Número de parâmetros indefinidos

Vamos imaginar que precisamos que uma função receba o nome de todos os filhos de uma pessoa. Você não conhece essa pessoa. Você não sabe quantos filhos ela tem. Como colocar o numero certo de parâmetros? Simples, é só colocar um * antes do parâmetro do nome do parâmetro. E desse modo só precisamos de um argumento. Esse parâmetro funcionara como uma lista de argumentos.
Exemplo
def imprimeFilhos(*filhos):
  for i in filhos:
    print(i)

imprimeFilhos('Ana', 'Paulo', 'Joana', 'Avril')

Ordem dos parâmetros

Vamos supor que, por algum motivo, você quer passar os argumentos de uma função de uma sequencia diferente da que a função está pedindo. Na nossa função de soma, primeiro passamos o valor de a e depois de b. E se quiséssemos passar primeiro o valor de b e depois o de a? É só na chamada da função especificar a qual parâmetro esse valor será atribuído.
Exemplo
def soma(a, b):
  return a + b

print(soma(b = 5, a = 8))

Dicionário na função

Podemos passar um dicionário para uma função apenas passando um dicionário como parâmetro. Mais existe outro jeito: definindo o dicionário na chamada da função.
Exemplo
def my_function(**nomes):
  print('Meu nome do meio é ' + nomes['n_meio'])

my_function(p_nome = 'Beatriz', u_nome = 'Alves', n_meio = 'Lima')

Valor padrão de um parâmetro

Um parâmetro pode ter um valor padrão. Esse valor padrão será usado se no parâmetro não for passado um valor.
Exemplo
def city(anos, cidade = 'São Paulo'):
  print('Eu tenho ' + str(anos)+ ' anos e moro em ' + cidade)

city(26, 'Tokyo')
city(12, 'New York')
city(23)
city(25, 'Moscou')

Retornando valores

As funções podem receber parâmetros e retornar um valor. Esse valor pode ser um numero, uma lista ou uma string.
Exemplo
def soma(a, b):
  return a + b

def cria_lista(*palavras):
  return list(palavras)

def city(anos, cidade):
  return 'Eu tenho ' + str(anos)+ ' anos e moro em ' + cidade

print(soma(3, 7))
print(cria_lista('praia', 'Sol', 'neve', 'outono'))
print(city(26, 'Tokyo'))

Função recursiva

Uma função recursiva é uma função que chama ela mesma.
Exemplo
def decrementa(a):
  a -= 1
  print(a)
  if a > 0:
    decrementa(a)

decrementa(50)
Obs:  Não se esqueça da indentação.

0 comentários:

Postar um comentário