Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: SlayerBur en 7 Junio 2016, 19:38 pm



Título: Random - Python [Modificado]
Publicado por: SlayerBur en 7 Junio 2016, 19:38 pm
Hola.

Buen día/tarde/noches, o a la hora que lean esto :P

Mi duda esta en como utilizar en Python, en utilizar el "Random", o alguna manera de poder hacer que al colocar por ejemplo 1, pueda salir como respuesta (En print), número ya sea el 1,5,9, o otro número que haya escogido.

Estoy utilizando el Python en Ninja-IDE, por si es de alguna utilizad...

Gracias de antemano :D

Edito:

Logre encontrar la manera, luego de mirar en casi 120 paginas (sin exagerar, estuve 3 horas mirando paginas..)

Y encontré esto:

Lista = ["Palabra1","Palabra2","Palabra3","Palabra4","Palabra5"]
ListaRes = random.choice(Lista)


Logre adaptarlo para que funcione, pero tengo un problema... Coloco el comando, y siempre sale lo mismo, la única manera para que cambie el resultado, es cerrando y abriendo el programa...
PD: Intente con números, y el resto de los random.otros (otros son el resto de los que hay)

y siempre me pasa lo mismo.. intente hacerlo con una "Def", pero tampoco...

¿Alguna idea, base o pagina en la que pueda ver mejor su funcionamiento?
No pido que me lo hagan, simplemente una idea, o base para hacerle :/


Título: Re: Random - Python [Modificado]
Publicado por: tincopasan en 8 Junio 2016, 12:09 pm
no entiendo que querés hacer porque no has puesto todo el código que te da problemas, ahora suponiendo que quieres elegir varias palabras podés crear una lista nueva y poner alli las elegidas sin repetir. por ejemplo:
Código
  1. #-*- coding:utf -8 -*-
  2. import random
  3. palabras = ['palabra1', 'palabra2', 'palabra3', 'palabra4', 'palabra5',
  4.           'palabra6', 'palabra7', 'palabra8', 'palabra9', 'palabra10']
  5. norepetir=[]
  6. for elegidas in range(5):
  7.    elegida = palabras[random.randint(0, 9)]
  8.  
  9.    if not elegida in norepetir:
  10.        print('Aleatorias', elegidas + 1, ':', elegida)
  11.        norepetir.append(elegida)  
  12.  
por supuesto que este ejemplo no está correcto del todo pero si funcional para que te sirva de ayuda,si es otra cosa lo que buscás, poné el código como ya te dije.
ahhh y buscaste 3hs, a veces buscamos más y no encontramos la respuesta,no es fácil soplar y hacer botellas.


Título: Re: Random - Python [Modificado]
Publicado por: SlayerBur en 9 Junio 2016, 00:17 am
Lo que quiero lograr, es hacer un programa (por consola), que cuando le hables, te responda. Algo parecido a Cleverbot, o algo así.

Tengo esto:

texto = raw_input("")

# -----------------------

HolaR = ["Hola", "Buen dia", "Buenas tardes", "Hola. Como estas?"]
HolaR2 = random.choice(HolaR)

# ------------------------

    if texto == hola:
        print HolaR2

Cuando escriba: hola, quiero que salga un mensaje aleatorio entre: Hola, Buen día, Buenas tardes, Hola. ¿Como estas?.

Y logro que salga aleatoriamente, pero solo cuando inicio el programa.

Si abro el programa, y coloco "Hola", me responde una palabra aleatoria entre ellas, pero si coloco "Hola" nuevamente, me sale el mismo texto, quiero lograr que cada vez que coloque hola, salga aleatoriamente, solo cambia cuando cierro el programa, y lo ejecuto nuevamente..

No se si me explico correctamente..
El código de arriba esta resumido, la única diferencia, es que tengo muchos mas elif texto == hola:
y nada mas..


Título: Re: Random - Python [Modificado]
Publicado por: tincopasan en 9 Junio 2016, 04:47 am
anda a saber como tenés el código,este que usa la misma sentencia de random anda
Código
  1. #-*- coding:utf -8 -*-
  2. import random,time
  3.  
  4. Hola = ["bok", "bonjour", "guten tag", "salve","hei ","buon giorno","hi"]
  5.  
  6.  
  7. for i in range(20):
  8.    n=input(">> ")
  9.    if n == "hola":
  10.        respuesta = random.choice(Hola)
  11.        print(respuesta)
  12.    else:
  13.        print("Chau")
  14.        break

ahora, puede repetir palabras, es elección aleatoria.


Título: Re: Random - Python [Modificado]
Publicado por: SlayerBur en 9 Junio 2016, 17:10 pm
Eso es lo que necesitaba! :D
Muchas gracias :)

Aun que me costo un poco darme cuenta la parte del: input(">> "), quede pensando..,
yo utilizo el raw_input, que fue como lo aprendí jeje

En fin, ya logre hacer lo que quería :). Gracias