Hoje é Ter Mai 22, 2012 10:27 am





Criar novo tópico Responder Tópico  [ 17 Mensagens ]  Ir para a página 1, 2  Próximo
Exercício 
Autor Mensagem

Data de registro: Seg Nov 24, 2008 8:53 am
Mensagens: 16
Localização: Rio de Janeiro
Mensagem Exercício
Segue como eu fiz:

Código:
# Rodrigo Zhou
# Curso de Python - Aula 9
# http://infog.casoft.info/?p=408

from random import *

# 1) Sorteio - Crie uma lista 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.
print('Sorteio de duas pessoas diferentes:')
nomes = ['Rodrigo','Filipe','Nathalia','Viviane','Vitor','Caio','Flavia','Carol','Fabio','Mariana']
shuffle(nomes)
p1=choice(nomes)
nomes.remove(p1)
shuffle(nomes)
p2=choice(nomes)
print('Primeira pessoa sorteada: %s\nSegunda pessoa sorteada: %s' %(p1,p2))

print('\n')

# 2) Mega-Sena - Crie duas listas. Uma com números de 0 a 5 e a outra de 0 a 9.
# Embaralhe as listas e sorteie um número de cada uma para formar uma dezena. Repita o processo 6 vezes.
# Caso a dezena seja 00, considere-o como 60. Depois disso, exiba as dezenas sorteadas.
print('Sorteio de 6 dezenas (Mega-Sena):')
n1 = [0,1,2,3,4,5]
n2 = [0,1,2,3,4,5,6,7,8,9]
dezena = 0
while dezena<6:
    shuffle(n1)
    shuffle(n1)
    shuffle(n2)
    shuffle(n2)
    d1 = choice(n1)
    d2 = choice(n2)
    d = int(str(d1)+str(d2))
    if d==0:
        d = 60
    dezenas = []
    dezenas.extend([i for i in str(d).split()])
    while str(d) in dezenas:
        d1 = choice(n1)
        d2 = choice(n2)
        d = int(str(d1)+str(d2))
        if d==0:
            d = 60
    print('%i dezena sorteada: %02i' %(dezena+1,d))
    dezena+=1


Notas: eu repeti a função 'shuffle()' no 'n1' e no 'n2' só para estar mais embaralhado e a função 'choice()' escolhe um item de uma seqüência de forma aleatória.

Obs.: não fiz conforme o exercício 2 pedia. Fiz umas modificações para ficar exatamente como é o sorteio da Mega-Sena. :D


Dom Jan 11, 2009 5:37 pm
Perfil E-mail

Data de registro: Dom Nov 23, 2008 8:59 pm
Mensagens: 13
Localização: Maringá
Mensagem Re: Exercício
Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Lição da Aula nº 9
# Autor: Claudinei Pereira
#
# 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.
import random
nomes = ["Steve Harris", "Paul Di'Anno", "Bruce ****inson", "Blaze Bayley",
            "Dave Murray", "Adrian Smith", "Janick Gears", "Dennis Straton",
            "Clive Burr", "Nicko McBrain"]
print("\nExercício Nº 1 - Sorteio\n")
random.shuffle(nomes)
print("A primeira pessoa sorteada é: %s" % nomes.pop())
random.shuffle(nomes)
print("A segunda pessoa sorteada é: %s" % nomes.pop())

# 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.
print("\nExercício Nº 2 - Mega Sena\n")
lista1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
lista2 = lista1[:]
resultado = []
while len(resultado) < 6:
    random.shuffle(lista1)
    random.shuffle(lista2)
    resultado.append((lista1.pop() * 10) + lista2.pop())
    if resultado[-1] == 0:
        resultado.pop()
   
print("As dezenas sorteadas foram:\n")
for dezena in resultado:
    print(dezena)


Dom Jan 11, 2009 9:22 pm
Perfil E-mail WWW

