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] Conhecendo o for... in...

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

Antes de prosseguir leia os artigos anteriores aqui.



Olá pessoal! Hoje vamos ver mais uma modalidade de laço de repetição: for.

Esse laço é o mais utilizado em Python. O laço while na verdade é utilizado somente em alguns casos especiais, que o for não conseguiria resolver. Vamos deixar de papo e ir logo ao assunto!


Conhecendo o for... in...




O laço for, diferente do laço while, não utiliza uma condição. Ele precisa somente de um argumento iterável e de uma variável para repassar o item de cada iteração. O for sempre trabalha em conjunto com a instrução in. A sua estrutura básica é a seguinte:
Código:
  for VARIAVEL in ITEM_ITERAVEL:
     FAZ_ALGO
Vamos a um exemplo no modo interativo do Python:
Código:
  >>> lista = ['este', 'e', 'um', 'teste']
  >>> for item in lista:
  ...     print item
  ...
  este
  e
  um
  teste
  >>> 
O laço for, para quem está acostumado com o for de C/C++, chega a ser um absurdo, algo irreal. Eu também tive essa sensação! Sugiro a todos fazer como eu fiz, aceitar que o for magicamente sabe onde a variável iteravel começa e termina. Dessa mesma forma sobre natural, a cada iteração o for pega um ítem da lista e joga dentro da variável item.

Pronto, é assim que o for funciona. Ele reduz espantosamente o esforço do programador, identificando o inicio e o fim do objeto iterável e repassando cada item desse objeto em uma variável previamente prevista. Com o for você praticamente esquece que a função len() existe.

O for serve também para fazer iteração em strings. Conforme abaixo:
Código:
  >>> texto = \\"este e um teste!\\"
  >>> for letra in texto:
  ...     print '->',letra
  ...
  -> e
  -> s
  -> t
  -> e
  ->
  -> e
  ->
  -> u
  -> m
  ->
  -> t
  -> e
  -> s
  -> t
  -> e
  -> !
  >>> 
Como podem ver podemos alterar livremente a variável para um nome que seja compatível a um item que estamos iterando. Por exemplo, se vamos iterar sobre uma lista de palavras, identificamos a variável como palavra. Se vamos iterar sobre uma lista que contêm todos os meses do ano, vamos utilizar uma variável com o nome mês, e assim sucessivamente.

É isso ai pessoal. Por hoje é só! Vamos conhecer o for aos poucos.


[Curso de Python] Mais Sobre as Estruturas While

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

Antes de prosseguir leia os artigos anteriores aqui



Bom dia a todos! Finalmente, estamos quase completando os estudos com a estrutura while. Já vimos praticamente todas as instruções que se aliam a ela: continue, break e o else.

Vou mostrar hoje alguns exemplos da estrutura while de forma mais complexa e depois vou deixar alguns exercícios. Postem os resultados, ok?!

Mais Sobre as Estruturas While



Agora que já conhecemos diversas instruções que alteram o comportamento da estrutura while vale a pena comparar sua utilidade. Vamos começar com um exemplo simples:
1. Buscar a primeira ocorrência de uma letra dentro de uma string passada pelo usuário. Deve ser informada a posição dessa ocorrência ou, caso não exista uma ocorrência, deve ser impresso um texto informando que a letra buscada não foi encontrada.
Vou resolver esse exercício de duas formas, uma será usando apenas o while, a outra será usando as instruções continue, break e else. No final iremos comparar os dois códigos.

Resolução 1
Código:
# Recebe a string
texto = raw_input('Favor informar uma string: ')
# Recebe a letra que será buscada na string
letra = raw_input('Favor informar uma letra para buscarmos: ')

# Vamos verificar se por acaso o usuário não passou mais de uma
# letra. Para isso verificamos o comprimento com a função len.
if len(letra) > 1:
    print 'Foi informado a palavra',letra,'.'
    # Pega somente a primeira letra da palavra
    letra = letra[0]
    print 'Sera considerado apenas a primeira letra:', letra


n = 0
encontrada = False
while n < len(texto):
    # Pega a letra na posição n
    letra_texto = texto[n]
    # incrementa n para a próxima iteração do loop
    n = n + 1
    if letra_texto == letra:
        print 'encontrada a letra',letra,'na posicao',(n-1)
        # Prepara para parar o loop
        encontrada = True
    if encontrada:
        # Como o while testa se n é menor que o comprimento do texto,
        # para parar o while basta alterar n para o comprimento do text
        # dessa fora, essa será a última iteração do loop.
        n = len(texto)


if encontrada == False:
     # Se 'encontrada' é falso, quer dizer que não foi encontrada
     print 'Nao foi possivel encontrar a letra',letra
