viernes, 5 de octubre de 2012

Paradoja de Zenón y la piedra

Curiosamente, hace tiempo, me planteé una duda la cual era un tanto extraña... Mi duda era:"Si los decimales son infinitos, es decir, entre 1,1 y 1,2 hay 1,11-1,12 y entre estos dos hay 1,111-1,112 y así infinitamente. Lógicamente si yo quiero recorrer una distancia de A hasta B, primero, tendré que recorrer la mitad de ese tramo, pero antes, tendré que recorrer la mitad de ese tramo, y antes, la mitad de ese tramo, así, infinitamente. Entonces quiere decir,¿nunca llegaré a B, empezaré a andar infinitamente?". Entonces ayer decidí plantear la duda a mi profesora de matemáticas y me explicó esto de la paradoja de Zenón, que casualmente se preguntó lo mismo que yo en el 490 a.C (creo que es esa fecha) y se descubrió que la suma de esas mitades daba la cantidad de 1. En fin me pareció interesante escribirlo aquí ya que hace mucho que no lo hago.

Saludos!

domingo, 5 de febrero de 2012

Manejo de archivos[Python]

Aquí va el primer miniartículo de la revista, como dice en el título manejo de archivos mediante la función open.

Bueno, la función open toma como parámetros el archivo a abrir y el modo, es decir, lectura, escritura, etc.

Sería así:

#!usr/bin/env python

open('archivo.txt', 'r')

Con este código se abriría al archivo 'archivo.txt' en modo de lectura.
Los parámetros son estos:
'r' - Modo lectura ('r'ead), si no existe el archivo nos salta una excepción IOError
'w' - Modo escritura ('w'rite), se abre el archivo para poder escribirlo, si no existe se crea. Además    
       sobreescribe las cosas en el archivo, es decir, las borra y escribe las nuevas.
'b' - Abre el archivo en modo binario ('b'inary)
'a' - Modo añadir('a'ppend), abre el archivo en modo w, es decir, modo escritura. Pero este en cambio no    
       sobreescribe sino que escribe las cosas al final del archivo.

Bien ahora veamos los métodos que tiene open para manejar archivos:
Métodos relacionados al parámetro 'r':
Método read:
 Su nombre lo indica todo...(leer :-p)

    abrir = open('archivo.txt', 'r') #abrimos el archivo en modo lectura
    leer = abrir.read() #leemos el archivo
    print leer #y mostramos por pantalla lo leído

Método readline:
Lee las líneas del archivo una por una:
    abrir = open('archivo.txt', 'r') #abrimos el archivo en modo lectura
    leer = abrir.readline() #leemos el archivo linea a linea
    print leer #y mostramos por pantalla lo leído

Método readlines:
Lee las líneas pero devuelve una lista con cada una de ellas es decir:
Tenemos un archivo.txt:
    hola
    adiós
    hasta luego

Y el código python:
    abrir = open('archivo.txt', 'r') #abrimos el archivo en modo lectura
    leer = abrir.readlines() #leemos el archivo
    print leer #y mostramos por pantalla lo leído

Python nos mostrará:
 ['hola\n', 'adiós\n', 'hasta luego']

Métodos relacionados al parámetro 'w' y 'a':
Nota*: El método write pierde la capacidad de sobreescribir(borrar lo escrito y escribir algo nuevo) cuando especificamos el parámetro 'a'.

Método write:
Escribe en el archivo tomando como parámetro una cadena y la sobreescribe.(Como explique antes si ponemos de parámetro 'a' pierde la capacidad de sobreescribirse)

Ejemplo:
 abrir = open('archivo.txt', 'w')
 escribir = abrir.write('bon dia')

Método writelines:
Escribe el archivo tomando como parámetro una cadena pero no la sobreescribe sino que la pone al lado:

abrir = open('archivo.txt', 'w')
escri = abrir.writelines('bon dia')

¿Qué pasa si quiero añadir un salto de línea?, pues añadimos \n.
abrir = open('archivo.txt', 'a')
escri = abrir.writelines('bon dia'+'\n')


Métodos relacionados con el parámetro 'b':

Se utiliza normalmente para el manejo de datos externos a tu ordenador, datos ftp, http, tcp/ip, etc.



En fin, esto es todo!

Un saludo a todos!!!








Revista...

Bien, a partir de ahora, haré miniartículos sobre funciones,métodos y eso....en python.
¿La idea?, que aprendan a manejar cualquier cosa con este lenguaje.
Espero que lo desfruten!!

Saludos!!

domingo, 29 de enero de 2012

Minitutorial recoger datos de cmd [Python]

En algunos exploits veréis que os dice en las instrucciones: 

 Modo de uso:  exploit.py <loquesea> <loquesea>

Y supongo que os habréis preguntado como hace python para recoger esos datos que tu introduces ahí.
Bien pues os lo explico que es muy facilito.
Existe una librería llamada sys para manejar con cosas del sistema de ahí viene su nombre(sys - system).
Una de esas cosas es recoger datos de la linea de comandos de cmd. ¿Cómo se hace esto?, pues con 
el método argv...

Os lo explico paso a paso:
 
#!/usr/bin/env python

import sys #importamos la librería sys

host = sys.argv[1] #bien, aquí es donde se recogen los datos: el método argv #contiene un array con los datos que tu introduzcas, en este caso se asignará al #segundo dato del array el string que vaya después de exploit.py  (el primer dato #sería exploit.py y el segundo lo que hayamos introducido sys.argv =
#['exploit.py','loquehayasintroducido'])
print host # nos imprimiria sys.argv[1] que es lo que hayamos introducido

Bueno esto es, no es más porque es muy fácil ^^ 

Un saludo!!