elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: [1]
1  Programación / Scripting / Hacer una operacion que esta en una string. en: 13 Diciembre 2015, 21:32 pm
Hola, mi pregunta es como puedo hacer la operación que esta almacenada en una variable que es de tipo string, por ejemplo, si la variable "multi" tiene como valor 10*3 es decir que si hacemos
Código:
print multi
nos sale 10*3
El 10*3 sale de un fichero de texto llamado datos.txt que seria algo asi:
Código:
10*3
2*9
6*3
12*10

y el codigo (sin acabar del .py) seria:
Código:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#juego.py
import math
import os.path
import linecache


if os.path.exists('datos.txt'):
adelante = 1
else:
adelante = 0
print "No existe datos.txt."
exit()

if adelante == 1:
el = 1
intentos = int(raw_input('Intentos: '))
tlineas = len(open('datos.txt').readlines())
linea = linecache.getline('datos.txt', el)
multi = str(linea)
print type(multi)
user = int(raw_input('cuanto da?: '))
#multi es elresultado de la operacion, puede ser asignada otra variable
if user == multi:
print "Acierto"
else:
print "Error"
intentos += 1
lo que necesitoes que me haga la multiplicacion de la string.

MIL GRACIAS :laugh: :laugh:
2  Programación / Scripting / Re: Ayuda con python (Barras de progreso). en: 10 Diciembre 2015, 16:07 pm
Pero como lo harías tu? Sigue sin salirme, lo ejecuto con 2.7 y me funciona todo
3  Programación / Scripting / Re: Ayuda con python (Barras de progreso). en: 10 Diciembre 2015, 13:59 pm
1) ¿dónde está el código que intentaste de la barra?
2)hay varias formas de hacerlo ya sea en consola o en modo gráfico
3)en modo consola  sería algo asi: "***********" barra vacía y "######****" barra en progreso
el porcentaje de progreso se obtiene de forma matemática por ej: vacia= 0  total=90 palabras
hechas=?  porcentaje que se lleva es = ? x 100 / total (una simple regla de  3)
4) en modo gráfico depende que módulo uses: TK, GTK,etc


El módulo que estoy usando es Pyprind,
Y el codigo al que le quiero añadir la barra es:
Código:
#v2.0

#imports
import time

#Variables de input
car=raw_input("Caracteres a usar: ")
length=int(raw_input("\nMaximo numero de caracteres: "))
name=raw_input("\nExtension y nombre de archivo: ")

#Ejecutando
tic = time.clock()
print ("Ejecutando, espera");
lista=[0 for x in xrange(length)]
x=length-1
string=car
list_of_results=[]
file1=file(name,"w")
while(x>-1):
    result=""
    if lista[x]==len(string)-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]=0
        x-=1
    elif x==length-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
    else:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
        if x>0:
            x+=1
        else:
            x=length-1
#Escribiendo en el fichero
    print result
    file1.write(result+"\n")
toc = time.clock()
ttn = toc - tic
print ("Finalizado en "+str(ttn)+" segundos.");
print ("Revisa "+str(name)+" en tu directorio.");
#v2.0
4  Programación / Scripting / Re: Ayuda con python (Barras de progreso). en: 9 Diciembre 2015, 22:26 pm
Crees que habría que cambiar el módulo o de modulo?

Hola y gracias por contestar, pero sigo sin entenderlo, el codigo que use, lo puse aparte en un modulo, y no esta ahi, el codigo para la barra de progreso es (modulo.py):
Código:
import sys
import time

class ProgressBar(object):
    def __init__(self, start=0, end=10, width=12, fill='=', blank='.', format='[%(fill)s>%(blank)s] %(progress)s%%', incremental=True):
        super(ProgressBar, self).__init__()

        self.start = start
        self.end = end
        self.width = width
        self.fill = fill
        self.blank = blank
        self.format = format
        self.incremental = incremental
        self.step = 100 / float(width) #fix
        self.reset()

    def __add__(self, increment):
        increment = self._get_progress(increment)
        if 100 > self.progress + increment:
            self.progress += increment
        else:
            self.progress = 100
        return self

    def __str__(self):
        progressed = int(self.progress / self.step) #fix
        fill = progressed * self.fill
        blank = (self.width - progressed) * self.blank
        return self.format % {'fill': fill, 'blank': blank, 'progress': int(self.progress)}

    __repr__ = __str__

    def _get_progress(self, increment):
        return float(increment * 100) / self.end

    def reset(self):
        """Resets the current progress to the start point"""
        self.progress = self._get_progress(self.start)
        return self

class AnimatedProgressBar(ProgressBar):
    """Extends ProgressBar to allow you to use it straighforward on a script.
    Accepts an extra keyword argument named `stdout` (by default use sys.stdout)
    and may be any file-object to which send the progress status.
    """
    def __init__(self, *args, **kwargs):
        super(AnimatedProgressBar, self).__init__(*args, **kwargs)
        self.stdout = kwargs.get('stdout', sys.stdout)

    def show_progress(self):
        if hasattr(self.stdout, 'isatty') and self.stdout.isatty():
            self.stdout.write('\r')
        else:
            self.stdout.write('\n')
        self.stdout.write(str(self))
        self.stdout.flush()

if __name__ == '__main__':
    p = AnimatedProgressBar(end=100, width=80)

    while True:
        p + 5
        p.show_progress()
        time.sleep(0.1)
        if p.progress == 100:
            break
    print #new line

