Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Once

#201
Off Topic / Re:Que me recomendais
Marzo 26, 2014, 03:40:43 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Algún editor de texto para php en linux en windows notepad++ creo que se puede emular con wine pero no va lo mismo sabes alguno?

Gracias :D

Para JavaScript, CSS y HTML te recomiendo Brackets You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Para php, prueba Bluefish You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos!
#202
Python / Re:Archivos sin uso en un proyecto
Marzo 07, 2014, 12:44:45 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
edit: modifique el código con tus consejos, solo me quedo la duda del "with" , no sé bien para que sirve , le preguntare a google xD

En este caso lo que hace es abrir el archivo bajo el alias file y una vez se sale del bloque del with, el mismo se encarga de cerrar el archivo.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos!
#203
Python / Re:Archivos sin uso en un proyecto
Marzo 06, 2014, 10:57:48 PM
Muy buena idea brother, nunca se me ocurrió hacer un script para esto.

Con respecto al script, te puedo hacer un par de observaciones (espero no te molesten).

1. Puedes evitar tantos or a la hora de verificar la extensión de script de esta manera:

Código: python

ext = f.split(".")[-1]  # Obtienes la extension del archivo
if ext in ("jpg", "gif", "png", "swf", "jpeg", "pdf"):  # Y verificas si está en la lista de las extensiones "permitidas"


Además puedes agregar o eliminar una extensión modificando sólo la lista de las extensiones permitidas.

2. Cuando haces:

Código: python

                        for texto in file.readlines():
                                texto2 += texto.upper()
                        file.close()
                        for i in img:
                                if (texto2.find(i.upper()) > 0):
                                        en_uso.append(i)


Por cada línea del archivo recorres la lista de imágenes.

Lo mejor sería usar read() en lugar de readlines() para leer todo el archivo de una vez y ahí sí, recorrer y comprobar la lista de imágenes. Algo así.

Código: python
with open(f, "r") as file:
                texto2 = file.read().upper()
                for i in img:
                    if (texto2.find(i.upper()) > 0):
                        en_uso.append(i)


3. No es buena idea comparar los archivos en mayúsculas. En Windows no es problema, pero en Linux Archivo.png y archivo.png no son el mismo archivo.

Saludos!
#204
XFCE4 sin duda.

Saludos!
#205
Python / Re:[TPC-C] #2 Cifrado de Vigenère
Febrero 24, 2014, 08:30:56 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
CitarSe deben respetar los caracteres no alfabéticos.
No se supone que el algoritmo debía tener en cuenta cualquier tipo de resultado? es decir, si se contempla el uso de carácteres no-alfabéticos todo el resultado cambia

Se suponía que se deben respetar los caracteres no alfabéticos y no se tiene en cuenta la letra ñ lo que significa que si hay un caracter que no es alfabético ese caracter simplemente no se cifra.

La única forma que el resultado cambie es si se cambian las letras del alfabeto de posición o si se agrega la ñ

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
pero la implementación del algoritmo sigue siendo válida, no porque no obtengan una misma salida quiere decir que el cifrado en sí este mal.

El hecho que hagas un par de sumas y un módulo no significa que la implementación está bien. Lee de nuevo como funciona el cifrado Vigenere y verás que tu código no es un Vigenere.

Y sí, si las salidas no son las mismas cuando cuando la clave y el mensaje son los mismos, significa que el cifrado está mal.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
En mi opinión mi única sugerencia hacia los retos que se proponen es que sean más claros a la hora de publicarlos

Eso es un hecho, para los próximos retos intentaremos ser lo más claros posibles.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
y que a ser posible cuando se envien los scripts junto con alguna duda, esta pueda ser respondida...

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Nota: Todas las dudas acerca del reto, deberán realizarse en este mismo hilo.
#206
Python / Re:[TPC-C] #2 Cifrado de Vigenère
Febrero 24, 2014, 02:20:59 PM
Resultados:

Los códigos se evaluaron usando los siguientes parametos:

Mensaje: Retos python Underc0de.
Clave: undercode

Resultado: lrwsj rmwlia xrugff0hy.

11Sep

Código: python
def iter_key(s):
    i = 0
    while True:
        yield s[i % len(s)]
        i += 1
   
