InFog

Um blog sobre GNU, Linux, Open Source, Desenvolvimento e Nerdices em Geral

Curso de Python – Aula 9 – Mais sobre listas e um pouco de “aleatoriedade”

Tags: ,

Olá pessoal! Como foram de festas de fim de ano? Espero que bem =)

Na aula passada falamos um pouco sobre as listas em Python, mas lendo os comentários e o fórum e revendo as aulas eu vi que deixei algumas coisas de fora e também falei algumas besteiras =( Bem, mas como eu disse no começo do curso eu também estou aprendendo, então nesta aula vou corrigir alguns “enganos” da aula anterior e mostrar mais alguns assuntos.

Ahh o João Paulo Farias, que eu não conheço, mas vi esta notícia no BR-Linux, também está publicando aulas sobre Python, o blog dele é aprendendocompython.blogspot.com, e eu recomendo que vocês passem por lá. Pelo que eu vi no site ele tem bastante experiência com a linguagem, e as aulas são bem legais, ou seja acaba sendo uma nova fonte para vocês, além das minhas aulas =)

Então vamos às observações sobre a aula anterior… Só para deixar claro, não é que os exemplos da aula anterior estejam errados, o problema é que eles são o “hard level”, então é melhor partirmos para o “easy level”, não?

Primeiro vou falar mais sobre as listas, eu acredito que apenas com o código abaixo e seus comentários já é possível ver que as listas não são tão feias quanto eu havia falado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# criando uma lista vazia
lista_vazia = []
# agora uma lista com itens
lista_itens = ["python", "php", "c++"]
# adicionando ítens à lista
lista_vazia.append("item1")
lista_vazia.append("item2")
# removendo um item de uma lista
lista_itens.remove("php")
# retorna e remove o último ítem da lista
ultimo = lista_itens.pop()
print(ultimo) # mostra "c++"
# inverte a ordem da lista
lista_vazia.reverse()
lista_vazia.append("item5")
lista_vazia.append("item3")
lista_vazia.append("item4")
lista_vazia.sort()

Viram como a operações das listas pode ser bem mais simples? Agora deixa eu explicar o código:

Nas linhas 4 e 6 são criadas duas listas, uma vazia e outra já com alguns elementos.

Nas linhas 8 e 9 são adicionados itens à lista vazia, o mesmo procedimento pode ser usado em listas com elementos.

Na linha 11 é removido o primeiro elemento que casa com “php”, caso tivesse mais de um elemento “php” apenas o primeiro seria removido.

Na linha 13 temos uma função bem interessante já que ela retorna e remove o último item da lista, neste caso o último item é “c++”, então a variável “ultimo” recebe este valor, e logo após ele é removido da lista.

Na linha 16 a ordem da lista é invertida.

Já na linha 20 a lista é ordenada com a função sort().

Agora vamos ver uma coisa bem legal: Como embaralhar listas em Python:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# importando o módulo random
import random
# criando uma lista
lista = ["joão", "maria", "josé", "ana"]
# embaralhando a lista
random.shuffle(lista)
print(lista)

Como vocês podem ver eu usei o módulo “random” do Python, este módulo possui várias funções interessantes para gerar números aleatórios, mas vamos falar mais dele mais para frente, ok?

Na linha 4 é importado o módulo random, assim como fizemos com o módulo math umas aulas atrás.

Na linha 6 é criada uma lista com 4 elementos e na linha 8 usei a função “shuffle()” do módulo random para embaralhar a lista. A linha 9 exibe a lista embaralhada.

Lição de casa

1 – Sorteio – Crie uma lista com o nome de 10 pessoas, embaralhe esta lista e sorteie uma pessoa, depois embaralhe novamente e sorteie outra pessoa, lembrando que não poderá ser a mesma pessoa a ser sorteada.

2 – Mega Sena – Crie duas listas com números de 0 a 9, embaralhe as listas e sorteie um número de cada uma para formar uma dezena, repita a operação 5 vezes para sortear 5 dezenas, assim como na mega sena. Caso a dezena caia como 00 (zero, zero) faça o sorteio dela novamente até sair outra combinação. Depois disso exiba as dezenas sorteadas.