Data de registro: Seg Dez 15, 2008 5:57 pm
Mensagens: 2
Mensagem Re: Exercício
Código:
# -*- coding: UTF-8 -*-
import random
lista=['márcio','irecer','daniel','fábio','maxwell','ricardo','deusdete','áurea','cristina','sid']
sorteados=[]
for n in range(2):
    random.shuffle(lista)
    sorteados.append(lista[0])
    lista.remove(lista[0])

print 'Os sorteados foram',sorteados[0],'e',sorteados[1],'.'

numSorteados=[]
dezena1=range(10)
dezena2=range(10)
while len(numSorteados)<=5:
    random.shuffle(dezena1),random.shuffle(dezena2)
    escolha=10*dezena1[0]+dezena2[0]
    if escolha!=0 & escolha not in numSorteados:
        numSorteados.append(escolha)
numSorteados.sort()
print 'Os números da pseudo MegaSena são',numSorteados


Foi o melhor exercício, na minha opinião!


Seg Jan 12, 2009 6:55 pm
Perfil E-mail

Data de registro: Dom Dez 14, 2008 7:31 pm
Mensagens: 6
Mensagem Re: Exercício
Umas das coisas que eu mais gosto em programação é ver o quanto é possível fazer uma tarefa de várias maneiras, claro que algumas mais complicadas e outras bem mais diretas, mas é legal ver que 5 linhas as vezes fazem a mesma coisa que 15...

E ai esta o primeiro exercicio um maior e outro menor, fiz com o intuito de se chegar ao objetivo proposto.

Ah, não pude deixar de usar nesse exercicio a funcão choice, também do modulo random, esse modulo realmente nos ofere diversas forma de se gerar resultados aleatórios.

Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random

print 'Sorteando duas pessoas:\n'

lpessoas = []
lsorteadas = []

# incluindo um bando de Jose (nada contra o nome hein)
for i in range(1,11):

  nome = 'Jose %d' %i
  lpessoas.append(nome)

# realizando o sorteio
while len(lsorteadas) < 2:

  pessoa = random.choice(lpessoas)

  # uma pessoa já sorteada
  if len(lsorteadas) >= 1:

    if pessoa in(lsorteadas):

      # é igual, try again
      continue

    else:
     
      lsorteadas.append(pessoa)

  # inclui o primeiro sorteado
  else:

    lsorteadas.append(pessoa)

# mostrando os Jose's ganhadores
print 'Primeira sorteada: %s\nSegunda sorteada: %s\n' %(lsorteadas[0], lsorteadas[1])


Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random

print 'Sorteando duas pessoas:\n'

lpessoas = []

# novamente os os Jose's
for i in range(1,11):

  nome = 'Jose %d' %i
  lpessoas.append(nome)

# sorteio
random.shuffle(lpessoas)

# imprimindo na sequencia não repete e nem sai igual
for i in range(2):

  print '%dº ganhador: %s' %(i + 1, lpessoas[i])


E agora o exercicio 2.

Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random

lnumeros = []
ldezenas = []

# gerar números
for i in range(10):

  lnumeros.append(i)

# executando 5 vezes
while len(ldezenas) < 5:

  # embaralhar a cada "rodada"
  random.shuffle(lnumeros)

  # escolhendo aleatórios
  prinum = random.choice(lnumeros)
  segnum = random.choice(lnumeros)

  # para amazenar como string
  dezena = '%d%d' %(prinum, segnum)

  # não sendo 0
  if prinum + segnum == 0:

    continue

  # não sendo repetido
  elif dezena in(ldezenas):

    continue

  else:

    # numero valido nas apurações
    ldezenas.append(dezena)

# organizando em ordem
ldezenas.sort()

print 'Números sorteados:'

for i in ldezenas:

  # suprimindo a quebra de linha
  print i,


Está muito legal a nossa "pós-aula" é bom vir aqui e ver como todo mundo está fazendo os exercicios, uma fonte muito boa pra todos nós.