def vigenere(key, msg, cipher=1):
    key = iter_key(key.lower())
    msg = msg.lower()
   
    buffer = ""
   
    if cipher:
        for byte in msg:
            if "a" < byte < "z":
                buffer += chr((((ord(byte) - 97) + (ord(key.next()) - 97)) % 26) + 97)
            else:
                buffer += byte
    else:
        for byte in msg:
            if "a" < byte < "z":
                buffer += chr((((ord(byte) - 97) - (ord(key.next()) - 97)) % 26) + 97)
            else:
                buffer += byte

    return buffer


print vigenere("undercode", "Retos python Underc0de.", cipher=True)


Salida: lrwsj rmwlia xrugff0hy.

No cumplen las condiciones:

Sanko

Código: python
def vigenere(s, k, z=True):
        tchr,tord = chr,ord

        if z:
                print [tchr((tord(x[0]) + tord(x[1])) % 256) for x in zip(s, k)]
        else:
                print [tchr((tord(x[0]) - tord(x[1])) % 256) for x in zip(s, k)]


Salida: ['\xc7', '\xd3', '\xd8', '\xd4', '\xe5', '\x83', '\xdf', '\xdd', '\xd9']

deni_celine

Código: python
class Vigenere:
    '''Clase que permite codificar y decodificar msj haciendo uso del  Cifrado vigenEre '''
   
    def __init__(self,valor="undercode"):
        '''Inicializa la clase y la clave'''
        self.k=valor
   
    def codificar(self,msj):
        '''Retorna el mensaje cifrado'''
        key=''.join([self.k[i%len(self.k)]for i in range(len(msj))])
        return ''.join([chr(97+(ord(msj[i])+ord(key[i])-194)%26)if(123>ord(msj[i])>96)else msj[i]for i in range(len(msj))])
   
   
    def decodificar(self,msj):
        '''Retorna el mensaje decodificado'''
        key=''.join([self.k[i%len(self.k)]for i in range(len(msj))])
        return ''.join([chr(97+(ord(msj[i])-ord(key[i])+26)%26)if(123>ord(msj[i])>96)else msj[i]for i in range(len(msj))])
   
# fin clase

#ejemplo de uso
vigenere = Vigenere("undercode")

msj = "Retos python Underc0de."
codificado = vigenere.codificar(msj)
print "Msj codificado :", codificado
print "Msj decodifica :",vigenere.decodificar(codificado)


Salida: Rrwsj dbxbbq Uprhvw0gi.

79137913

Código: python
def vigenere(a, b):
    d = []
    h = 0
    g = ""
    for c in b.lower():
        d.append(ord(c)-97)
    e = len(d)
    for c in a.lower():
        f = ord(c)
        if f < 97 or f > 122:
            g = g + c
        else:
            f = f + d[h]
            h = h + 1
            if h == e:
                h = 0
            if f > 122:
                f = f - 26
            g = g + chr(f)
    return g


Salida: lrwsj rmwlia xrugff0hy.
Nota: Cifra correctamente el mensaje, pero no lo descifra


Ganador:
Sin ganadores.


Saludos!
#207
Desde Python 2.5 el módulo md5 quedó obsoleto (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login)

Lo que tienes que hacer es cambiar el
Código: python
import md5

por
Código: python
import hashlib


Y cambiar todos los
Código: python
md5.new

por
Código: python
hashlib.md5




Saludos!
#208
Python / Re:Detectar Unidades (HDD o FlashDrives)
Febrero 20, 2014, 12:01:46 PM
Muy bueno el código brothe, aparte de lo que te acaba de decir Sanko, te hago una observación más.

Cuando usas el for, no tienes que usar un contador entero (como sí se hace en los while) porque el for ya lleva la cuenta. Y si lo que haces es recorrer una lista como en tu caso, no es necesario que hagas esto: listdrives ya que la variable drive que definiste para el for tiene esa misma información; por lo que puedes cambiar el listdrives por drive

en lugar de:

Código: python
if (file.GetDriveType(listdrives[i])) == 2:


puedes poner:

Código: python
if (file.GetDriveType(drive)) == 2:


Y te evitas el contador.

Saludos!