Eu gostei bastante de fazer estes 2 exercícios :-)

InFog

Outros textos que você pode gostar:

  1. Curso de Python – Aula 8 – Mais sobre operadores e conhecendo as listas e o “for” Olá Alunos! A aula da semana passada foi bem...
  2. Curso de Python – Aula 6 – Um pouco mais sobre strings E aqui vamos nós para mais uma aula de...
  3. Curso de Python – Aula 15 – Mais sobre Orientação à Objetos Olá alunos! Na aula passada vimos um básico sobre...

Posts relacionados trazidos a você pelo Yet Another Related Posts Plugin.

Tags: ,

10 Comentários to “Curso de Python – Aula 9 – Mais sobre listas e um pouco de “aleatoriedade””


  1. Tiago
    on jan 15th, 2009
    @ 13:48

    Mega-sena ou Quina?? rsrs

    [Resposta]


  2. ismael de jesus xavier
    on mar 9th, 2009
    @ 19:50

    bem eu toh querendo aprender muito sobre programaçao, estou achando muito dificil estudar por conta propria, entao queria saber se posso começar a aula com a vossa pessoa e como faço para adquirir a primeira aula

    [Resposta]


  3. Daniel Mota
    on abr 14th, 2009
    @ 10:11

    resolução simplificada:
    possibilidades = ['%02d' % i for i in xrange(1, 61)]
    sorteados = random.sample(possibilidades, 6)
    print ‘Dezenas sorteadas: ‘, ‘ ‘.join(sorteados)

    [Resposta]


  4. ROBISON DE MARATAIZES-ES
    on ago 23rd, 2009
    @ 14:55

    Esse foi o exercício mais difícil que eu vi até agora, eu demorei uns 10 dias para resolver, e detalhe, só consegui acabar com os erros hoje (23/08/2009), no último dia, e mesmo assim acredito que possa sair números repetidos. Contudo foi um aprendizado.

    Eu olhei as respostas dos outros companheiros no fórum, porém, tem “comandos” que eu não aprendi ainda. Muitas respostas diferentes.

    Exercício enviado professor!!!

    Bons estudos pessoal!!!

    [Resposta]


  5. Curso de Python – Aula 10 – Entrada de dados e formatação de strings « InFog
    on fev 25th, 2010
    @ 21:15

    [...] A aula de hoje vai começar um pouco diferente, vou mostrar o resultado do exercício “mega sena” da aula 9. [...]


  6. Willem
    on abr 14th, 2010
    @ 19:19

    Olá estou com uma dúvida como utilizar sort para ordenar uma lista com diversos vetores.

    codigo, nome, nota tirada na prova!

    ex: lista = [(1, "caio",9),(2,"willem",10)]

    queria ordenar pelo ultimo numero ordenar com nota digamos!

    Preciso de isso rapido pois é um trabalho grato!

    [Resposta]


  7. Willem
    on abr 14th, 2010
    @ 19:26

    Curti seu blog bastante conteúdo!

    Tenho um blog também http://www.ribsystem.com/blog

    quiser trocar figurinhas rs

    [Resposta]


  8. Ed
    on abr 15th, 2010
    @ 15:00

    Olá professor, estou gostando muito das suas aulas. Parabéns.

    Me da uma ajuda por favor.

    Entro com uma palavra e depois entro com o numero de repetição. Essa palavra tem que ser exibida assim:

    infog
    infog infog
    infog infog infog
    infog infog infog infog

    Obrigado.

    [Resposta]


  9. Sorteio.py « Olá Mundo!
    on mai 21st, 2010
    @ 1:15

    [...] Eu criei este programa como uma solução para a questão 1 do curso de Python do infog. [...]


  10. Eu
    on ago 28th, 2010
    @ 18:49

    Exercício do sorteio:
    import random
    n1=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    n2=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    i=1
    while i<=6:
    random.shuffle(n1)
    random.shuffle(n2)
    ps=n1[random.randint(0, 9)]
    ss=n2[random.randint(0, 9)]

    [Resposta]

Deixar uma Resposta

© 2009 InFog. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.