Abraços


Seg Jan 12, 2009 8:57 pm
Perfil E-mail
Site Admin

Data de registro: Sex Nov 21, 2008 11:45 pm
Mensagens: 22
Localização: Cubatão - SP - Brasil
Mensagem Re: Exercício
Estou gostando bastante das soluções =)

Eu nem falei do choice() e o pessoal está usando e abusando heheh :twisted:


Seg Jan 12, 2009 9:47 pm
Perfil E-mail WWW

Data de registro: Seg Nov 24, 2008 3:32 pm
Mensagens: 6
Mensagem Re: Exercício
Olá à todos!
Segue meu exercício:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,random

os.system('clear')

print('Exercício 1:')
lista_pessoas = ["Humberto","Doisberto","Tresberto","Quatroberto","Cincoberto","Seisberto","Seteberto","Oitoberto","Noveberto","Zeroberto"]

lista_sorteadas = []

for i in range(2):
random.shuffle(lista_pessoas)
sorteada = random.choice(lista_pessoas)
lista_sorteadas.append(sorteada)
lista_pessoas.remove(sorteada)

print "Pessoas sorteadas: ",lista_sorteadas

print('\nExercício 2')

lista_unidade = [0,1,2,3,4,5,6,7,8,9]
lista_dezena = [0,1,2,3,4,5,6,7,8,9]
lista_numeros = []
numero = 0

for i in range(5):
while numero == 0 or numero in lista_numeros:
random.shuffle(lista_unidade)
random.shuffle(lista_dezena)
unidade = random.choice(lista_unidade)
dezena = random.choice(lista_dezena)
numero = int(str(dezena)+str(unidade))

lista_numeros.append(numero)

print "Os números sorteados na Mega Quina são: ",lista_numeros


Qua Jan 14, 2009 8:18 pm
Perfil E-mail

Data de registro: Seg Nov 24, 2008 3:32 pm
Mensagens: 6
Mensagem Re: Exercício
Esqueci de usar a tag Code... foi mal...


Qua Jan 14, 2009 8:21 pm
Perfil E-mail

Data de registro: Dom Nov 23, 2008 8:28 pm
Mensagens: 15
Mensagem Re: Exercício
Minha solução para o exercício nº 9 segue abaixo.
Confesso que fiquei queimando a mufa por dois dias tentando descobrir uma forma de o código tratar dezenas repetidas, mas não consegui.
Então, se aparecerem dezenas repetidas no sorteio da Mega Sena reclamem com a Caixa Econômica Federal. :mrgreen:

Segue o código:

Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

print("\nCurso de Python do InFog - Exercício da aula nº 9")
print("Aluno: Rodrigo Viana de Oliveira")
import random
print("\n***** Primeira parte do exercício: sorteio dos nomes *****")
nomes=["Adriana", "Bianca", "Carolina", "Débora", "Érica", "Fernanda", "Gabriela", "Helena", "Isabela", "Juliana"]
tamanho = 10
posicao = 1 # necessário para imprimir corretamente a ordem das sorteadas: 1ª sorteada, 2ª sorteada, etc.
while tamanho > 0: # este laço será executado enquanto houver pessoas não sorteadas na lista
   for num in range(50): # embaralha bem embaralhado
      random.shuffle(nomes) # embaralha a lista
   sorteada = nomes[0] # sorteia sempre o primeiro item da lista
   print("A %iª sorteada foi %s.") % (posicao,sorteada)
   nomes.remove(sorteada) # remove a pessoa sorteada da lista
   tamanho = len(nomes) # a variável tamanho fica menor
   posicao = posicao + 1