Código: python
#209
Python / Re:[TPC-C] #2 Cifrado de Vigenère
Febrero 17, 2014, 05:36:32 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Holaaaa , tengo una duda respecto a este reto, o mejor dicho respecto a los criterios de evaluación :3
uno de los puntos dice : "Número de librerías utilizadas: será mejor la calificación mientras menos librerías se requieran para cumplir el o los objetivos."
Pero en enlaces de ayuda hacen mensión a Itertools , que es mejor evaluado, hacer uso de la libreria o no hacerlo ?

Saludos :P

Aprovechando tu pregunta e intentando responder a un mp que merecibí preguntando algo similar, intentaré explicar como evaluamos los codes.

La calificación es así:

Se separan los códigos que cumplen las condiciones y lo que no las cumplen.

Si más de un código cumple todas las condiciones se evalua la velocidad de ejecución de los scripts. Si empatan o los tiempos de ejecución.

Si los tiempos de ejecución son muy cercanos, se declara empate y pasamos a evaluar los criterios que mencionamos en el prime post.

Con respecto a tu pregunta, tienes que pensar si vale la pena codear toda un función entera y depronto sacrificar algo de tiempo (a veces puedes codear funciones más rápidas) o simplemente usar una libreria.

Lo que no calificamos es la longitud del código, así los participantes son libres de tener en cuenta todos los aspectos y no se tienen que preocupar por hacer "maromas" para tener el código más corto (para eso tenemos los retos relámpago).

En los retos relámpago, la única regla es que se cumplan TODOS los requisitos que se piden para cada reto en especial. (No se tiene en cuenta la evaluación de arriba).

Saludos!
#210
¿Cuántas más tablas tienen que sufrir antes de que los programadores aprendan su lección?

Saludos!
#211
Dudas y pedidos generales / Re:ayuda
Febrero 08, 2014, 03:45:54 AM
Lo que estas haciendo es contar la cantidad de caracteres por línea no la cantidad total de líneas. Para lo que necesitas, sólo debes hacer un len() a la tupla que te regresa split() y no recorrerla como lo estás haciendo

Código: python
f = open("1.txt","r")

print len(f.read().split("\n"))

f.close()


O para no usar el split, puedes usar el método readlines:

Código: python

f = open("1.txt","r")
print len(f.readlines())
f.close()


Saludos!
#212
Python / Re:[TPC-R] #1 Fibonacci
Febrero 07, 2014, 04:16:37 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
excelente! tendre en cuenta  esa técnica tb. me gusta esta forma de aprender :D

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
HOLA!!!

Que bueno!

Yo encontre el algoritmo.

deni nos enseño esa tecnica de excec"func"*n

y 11Sep nos enseño como agregar items a listas sin append.

GRACIAS POR LEER!!!

Claro, la idea de los retos más que competir es encontrar diferentes formas de solucionar el mismo problema y encontrar nuevas formas para sacar el mayor provecho al lenguaje. Una forma más dinámica de aprender.

Saludos!
#213
Python / Re:[TPC-R] #1 Fibonacci
Febrero 07, 2014, 01:49:53 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
6 caracteres noo  :'( jajja congratulations al que ganó
edito: estaba mirando el código de 79137913 y es mucho mas eficiente q el mio y_y, le hice una humilde modificación para haceerlo mas inentendible xD . Salu2
Código: python
def f():l=[1,1];exec"l.append(l[-1]+l[-2]);"*98;return l


Muy bueno bro, muy ingeniosa la forma en que usas la multiplicación de strings Pero aún se pueden ahorrar un par de caracteres si en lugar de usar .append() se usa la concatenación de listas:

Código: python
def f():l=[1,1];exec"l+=[l[-1]+l[-2]];"*98;return l


Saludos!
#214
Python / Re:[TPC-R] #1 Fibonacci
Febrero 07, 2014, 02:29:58 AM
No cumplen las condiciones:

Usuario: Bladeyer
Caracteres: 198
Código: python
from math import *
def fib(n):
if n <= 70:
return floor((((1 + sqrt(5))/2)**n)/sqrt(5) + 0.5)
else:
return fib(n-1) + fib(n-2)

def funcion():
    print([fib(i) for i in range(101)])
funcion()


Usuario: Sanko
Caracteres: 75
Código: python
print int((((1 + 5**0.5) / 2)**100 - (1-((1 + 5**0.5) / 2))**100) / 5**0.5)


Usuario: Juan
Lenguaje: Perl

Código: perl

# Juan

