Kethllen Andrey Santos
UFU
2016
Informática para Biotecnologia
O que são funções?
Importância das funções
Definindo funções no Python
>>> def soma(x,y):
... return x + y
...
Funções
>>> def subtracao(x,y):
... return x - y
...
Funções
>>> def multiplicacao(x,y):
... return x * y
...
Funções
>>> def divisao(x,y):
... return x / y
...
Funções
Funções
Executando funções
>>> soma(2,2)
4
>>> subtracao(2,2)
0
>>> multiplicacao(2,2)
4
>>> divisao(2,2)
1
>>>
Algumas variações possíveis
>>> soma("casa","nova")
'casanova'
>>> subtracao(10.0,13.0)
-3.0
>>> multiplicacao("Ha",3)
'HaHaHa'
>>> divisao(20.0,2)
10.0
Algumas funções inadequadas
>>> soma("nro",23)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in soma
TypeError: cannot concatenate 'str' and 'int' objects
>>>
KeyboardInterrupt
>>> multiplicacao("bola","3")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in multiplicacao
TypeError: can't multiply sequence by non-int of type 'str'
>>> divisao(2,0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in divisao
ZeroDivisionError: integer division or modulo by zero
Chamando funções dentro de programas
É possível invocar funções de outras funções
>>> def produto(x,y):
... return x * y
...
>>> def potencia(x):
... return produto(x,x)
...
>>> potencia(2)
4
>>> potencia(3)
9
>>> potencia(4)
16
>>> potencia(5)
25
>>> potencia(-2)
4
>>> potencia(2.5)
6.25
>>>
Parâmetros com valor padrão
>>> def imprime_texto(resposta="sim"):
... print(resposta)
...
>>> imprime_texto() # Neste caso, sem argumentos
sim
>>> imprime_texto("Não") # Neste caso, comm argumentos
Não
>>>
Funções sem argumento
>>> def gosto():
... print("Huummmm")
...
>>>
>>> gosto
<function gosto at 0x7f73179d2938>
>>> gosto()
Huummmm
>>> gosto("Arghhh")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: gosto() takes no arguments (1 given)
>>>
Funções vários argumentos
>>> def variosargs(a,b,c,d,e,f,g):
.... return(a+b+c+d+eF=g)
>>>
>>> variosarg(1,1,1,1,1,1,1)
7
Exercícios
Criar as seguintes funções:
Exercícios
>>> def potencia(x,y):
... return pow(x,y)
...
>>> potencia(2,3)
8
>>> potencia(3,3)
27
>>> potencia(2,-3)
0.125
>>>
01
>>> def repete(x,y):
... print(x*y)
...
>>> repete("Ha",3)
HaHaHa
>>> repete("K",5)
KKKKK
>>> repete("zzz",10)
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
>>>
02
>>> def equacao1(x):
... print((2016/x)+5)
...
>>> equacao1(2)
1013
>>> equacao1(4)
509
>>> equacao1(-5)
-399
03
>>> def delta(a,b,c):
... print(b*b - 4*a*c)
...
>>> delta(2,2,2)
-12
>>> delta(2,1,1)
-7
>>>
>>> delta(-3,1,1)
13
>>> delta(-3,-2,1)
16
04
>>> def juro(p,t):
... print(p+p*t/100)
...
>>> juro(100,20)
120
>>> juro(80,10)
88
>>> juro(100,-10)
90
>>> juro(80,-10)
72
05
>>> def cubica(x):
... return(pow(x,3))
...
>>> cubica(2)
8
>>> cubica(4)
64
>>> cubica(-2)
-8
06
>>> def eq2(y,z,w):
... return((2*y-3*z)/5*w)
...
>>> y = 2
>>> w = 2
>>> z = 2
>>> print("O resultado da equacao de %d, %d e %d é %d" %(y,z,w,eq2(y,z,w)))
O resultado da equacao de 2, 2 e 2 é -2
07
>>> def eq3(b,c,d,e):
... return(b*c*d/(e+4))
...
>>> eq3(2,2,2,2)
1
>>> eq3(2.0,2.0,2.0,2.0)
1.3333333333333333
>>> eq3(2.0,2.0,2.0,2)
1.3333333333333333
>>> eq3(2.0,2.0,2,2)
1.3333333333333333
>>> eq3(2.0,2,2,2)
1.3333333333333333
>>>
08
>>> def eq4(x,y):
... return(x+2)/(abs(y-4))
...
>>> eq4(2,2)
2
>>> eq4(2,0)
1
>>> eq4(2,-2)
0
>>> eq4(2,-4)
0
>>> eq4(2,4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in eq4
ZeroDivisionError: integer division or modulo by zero
09
Exercícios
>>> temp = int(raw_input("Digite o valor em graus Celsius: "))
Digite o valor em graus Celsius: 37
>>> print("A Temperatura em graus Fahrenheit é: %d" %(temp+273))
A Temperatura em graus Fahrenheit é: 310
>>>
>>> temp = float(raw_input("Digite o valor em graus Celsius: "))
Digite o valor em graus Celsius: 37
>>> print("A Temperatura em graus Fahrenheit é: %f" %(temp+273))
A Temperatura em graus Fahrenheit é: 310.000000
>>>
10
>>> def delta(a,b,c):
... return(b*b - 4*a*c)
...
>>> a = int(raw_input("Digite o valor de a: "))
Digite o valor de a: 2
>>> b = int(raw_input("Digite o valor de b: "))
Digite o valor de b: 2
>>> c = int(raw_input("Digite o valor de c: "))
Digite o valor de c: 2
>>> x1 = -b+pow(abs(delta(a,b,c)),0.5)
>>> x2 = -b-pow(abs(delta(a,b,c)),0.5)
>>> print("As raízes da equação são: %f e %f" %(x1,x2))
As raízes da equação são: 1.464102 e -5.464102
>>>
>>> a = int(raw_input("Digite o valor de a: "))
Digite o valor de a: 1
>>> b = int(raw_input("Digite o valor de b: "))
Digite o valor de b: 2
>>> c = int(raw_input("Digite o valor de c: "))
Digite o valor de c: 1
>>> x1 = -b+pow(abs(delta(a,b,c)),0.5)
>>> x2 = -b-pow(abs(delta(a,b,c)),0.5)
>>> print("As raízes da equação são: %f e %f" %(x1,x2))
As raízes da equação são: -2.000000 e -2.000000
11