Python Mania

consolas web de python

Posteado por: Daniel Fuentes B. en: agosto 8, 2010

Me encontré con estos sitios que te permiten usar una consola python via web y ver la salida que produce, puede ser útil para algunas pruebas rápidas.

Estos dos te muestran el interprete y la salida que produce de forma interactiva:

Mientras que estos otros dos nos permiten escribir un script y luego probar como funciona:

Obviamente por motivos de seguridad tienen algunos modulos algo capados, pero pueden resultar útiles :)

En esta parte del tutorial se va a simular el lanzamiento de un proyectil (una esfera), para mostrar las siguientes temas:

  • Rellenar el fondo con un color especifico
  • Dibujar lineas en la pantalla
  • Dibujar un circulo
  • Sincronizar el movimiento usando tiempo

A continuación la explicación (aunque es recomendable que hayan leído la parte anterior antes de seguir):

Leer el resto de esta entrada »

Cambiando el user-agent de urllib

Posteado por: Daniel Fuentes B. en: abril 13, 2010

Hace algunos días necesitaba cambiar el user agent de urllib (o sea como se identifica urllib al abrir una pagina web) para usarlo en mi script para bajar archivos desde goear. El problema es que normalmente a algunos sitios como google o la wikipedia no les gusta que uno use otras cosas que nos sean navegadores validos para ver sus paginas.

Por ejemplo al hacer una búsqueda en google:

from urllib import urlopen
pag = urlopen("http://www.google.com/search?q=python")
print pag.read()

Nos responde mucho texto (en realidad es el html de una pagina de error), que nos dice :
[...]<H1>Forbidden</H1>Your client does not have permission to get URL <code>/search?q=python</code> from this server.[...]

Ahora si abrimos el interprete en modo interactivo y hacemos:

>>> from urllib import URLopener
>>> URLopener.version
'Python-urllib/1.17'

Vemos que por defecto urllib se identifica al abrir alguna pagina (o sea su user-agent) es “Python-urllib/1.17″.

Para cambiarlo por otro valor, consultamos la documentacion de python que nos dice:

To override this functionality, programmers can create a subclass of URLopener or FancyURLopener, then assign an instance of that class to the urllib._urlopener variable before calling the desired function.

Con esto en mente hacemos una pequeña clase que hace el cambio, en donde le señalamos un nuevo user agent (en el ejemplo voy a usar el de IE7, aunque si quieren otros pueden buscar por aquí), quedando el ejemplo de esta manera:

from urllib import FancyURLopener

class MyOpener(FancyURLopener):
    version = 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)'

myopener = MyOpener()
pag = myopener.open("http://www.google.com/search?q=python")
print pag.read()

Y ahora si nos responde (nos muestra el html de la pagina) con un lindo:
[...]Results <b>1</b> - <b>10</b> of about <b>36,400,000</b> for <b>python</b> [...]

Claro que se puede usar con cualquier otro metodo de urllib, como por ejemplo con retrieve (para descargar la pagina con los resultados de la búsqueda, en vez de ver el html):

from urllib import FancyURLopener

class MyOpener(FancyURLopener):
    version = 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)'

myopener = MyOpener()
myopener.retrieve("http://www.google.com/search?q=python", "resultados.html")

Divertido, ¿o no?

Etiquetas:

Tutorial Pygame 3: creando un videojuego (el clasico pong)

Posteado por: Daniel Fuentes B. en: abril 7, 2010

Ok, es tiempo de continuar con esta serie de tutoriales de pygame. Si recuerdan en el tutorial anterior cargamos unas imágenes y las mostramos en pantalla, haciendo que se movieran. Ahora vamos a avanza un poco, programando uno de los juegos mas sencillos que pueden existir, el clásico pong.

En esta parte trataremos los siguientes puntos:

  • Crear una función para cargar imágenes
  • Como crear sprites (los sprites son personajes, objetos, etc. dentro del juego)
  • Sincronización de elementos en los videojuegos (¿que son frames por segundo?)
  • Controlar un sprite con el teclado
  • Controlar un sprite con el mouse
  • Colisiones entre elementos (sprites)
  • Inteligencia artificial (o la falta de esta)
  • reproducción de sonidos (al cumplirse alguna condición)

Leer el resto de esta entrada »

Etiquetas: ,

Tutorial Pygame 2: creando una ventana, cargar imagenes y moverlas

Posteado por: Daniel Fuentes B. en: marzo 25, 2010

En esta segunda parte del tutorial veremos los siguientes temas:

  • Como crear una ventana
  • El bucle principal de un videojuego (o como saber cuando hay que terminar el juego)
  • Usar una imagen como fondo
  • Mostrar una imagen y mover la imagen en la pantalla

A continuación la explicación completa
Leer el resto de esta entrada »

Etiquetas: ,

Tutorial pygame 1: introducción a la programacion de videojuegos

Posteado por: Daniel Fuentes B. en: marzo 23, 2010

Hace tiempo que quería escribir una entrada sobre el uso de pygame para programar juegos. Así que ahora voy a hacerlo en una serie de entradas sobre este tema (aun no estoy seguro de cuantas serán), por lo que esta servirá de introducción e índice (o sea la Parte 1 de este tutorial).
Leer el resto de esta entrada »

Etiquetas: ,

Caregorías

Otros

Porque no todo es escribir en el blog.



Perfil en ohloh:

Ohloh profile for Daniel Fuentes B.


Mi cuenta en identi.ca:

identi.ca

Archivo

Seguir

Get every new post delivered to your Inbox.