my $n0 = 0;
my $n1 = 1;

print "$n0\n$n1\n";

for my $numero (0..100)
{
    my $resultado = $n0 + $n1;

print "$resultado\n";

$n0 = $n1;
$n1 = $resultado;
}


Cumplen las condiciones

Usuario: deni_celine
Caracteres: 78

Código: python
def f():g=lambda n:1if(n<2)else(g(n-1)+g(n-2));return[g(i)for i in range(100)]


Usuario: 79137913
Caracteres: 72

Código: python

def a():
b = [1,1]
for x in range(98): b.append(b[-1]+b[-2])
return b


Ganador
79137913
72 caracteres
#215
Python / Re:[TPC-R] #1 Fibonacci
Febrero 06, 2014, 11:20:23 AM
Recibidos hasta ahora un par de codes!  No olviden que hoy cierra el reto.

Saludos!
#216
Python / [TPC-R] #1 Fibonacci
Febrero 05, 2014, 12:15:07 AM

The Python Challenges
N°1 Fibonacci
Relámpago




Los retos relámpago son retos que no necesariamente siguen la temática de los retos principales. Tampoco se evaluan los códigos bajo los mismos criterios.

El código ganador es el primero que cumpla con TODAS las condiciones establecidas.

Las condiciones de todos los retos relámpago (a menos que se indique lo contrario en un reto específico) son las siguientes:


  • Cumplir todas y cada una de las condiciones establecidas para el reto.
  • Sólo se acepta un código por participante (el primero que se envíe).
  • Los usuarios descalificados del reto principal de la semana, no se tiene en cuenta en la puntuación de los retos relámpago de esa misma semana.
  • Bajo ninguna circunstancia se publican los códigos en el hilo del reto.
  • Si hay límite de tiempo para el reto, o si finaliza el tiempo del reto principal y ningún código cumple con todas las condiciones se cierra el reto sin ganadores.

Sucesión Fibonacci

En este reto el objetivo es codear una función que regrese una lista con los primeros cien números de la serie Fibonacci comenzando desde el uno

Condición
El código ganador será el más corto que cumpla con el objetivo.

El plazo máximo de entrega es para el Jueves 6 de Febrero.


Los códigos deben ser enviados por mp a los moderadores (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login) con el siguiente asunto: [TPC-R] #1 (Debido a la cantidad de códigos que nos llegan)

Happy coding

#217
Python / Re:[TPC-C] #1 Cifrado César
Febrero 01, 2014, 05:28:46 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Jajaja sip eso me parecía raro que los publicaran. Puedo enviar una version 0.2 ? Mis funcipnes estan bien pero el resto del código q envíe apesta xd

Claro, pero ten en cuenta que el código que evaluamos es el último que nos envíen (Pero no abusen de nosotros :p).

PD: Espero se estén divirtiendo porque se vienen un par de sorpresas.

Saludos!
#218
Python / Re:[TPC-C] #1 Cifrado César
Febrero 01, 2014, 02:31:46 PM
Creo que está clalro que es un reto y los códigos NO se publican. A KrossPock no se le descalifica simplemente porque el código está publicado en foro desde antes del inicio del reto.

Saludos!
#219
Python / Re:[TPC-C] #1 Cifrado César
Febrero 01, 2014, 01:13:56 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Otra pregunta: La devolucion del texto cifrado puede contener mayusculas? Osea digamos que cifro You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y me devuelve dvgCdvg1frp esa C que esta en negrita, esta permitida? o el texto cifrado tambien tiene que estar en minusculas?

Nop, esa C no está permitida, la salida deberia ser: [email protected] (la @ y el . no se modifican, pero el resto sí) la salida debe ser en minúsculas pero la entrada puede ser de cualquier tipo. You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login deben dar la misma salida: [email protected]

Saludos!
#220
Python / Re:[TPC-C] #1 Cifrado César
Febrero 01, 2014, 12:19:18 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Otra pregunta, el espacio se respeta no?, osea no hay que cifrarlo.

Programo hace dos dias en python, y solo se hacer programacion estructurada, pero veamos que sale jaja

Claro, los espacios se respetan también :P

Si no logras codear las funciones (aunque en Python no es difícil) no hay problema con que nos envíes dos scripts, uno para cifrar y el otro para descifrar.

Saludos!