[pyar] Randomizar diccionarios para un programa.

Ariel Rossanigo arielrossanigo en gmail.com
Mie Mayo 9 15:53:49 ART 2012


El 9 de mayo de 2012 15:18, Javier Marín <nano.world.contact en gmail.com>escribió:

> El título no es muy explicativo, pero no consigo otra manera de
> llamarle... La cosa es que llevo rato tratando de hacer un juego medio
> tonto que te hace preguntas al azar y te da 3 opciones para elegir como
> respuesta.
>
> Anduve investigando un poco y logré aprender un par de cosas interesantes,
> lo había intentado con tuplas/listas pero obviamente la pregunta no
> coincidía con las respuestas (no probé con algunas ideas de condicionales
> que se me ocurrieron, aunque son soluciones ineficientes). Luego me di
> cuenta de que con un diccionario podría hacer la tarea de mejor forma pero
> lo que me termina matando de los diccionarios es eso, que no logro hacer
> coincidir la pregunta con las opciones de respuesta o ni siquiera
> imprimirlas como se debe.
>
> Este es el código que tengo:
>
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> import random
>
> preguntas_respuestas = {'Cuanto es 1+1':('a: 2','b: 5','c: 8'),'Tu mama te
> quiere?':['a: si', 'b: no', 'c: tal vez']}
> #for pregunta, opciones in preguntas_respuestas.iteritems():
> #    print pregunta, opciones
>
> claves = preguntas_respuestas.keys()  # Ahora claves tiene el valor =
> ['Cuanto es 1+1','Tu mama te quiere?']
> clavealazar = random.choice(claves) # clavealazar tendrá alguna de las dos
> claves, por ejem 'Tu mama te quiere?'
>
> print claves, preguntas_respuestas[clavealazar]
>
> El ciclo for que tengo comentado era una prueba que me pareció
> interesante, pero no logro conseguir como implementarla.
>
> Lo que pasa con ese código es que tomo una clave, la randomizo y luego
> imprimo pero me da esto:
>
> ['Tu mama te quiere?', 'Cuanto es 1+1'] ['a: si', 'b: no', 'c: tal vez']
>

No se si entiendo bien tu problema, pero si necesitas que el programe haga
una pregunta al azar y de las opciones de respuesta de las mismas sería
algo así:

clave = random.choice(claves) # en clave dejo la pregunta al azar
print "La pregunta es:", clave, "Las opciones:", preguntas_respuestas[clave]
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120509/6f694c3c/attachment.html>


More information about the pyar mailing list