6. Funções em Python

6.1. Definindo uma função

def primeiraFunc():
    print('Hello World')
primeiraFunc()
Hello World
# Definindo uma função com parâmetro
def primeiraFunc(nome):
    print('Hello %s' %(nome))
primeiraFunc('Hélio Cardoso')
Hello Hélio Cardoso
def funcLeitura():
    for i in range(0, 5):
        print("Número " + str(i))
funcLeitura()
Número 0
Número 1
Número 2
Número 3
Número 4
# Função para somar números
def addNum(firstnum, secondnum):
    print("Primeiro número: " + str(firstnum))
    print("Segundo número: " + str(secondnum))
    print("Soma: ", firstnum + secondnum)
# Chamando a função e passando parâmetros
addNum(45, 3)
Primeiro número: 45
Segundo número: 3
Soma:  48

6.2. Variáveis locais e globais

# Variável Global
var_global = 10  # Esta é uma variável global

def multiply(num1, num2):
    var_global = num1 * num2  # Esta é uma variável local
    print(var_global)
multiply(5, 25)
125
print(var_global)
10
# Variável Local
var_global = 10  # Esta é uma variável global
def multiply(num1, num2):
    var_local = num1 * num2   # Esta é uma variável local
    print(var_local)
multiply(5, 25)
125
# A variável precisa ser declarada globalmente
print(var_local)
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-13-679175cc3b28> in <module>
      1 # A variável precisa ser declarada globalmente
----> 2 print(var_local)


NameError: name 'var_local' is not defined

6.3. Funções Built-in

abs(-56)
56
abs(23)
23
bool(0)
False
bool(1)
True

6.4. Funções str, int, float

  • Erro ao executar por causa da conversão
idade = input("Digite sua idade: ")
if idade > 13:
  print("Você pode acessar o Facebook")  
Digite sua idade:  15



---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-19-f21b3dafa64b> in <module>
      1 # Erro ao executar por causa da conversão
      2 idade = input("Digite sua idade: ")
----> 3 if idade > 13:
      4   print("Você pode acessar o Facebook")


TypeError: '>' not supported between instances of 'str' and 'int'
  • Usando a função int para converter o valor digitado
idade = int(input("Digite sua idade: "))
if idade > 13:
  print("Você pode acessar o Facebook")  
Digite sua idade:  43


Você pode acessar o Facebook
int("26")
26
float("123.345")
123.345
str(14)
'14'
len([23,34,45,46])
4
array = ['a', 'b', 'c']
max(array)
'c'
min(array)
'a'
array = ['a', 'b', 'c', 'd', 'A', 'B', 'C', 'D']
array
['a', 'b', 'c', 'd', 'A', 'B', 'C', 'D']
max(array)
'd'
min(array)
'A'
list1 = [23, 23, 34, 45]
sum(list1)
125

6.4.1. Criando funções usando outras funções

import math

def numPrimo(num):
    '''
    Verificando se um número 
    é primo. 
    '''
    if (num % 2) == 0 and num > 2: 
        return "Este número não é primo"
    for i in range(3, int(math.sqrt(num)) + 1, 2):
        if (num % i) == 0:
            return "Este número não é primo"
    return "Este número é primo"
numPrimo(1051)
'Este número é primo'

6.4.2. Fazendo split dos dados

# Fazendo split dos dados
def split_string(text):
    return text.split(" ")
texto = "Esta função será bastante útil para separar grandes volumes de dados."
# Isso divide a string em uma lista.
print(split_string(texto))
['Esta', 'função', 'será', 'bastante', 'útil', 'para', 'separar', 'grandes', 'volumes', 'de', 'dados.']
# Podemos atribuir o output de uma função, para uma variável
token = split_string(texto)
token
['Esta',
 'função',
 'será',
 'bastante',
 'útil',
 'para',
 'separar',
 'grandes',
 'volumes',
 'de',
 'dados.']
caixa_baixa = "Este Texto Deveria Estar Todo Em LowerCase"
def lowercase(text):
    return text.lower()
lowercased_string = lowercase(caixa_baixa)
lowercased_string
'este texto deveria estar todo em lowercase'
# Funções com número variável de argumentos
def printVarInfo( arg1, *vartuple ):
   # Imprimindo o valor do primeiro argumento
    print ("O parâmetro passado foi: ", arg1)
   
   # Imprimindo o valor do segundo argumento 
    for item in vartuple:
        print ("O parâmetro passado foi: ", item)
    return;
# Fazendo chamada à função usando apenas 1 argumento
printVarInfo(10)
O parâmetro passado foi:  10
printVarInfo('Chocolate', 'Morango', 'Banana')
O parâmetro passado foi:  Chocolate
O parâmetro passado foi:  Morango
O parâmetro passado foi:  Banana