print("\n***** Segunda parte do exercício: Mega Sena *****")
lista1 = range(10)
lista2 = range(10)
quantidade = 1
while quantidade <= 5: # loop para retornar 5 dezenas sorteadas
   for num in range(50): # embaralha bem embaralhado :)
      random.shuffle(lista1) # embaralha a lista1
      random.shuffle(lista2) # embaralha a lista2
   if lista1[0] == 0 and lista2[0] == 0: # testa se os primeiros itens da lista1 e lista2 são iguais a zero
      while lista1[0] == 0 and lista2[0] == 0: # se forem, embaralha as listas até que os primeiros itens sejam diferentes de zero
         for num in range(50): # embaralha bem embaralhado, de novo :)      
            random.shuffle(lista1)
            random.shuffle(lista2)
      print("A %iª dezena sorteada foi %i%i.") % (quantidade,lista1[0],lista2[0]) # imprime a dezena sorteada
   else:
      print("A %iª dezena sorteada foi %i%i.") % (quantidade,lista1[0],lista2[0]) # imprime a dezena sorteada
   quantidade = quantidade + 1

print("\n")


[]s.


Sex Jan 16, 2009 9:40 am
Perfil E-mail

Data de registro: Dom Nov 23, 2008 10:35 pm
Mensagens: 8
Mensagem Re: Exercício
O primeiro exercício foi bem fácil, já o segundo me deu trabalho :roll:
Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random

# Exercício 1
nomes = ['Eduardo', 'Sofia', 'Plínio', 'Maria', 'Juliano', 'Helena', 'Tiago', 'Cristina', 'Luís', 'Raquel']

print('Pessoas sorteadas:')
for i in range(2):
   random.shuffle(nomes)
   print(nomes.pop())
print('')


# Exercício 2
lista_a   = range(10)
lista_b   = range(10)
sorteados = []

while len(sorteados) < 5:
   random.shuffle(lista_a)
   random.shuffle(lista_b)
   numero = str(random.choice(lista_a)) + str(random.choice(lista_b))
   if numero != '00' and numero not in sorteados:
      sorteados.append(numero)
sorteados.sort()
print('Números sorteados: ')
for i in range(5):
   print(sorteados[i])
print('')


Sex Jan 16, 2009 12:32 pm
Perfil E-mail

Data de registro: Dom Dez 21, 2008 10:40 am
Mensagens: 8
---------
Mensagem Re: Exercício
Estas foram as minhas soluções para os exercícios propostos .

Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Sorteio de dezenas da Mega-Sena
# Importando o módulo random
import random
lista1 = ["0", "1", "2", "3", "4", "5"]
lista2 = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
dezena = "1"
unidade = "1"
print("Sorteio das dezenas da Mega-Sena")
print
for n in range (6):
   while 1:
      random.shuffle(lista1)
      random.shuffle(lista2)
      dezena = lista1.pop()
      unidade = lista2.pop()
      if (dezena + unidade) == "00":
         random.shuffle(lista1)
         random.shuffle(lista2)
         dezena = lista1.pop()
         unidade = lista2.pop()
      print(dezena + unidade),
      break;
   n = n + 1

Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Exercício de Python por:
# Bruno Santos
#---------------------------------------
# Sorteio de pessoas
import random
# Criando a lista de pessoas
lista = ["Junior", "Angelo", "Marina", "Felipe", "Débora", "Vânia", "Aldo", "Olavo", "Fabiana", "Aline"]
# Embaralhando a lista
print("-- Sorteando e tirando pessoas --")
print
print
random.shuffle(lista)
i = 0
for i in range(10):
   print(lista[i]),
ultimo = lista.pop()
print("\n")
print('Sorteado: '),
print(ultimo)
for i in range(9):
   print(lista[i]),


Dom Jan 18, 2009 12:43 pm
Perfil E-mail
Mostrar mensagens anteriores:  Organizar por  
Criar novo tópico Responder Tópico  [ 17 Mensagens ]  Ir para a página 1, 2  Próximo


Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 0 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
Ir para:  
cron

Fazer Um Forum · phpBB© · Internationalization Project · Reportar abuso · Termos De Uso/Política De Privacidade
© Forums-Free.com 2009