Você está na página 1de 2

'''

funções

1) pode-se importar funções de outros programas fazendo "from <nome-do-programa>


import <nome-da-funçao>

2) Diferença de Argumento e Parametro:


-Parametro: declarado na definição da função
-Argumento: passado como uma variavel na execução da função / valor assumido
pelo parametro

3) Para alterar uma variavel global dentro de uma função, deve utilizar o comando
"global <nome-da-variavel>
EX: s = 0
def soma(a,b):
"""função que soma 'a' e 'b'"""
global s
s += a + b
return s
print(soma(1,1))
print(soma.__doc__) #propriedade para mostrar a Docstring de uma função

# alterando o valor GLOBAL s dentro da função

4) Docstring: documentação da função


Para fazer um docstring bastar abrir 3 aspas duplas logo apos a declaração da
função, como mostrado na
função soma acima

5) *args
É um parametro como qualquer outro, a unica coisa que difere é o '*' no começo,
que tem a funcionalidade
de empacotar todos os argumentos passados para a função em uma tupla

O mesmo vale para desempacotar, por exemplo, caso queiramos passar os elementos
da lista [1,2,3,4,5] para
a função, se simplesmente chamarmos soma(lista) vai dar errado, porque ira
passar a lista de elementos
como primeiro arg da tupla, que ficaria assim soma([1,2,3,4,5],); portanto para
corrigirmos isso, é necessario
fazer o desempacotamento, que é tirar os elementos da lista e passar um a um
para a função, que ficaria assim
soma(*lista) ===> soma(1,2,3,4,5)

basicamente, o '*' informa ao python que passaremos uma COLEÇÃO de dados,


portanto, sera necessario empacotar
ou desempacotar.

desempacotamento é uma coisa muito util para facilitar a vida, por exemplo,
para printar uma lista em uma
unica linha, numero por numero, basta fazer isso: --print(*lista) ; ao invez
disso --for i in lista:

print(i,end=' ')
uma maneira de trabalhar com *args é utilizando um for, por exemplo:
lista = [1,2,3,4,5,6,7]
def soma(*numeros):
s = 0
for i in numeros:
s += i
return s
print(soma(*lista))

para uma função soma, por exemplo, é muito melhor utilizar o *argumento, pois
podemos somar a quantidade
de numeros q desejarmos sem restrições

6) **kwargs
Mesma coisa de *args, porém para dicionarios, ou seja, chave e valor (keyword
arguments), ou seja, voce criar
o nome da variavel e o valor na hora, e esse nome e valor são passados para um
dicionario

exemplo::
dic = {
'antonio':67,'carlos':90,'julia':23,'andre':32
}

def velho_e_novo(**kwargs):
k = max(kwargs.values())
n = min(kwargs.values())
for pessoa, idade in kwargs.items():
if idade == k:
print(f'o mais velho é o {pessoa} com {idade} anos')
if idade == n:
print(f'o mais novo é {pessia} com {idade} anos'}

velho_e_novo(**dic)
velho_e_novo(carla=12,jose=43,kuduro=420,sexo=69)

OBS:: para desempacotar dicionarios, as chaves devem ser as mesma contidas na


função, exemplo:

## nesse exemplo da certo pq as chaves e os paramentros tem mesmo nome


def soma(a,b,c):
print(a+b+c)
dic = dict(a=1,b=2,c=3)
soma(**dic)

## nesse da errado pq tem nomes diferentes


def soma(a,b,c):
print(a+b+c)
dic = dict(x=1,y=2,z=3)
soma(**dic)
'''

Você também pode gostar