Ir para o conteúdo
ou

Software livre Brasil

Magnun

Nenhum artigo selecionado ainda.
Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

[Curso de Python] Introdução à Funções em Python

10 de Junho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Antes de prosseguir leia os artigos anteriores aqui.



Olá pessoal!

A alguns dias concluímos o aprendizado básico de controle de fluxo usando o if, elif, else, while e o for. Agora vamos aprender a trabalhar com funções, uma outra estrutura que serve para controle de fluxo de um programa.


OIntrodução às Funções em Python



Definição: Uma função é um bloco de código que recebe a designação de um nome. Ela também possui parâmetros e argumentos e retornam um valor.

Como essa primeira parte é apenas introdutória vamos ver o básico de funções, nada de argumentos/parâmetros e nada de retornar valores.

O Python possui diversas funções predefinidas, algumas já até vistas por nos. Essas funções são comumente classificadas como built-in functions. Em um post futuro irei abordar as funções built-in mais importantes, por enquanto vamos aprender a como criar nossas próprias funções.


Defininado uma função

As funções em Python são definidas usando a palavra-chave def. Após o def inserimos o nome da função e um par de parênteses e dois pontos (:). Os dois pontos são fundamentais para a definição de uma função.

Assim como o while, o for o if, elif e o else os dois pontos definem o início de um novo bloco de código que obrigatoriamente deve ser identado. Vamos ver um exemplo:

Código PHP:
def ola():
    print 
'Olá mundo!'

ola()
ola()
ola() 
Execução do programa:
Código:
Olá mundo!
Olá mundo!
Olá mundo!
As funções são muito úteis para "compactar" um código. O nome correto disso é reutilização de código, é algo fundamental para um programador. Vamos ver um exemplo de reutilização de código. Vamos supor que precisamos de um programa que conte quantas vezes a letra aparece nas palavras ('teste', 'reutilizacao', 'codigo'). Para tornar essa necessidade mais explícita não podemos usar nenhuma forma de loop.

Primeiramente vamos ver uma resolução desse problema sem a utilização de funções:
Código PHP:
palavra 'teste'
contador 0
for letra in palavra:
    if 
letra == 'a':
        
contador += 1

print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a'


palavra 'reutilizacao'
contador 0
for letra in palavra:
    if 
letra == 'a':
        
contador += 1

print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a'


palavra 'codigo'
contador 0
for letra in palavra:
    if 
letra == 'a':
        
contador += 1

print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a' 
Execução do código:
Código:
Na palavra teste exitem 0 ocorrencias da letra a
Na palavra reutilizacao exitem 2 ocorrencias da letra a
Na palavra codigo exitem 0 ocorrencias da letra a
Agora vamos rever como refazer o código acima utilizando funções:
Código PHP:
def busca_letra():
    
contador 0
    
for letra in palavra:
        if 
letra == 'a':
            
contador += 1
    
print 'Na palavra',palavra,'exitem',contador,'ocorrencias da letra a'

palavra 'teste'
busca_letra()
palavra 'reutilizacao'
busca_letra()
palavra 'codigo'
busca_letra() 
Execução do código:
Código:
Na palavra teste exitem 0 ocorrencias da letra a
Na palavra reutilizacao exitem 2 ocorrencias da letra a
Na palavra codigo exitem 0 ocorrencias da letra a
Podemos ver que ambos possuem a mesma saída, mas (depois que se acostuma com as funções) o segundo exemplo é extremamente mais legivel.

Além de tornar um código mais legível, a reutilzação de código permite que o programa seja reformulado com mais facilidade. Por exemplo, se quisermos que ao invés de buscar a letra 'a' seja buscada a letra 'c', no primeiro exemplo teríamos que alterar 3 linhas de código, já no segundo exemplo, basta alterar uma linha.

Sei que isso pode parecer pouco, mas em um programa realmente complexo isso pode ser a diferença entre alterar 4 linhas ou 52 linhas distribuídas em 10 arquivos diferentes.

Como esta é apenas uma introdução às funções não vou deixar nenhum exercício, até mesmo porque usar uma função desta forma que mostrei não é a melhor das opções.
Até mais...


[Curso de Python] O for e Outras Palavras Mais

8 de Junho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Antes de prosseguir leia os artigos anteriores aqui.



Olá pessoal!! Retomando os posts desse curso de Python, se é que alguém ainda lembra quem eu sou...



O For e Outras Palavras Mais



Assim como o while, o for também pode ser associado a algumas palavras que o tornam mais útil. Então aqui vamos ver como usar o for em conjunto com as instruções break e else. Como todos esses já foram explicados utilizando a estrutura while não vou aprofundar muito no funcionamento desses, vou apenas mostrar alguns exemplos de implementação e deixar alguns exercícios.


A instrução break

A instrução break, conforme visto anteriormente, é útil para interromper abruptamente um loop. Para exemplificar vamos fazer um loop que procura a primeira ocorrência de um mesmo número dentro de duas listas.

Código:
lista1 = [1,2,3]
lista2 = [7, 5, 3, 4, 1]

for item1 in lista1:
    print 'procurando por',item1,'...'
    for item2 in lista2:
        print '\t',item1,'==',item2,'??',
        if item1 == item2:
            print ' Sim!'
            break
        else:
            print ' Não'
Output gerado:
Código:
procurando por 1 ...
        1 == 7 ??  Não
        1 == 5 ??  Não
        1 == 3 ??  Não
        1 == 4 ??  Não
        1 == 1 ??  Sim!
procurando por 2 ...
        2 == 7 ??  Não
        2 == 5 ??  Não
        2 == 3 ??  Não
        2 == 4 ??  Não
        2 == 1 ??  Não
procurando por 3 ...
        3 == 7 ??  Não
        3 == 5 ??  Não
        3 == 3 ??  Sim!
Coloquei muitos print para mostrar que o break impede que a lista2 seja percorrida totalmente.



A instrução else

Podemos ver que eu gerei muito output pra tornar o fluxo compreensivo além de não ter percebido que o número 2 não foi encontrado na lsita2. Com a ajuda da instrução else, podemos simplificar esse output e também detectar que o numero 2 não foi encontrado.
Código:
lista1 = [1,2,3]
lista2 = [7, 5, 3, 4, 1]

for item1 in lista1:
    print 'procurando por',item1,':',
    for item2 in lista2:
        if item1 == item2:
            print 'Encontrado!'
            break
    else:    
        print 'Não encontrado...'
Output gerado:
Código:
procurando por 1 : Encontrado!
procurando por 2 : Não encontrado...
procurando por 3 : Encontrado!
Exercícios
A título de fixação deixo alguns exercícios:
1. Dado o dicionário abaixo, faça programa que verifique qual dos alunos foi reprovado por falta. O critério de reprovação é ter mais faltado mais de 10 vezes.
Código:
faltas = {'aluno1':2, 'aluno2':3, 'aluno3':7, 'aluno4':11, 'aluno5':0, 'aluno6':10}
2. Tendo o exemplo anterior como base, modifique o programa de forma que ele cruze os dados do dicionário de faltas com o dicionário de notas (a baixo) e informe se o aluno foi aprovado, usando o critério de faltas e a média de suas notas (maior que 6).
Código:
notas = {'aluno1':[5,6,5], 'aluno2':[7,8,6], 'aluno3':[6,6,8], 'aluno4':[5,9,8], 'aluno5':[5,6,3], 'aluno6':[6,6,6]}


Tags deste artigo: python linux arch programação desenvolvimento vim