print '\n'
Nesse exemplo, logo no início, eu fiz uma verificação para confirmar que o usuário tinha passado uma letra. Caso o tamanho de 'letra' fosse maior que zero teríamos o problema de comparar uma palavra com uma letra.

A execução mostra o seguinte comportamento:
Código:
$ ./busca_letra
Favor informar uma string: este e um teste
Favor informar uma letra para buscarmos: u
encontrada a letra u na posicao 7

$ ./busca_letra
Favor informar uma string: este e um teste
Favor informar uma letra para buscarmos: uma
Foi informado a palavra uma .
Sera considerado apenas a primeira letra: u
encontrada a letra u na posicao 7

$ ./busca_letra
Favor informar uma string: este e um teste
Favor informar uma letra para buscarmos: z
Nao foi possivel encontrar a letra z
Resolução 2
Agora vamos ver como re-escrever o código acima utilizando as instruções que aprendemos:
Código:
# Recebe a string
texto = raw_input('Favor informar uma string: ')
# Recebe a letra que será buscada na string
letra = raw_input('Favor informar uma letra para buscarmos: ')

# Vamos verificar se por acaso o usuário não passou mais de uma
# letra. Para isso verificamos o comprimento com a função len.
if len(letra) > 1:
    print 'Foi informado a palavra',letra,'.'
    # Pega somente a primeira letra da palavra
    letra = letra[0]
    print 'Sera considerado apenas a primeira letra:', letra

n = 0
while n < len(texto):
    # Pega a letra na posição n
    letra_texto = texto[n]
    # incrementa n para a próxima iteração do loop
    n = n + 1
    if letra_texto == letra:
        print 'encontrada a letra',letra,'na posicao',(n-1)
        # Vamos quebrar o while.
        break
else:
     # Só atingiremos caso o while tenha chegado ao fim
     print 'Nao foi possivel encontrar a letra',letra
Podemos verificar, rapidamente, que o codigo reduziu de tamanho. Outra coisa é que utilizamos uma variável a menos, a variável 'encontrada'. Isso implica em menos memória e menos processamento para alocar e desalocar essa variável.

Agora, analisando o código, pode surgir uma dúvida quanto ao break e o else. O else só é executado se o loop terminar todas as iterações. Como o break 'quebra' o loop quando a letra é encontrada, o else não é executado. Com isso fica fácil estruturar o programa para indicar que a letra não foi encontrada.

Exercícios



Agora uns exercícios para vocês. Tentem usar as instruções continue, break e else em todos os exemplos.
1: Fazer um programa que busca em um texto, passado pelo usuário, todas as ocorrências de uma letra. Caso não seja encontrado, informar que não foi encontrado a letra buscada.
2: Fazer um programa que recebe palavras do usuário e informe o comprimento da palavra. O programa só deve para quando o usuário digitar a palavra 'pare'.
Desafio: Criar um código que organize a seguinte lista: [3, 4, 2, 1, 5]


França e Alemanha Recomendam a Suspensão do Uso do IE

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

Como consequência da declaração de que uma falha no IE foi utilizada para atacar as contas de e-mail do Google, os governos Francês e Alemão estão recomendando aos seus cidadãos que deixem de usar o IE 5, 6 e 7 nos sistemas operacionais WindowsXP, Vista e 7.



Na última sexta-feira, dia 15/01, a Secretaria Federal para Segurança na Tecnologia da Informação (BSI) alemã alertou os seus cidadão e desencorajou o uso do IE 6, 7 e 8 pois estes, mesmo navegando no "modo seguro" ou desabilitando scripts, possibilita a realização de ataques [1].

O Centro de Avaliação Governamental de Resposta e Tratamento de Ataques de Informática (CERTA) se juntou ao governo alemão nessa segunda-feira, dia 18/01, ao orientar os cidadãos franceses a buscarem outras alternativas ao IE [2].

Cliff Evans, chefe de segurança e privacidade do IE, em uma entrevista à BBC [2] declarou que todos devem migrar para o IE8 pois este é o "navegador mais seguro do mercado" e que até o momento só existem códigos maliciosos para o IE6. Cliff Evans afirmou também que "o risco é mínimo" pois para ser atacado o usuário deve visitar uma página maliciosa e "existem poucas dessas páginas pela internet"


Depois de anos de campanha para que o IE fosse abandonado por diversos motivos e foi necessário algo maior para fazer com que as pessoas abram os olhos e vejam que não era apenas bobeira de nerds e geeks. Será que dessa vez o IE morre de vez?


Saiba Mais:
[1] Warning over using Internet Explorer from German Government as exploit goes public - The H Security: News and Features
[2] BBC News - France joins Germany warning against Internet Explorer


Notícias Relacionadas:
- IE Foi Vetor Para Ataque ao Google



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