y el codigo que e actualizado para que me coja de ahi la barra es:
Código:
import time
import sys
from modulo import ProgressBar
p = ProgressBar()
car=raw_input("Caracteres a usar: ")
length=int(raw_input("Numero maximo de caracteres: "))
name=raw_input("Introduce el nombre del fichero con formato (.txt): ")
tic = time.clock()
print ("Ejecutando, espera");
lista=[0 for x in xrange(length)]
x=length-1
string=car
list_of_results=[]
file1=file(name,"w")
while(x>-1):
    result=""
    if lista[x]==len(string)-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]=0
        x-=1
    elif x==length-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
    else:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
        if x>0:
            print p+1
            x+=1
        else:
            x=length-1
file1.write(result+"\n")
toc = time.clock()
ttn = toc - tic
print ("Completado en"+str(ttn)+" segundos.");
print ("Revisa "+str(name)+" en el directorio");
es esto lo que me pides? si tucrees conveniente cambiar el codigo del modulo por otro o lo que sea... Pero gracias  :D
5  Programación / Scripting / Re: Ayuda con python (Barras de progreso). en: 9 Diciembre 2015, 17:29 pm
Hola y gracias por contestar, pero sigo sin entenderlo, el codigo que use, lo puse aparte en un modulo, y no esta ahi, el codigo para la barra de progreso es (modulo.py):
Código:
import sys
import time

class ProgressBar(object):
    def __init__(self, start=0, end=10, width=12, fill='=', blank='.', format='[%(fill)s>%(blank)s] %(progress)s%%', incremental=True):
        super(ProgressBar, self).__init__()

        self.start = start
        self.end = end
        self.width = width
        self.fill = fill
        self.blank = blank
        self.format = format
        self.incremental = incremental
        self.step = 100 / float(width) #fix
        self.reset()

    def __add__(self, increment):
        increment = self._get_progress(increment)
        if 100 > self.progress + increment:
            self.progress += increment
        else:
            self.progress = 100
        return self

    def __str__(self):
        progressed = int(self.progress / self.step) #fix
        fill = progressed * self.fill
        blank = (self.width - progressed) * self.blank
        return self.format % {'fill': fill, 'blank': blank, 'progress': int(self.progress)}

    __repr__ = __str__

    def _get_progress(self, increment):
        return float(increment * 100) / self.end

    def reset(self):
        """Resets the current progress to the start point"""
        self.progress = self._get_progress(self.start)
        return self

class AnimatedProgressBar(ProgressBar):
    """Extends ProgressBar to allow you to use it straighforward on a script.
    Accepts an extra keyword argument named `stdout` (by default use sys.stdout)
    and may be any file-object to which send the progress status.
    """
    def __init__(self, *args, **kwargs):
        super(AnimatedProgressBar, self).__init__(*args, **kwargs)
        self.stdout = kwargs.get('stdout', sys.stdout)

    def show_progress(self):
        if hasattr(self.stdout, 'isatty') and self.stdout.isatty():
            self.stdout.write('\r')
        else:
            self.stdout.write('\n')
        self.stdout.write(str(self))
        self.stdout.flush()

if __name__ == '__main__':
    p = AnimatedProgressBar(end=100, width=80)

    while True:
        p + 5
        p.show_progress()
        time.sleep(0.1)
        if p.progress == 100:
            break
    print #new line

y el codigo que e actualizado para que me coja de ahi la barra es:
Código:
import time
import sys
from modulo import ProgressBar
p = ProgressBar()
car=raw_input("Caracteres a usar: ")
length=int(raw_input("Numero maximo de caracteres: "))
name=raw_input("Introduce el nombre del fichero con formato (.txt): ")
tic = time.clock()
print ("Ejecutando, espera");
lista=[0 for x in xrange(length)]
x=length-1
string=car
list_of_results=[]
file1=file(name,"w")
while(x>-1):
    result=""
    if lista[x]==len(string)-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]=0
        x-=1
    elif x==length-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
    else:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
        if x>0:
            print p+1
            x+=1
        else:
            x=length-1
file1.write(result+"\n")
toc = time.clock()
ttn = toc - tic
print ("Completado en"+str(ttn)+" segundos.");
print ("Revisa "+str(name)+" en el directorio");
es esto lo que me pides? si tucrees conveniente cambiar el codigo del modulo por otro o lo que sea... Pero gracias  :D
6  Programación / Scripting / Ayuda con python (Barras de progreso). en: 8 Diciembre 2015, 23:35 pm
Hola, estoy haciendo un script para generar combinaciones de palabras con las letras mknusculas del abecedario y los números, me gustaría ponerle una barra de progreso en la que muestre lo que llevael programa echo Ej: si de las 100 combinaciones que tiene que hacer encuentra 50, que ponga 50%, pero soy incapaz de hacerlo, muchas gracias a todos de antemano.
Aquí va el programita.
Código:
import time
import sys

length=int(raw_input("Numero maximo de caracteres: "))
name=raw_input("Introduce el nombre del fichero con formato (.txt): ")
tic = time.clock()
print ("Ejecutando, espera");
lista=[0 for x in xrange(length)]
x=length-1
string="abcdefghijklnmopqrstuvwxyz1234567890"
list_of_results=[]
file1=file(name,"w")
while(x>-1):
    result=""
    if lista[x]==len(string)-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]=0
        x-=1
    elif x==length-1:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
    else:
        for z in xrange(length):
            result+=string[lista[z]]
        lista[x]+=1
        if x>0:
            x+=1
        else:
            x=length-1
    file1.write(result+"\n")
toc = time.clock()
ttn = toc - tic
print ("Completado en"+str(ttn)+" segundos.");
print ("Revisa "+str(name)+" en el directorio");
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines