Sie sind auf Seite 1von 47

PYTHON Y LAS BASES

DE DATOS
NUMERO 3
VPython
MóDulo para la
representacióon y
animación De
gráficos en 3D

Biblioteca
Python

MUNDO PYTHON
MUNDO PYTHON
Contenido
• AUTOR

• ¿QUE DEBERIAS SABER DE PYTHON?

• PYTHON Y LAS BASES DE DATOS

• WINAUDIT

• VPYTHON

• PYGAME

• CODIGO FUENTE (STARS)

• BIBLIOTECA PYTHON

• ENTREVISTA A RADICAL

• CURSO PYTHON

• ENLACES

• CONTACTO

• PUBLICIDAD

Numero 3 www.aprenderpython.com 1
MUNDO PYTHON
Hola a todos
Autor
Bueno la verdad no soy muy bueno para escribir, cual es la idea de haber
comenzado esta revista, reunir la comunidad mas grande de Programadores de
Python de habla, Español.
Como empezo esta iniciativa pues al buscar documentacion de Python no
encotramos mucha, pero si hay una gran cantidad de personas con conocimientos en
Python muy grandes que pueden compartir a esta comunidad que inicia, si eres un
programador y te consideras excelente lo invito a hacer sus aportes para esta
comunidad que inicia, hay muchos que tal vez no tienen idea de programacion y
mucho menos en Python la idea es que por medio de este medio poder difundir la
enseñanza de este lenguaje "que por cierto no es muy dificil de aprender" por eso lo
invito amigo lector a hacer su contribucion.
Con esta introduccion quiero invitarlo a participar en esta gran comunidad que inicia
ya son muchos los que se han registrado en el foro, el foro es la manera en que invito
a dar sus contribuciones tenemos una gran biblioteca y estamos en inicio de un foro
dedicado a los codigos fuentes tambien preguntas frecuentes y mucho mas, otra
manera en que lo invito a participar es enviando alguna noticia o articulo que
considere importente para el crecimiento de esta revista puede enviar su aporte a
este correo y lo estudiaremos y si es bueno lo publicaremos.
Este es el correo para cualquier inquietud, sugerencia o aporte que quiera brindar:
aprenderpython@gmail.com
Bueno como les decia yo invito tanto a novatos como expertos en la programacion de
Python a contribuir a esta comunidad que inicia tal vez no somos muchos pero con
sus aportes podemos hacer grande esta comunidad de difusion de Python, gracias a
que es software libre seguimos sus filosofia de hacer libre esta revista.
Disculparan el diseño de la misma pero como ven estamos iniciando, un saludo a
todos y
Bienvenidos.
Daniel Bermudez.

Numero 3 www.aprenderpython.com 2
MUNDO PYTHON
¿ QUE DEBERIA SABER
DE PYTHON ?
Python es un lenguaje de programación
orientado a objetos que puede ayudarlo
a hacer de dos a diez veces más rápido
las mismas cosas que se hacen en C,
C#, C++, Java, Perl, VisualBasic y otros.
Python puede se usado en casi todas las
formas de desarrollo de software, tanto
como lenguaje de desarrollo primario,
así como complemento para otros
lenguajes y herramientas.
9Python es el lenguaje de programación más popular del 2007 según el
Indice TIOBE. De acuerdo con (http://www.marcelor.com/2008/01/python-
es-el-lenguaje-de-programacion-mas-popular-del-2007-segun-el-indice-
tiobe.html), Python fue el lenguaje con mayor crecimiento en el 2007 con
un incremento del 2.04% desplazando por primera vez en la historia a Perl
y situándose en el 6to lugar del indice.
9Python no sólo es un lenguaje de scripting o un glue language. Es rápido,
cada parte es tan rubusta y escalable como C, C++ y C#, substancialmente
más fácil de aprender y usar que Java y mucho más límpio que Visual
Basic o Perl.
9Python viene con enorme soporte para librerías que hacen mucho de lo
que usualmente se gasta tiempo escribiendo usando otro lenguaje.
9Python se integra muy bién con código de C, C++, Java y .NET y con
objetos COM. Se puede usar para potencializar proyectos existentes.
9Python se puede aprender en unos pocos días, y puede, literalmente,
ahorrarle años de esfuerzo.

Numero 3 www.aprenderpython.com 3
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Si su programa de Python funciona só sólo
en Windows, usted lo prefiere, puede
acceder a bases de datos utilizando
Microsoft ADO del paquete a travétravés de
COM. Para obtener má más informació
información
sobre el uso de Python en Windows,
consulte la Python Programming on
Win32 , por Mark Hammond y Andy
Robinson (O'Reilly
(O'Reilly).
). ADO desde COM y
son especí
específicos de cada plataforma, y
este libro se centra en la plataforma
usando Python.. Sin embargo, en
http://adodbapi.sourceforge.net
http://adodbapi.sourceforge.net//
encontrará
encontrará una extensió
extensión útil de Python
que permite acceder indirectamente a
travé
través de ADO DBAPI.

La base de datos de la API Python


(DBAPI) 2,0
La biblioteca estándar de Python no viene
con una interfaz de RDBMS, pero hay
muchos libres. de terceros módulos de
Python que permiten su acceso a
programas de bases de datos específicas.
Tales módulos siguen en general el Python
API 2.0 estándar, también conocido como el
DBAPI para la mayoria de Bases de Datos.
Una nueva versión de la DBAPI
(posiblemente a ser conocido como 3,0) es
probable que aparezcan en el futuro, pero
actualmente no hay planes en firme o
calendarios para una.

Numero 3 www.aprenderpython.com 4
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS

Después de importar un módulo compatible


con DBAPI, llame a la función del módulo de Clases de excepción
conexión con los parámetros adecuados. Un DBAPI compatible con módulo
conectar devuelve una instancia de conexión, de suministros, excepción clases de
lo que representa una conexión con la base advertencia, error, y varias
de datos. En caso de suministrar metodos subclases de error. Advertencia
commit y rollback a una cantidad de indica anomalías tales como el
transacciones, un método para llamar a cerrar truncamiento de datos durante la
tan pronto como haya terminado con la base inserción. Subclases de error
de datos, y un metodo cursor, para devolver el indican los diversos tipos de errores
cursor. El cursor proporciona metodos y que su programa puede encontrar
atributos utilizados para las operaciones de la cuando se trata de la base de datos
base de datos. Un DBAPI compatible con el y la DBAPI compatible con las
módulo proporciona, excepción clases, interfaces del módulo del mismo. En
atributos descriptivos, fábrica de funciones y general, el código utilizado en una
descripción de los atributos de tipo. declaración es de forma:

Numero 3 www.aprenderpython.com 5
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Estilo de Parametros

Un DBAPI compatible con el mó módulo,


tiene un atributo paramstyle para
identificar el estilo de los marcadores
utilizados como marcadores de posició
posición
para los pará
parámetros. Insertar
marcadores en tales sentencias de SQL
que se pasa al metodo de curso de
casos, como mé método de ejecució
ejecución, para
utilizar en tiempo de ejecució ejecución
determinado por los valores de los
pará
parámetros. Digamos, por ejemplo, que
usted necesita para obtener las filas de
la tabla de base de datos sobre el
terreno donde ATABLE allá allá equivale al
valor actual de Python variable x.
try:
try: Asumiendo que el cursor se llama c
... ejemplo, podrí
podría realizar esta tarea
except module.Error,
module.Error, err:
err: mediante el uso de Python-
Python-la cadena de
... formato operador%, de la siguiente
para atrapar a todos los errores relacionados manera:
con la base de datos que usted necesita
manejar sin necesidad de terminar. c.execute ( "SELECT * FROM ATABLE
DONDE lejos% r = '%
Hilo de seguridad x)
Cuando un DBAPI obedece al mó módulo, tiene un
atributo threadsafety mayor que 0, el mó
módulo es Sin embargo, este no es el enfoque
la afirmació
afirmación de un cierto nivel del hilo de recomendado. Este enfoque genera una
seguridad para la interfaz de la base de datos. cadena de declaració
declaración para cada valor
En lugar de basarse en esto, es má más seguro y de x, que requieren esas declaraciones
más portá
portátil para garantizar que un único hilo que se analiza y se preparó
preparó de nuevo
tiene acceso exclusivo un determinado recurso cada vez.
externo, tales como una base de datos.

Numero 3 www.aprenderpython.com 6
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Con el pará
parámetro de sustitució
sustitución, se pasa a
ejecutar una única declaració
declaración de cadena, con
un marcador de posició
posición en lugar de el valor del
pará
parámetro. Esto permite ejecutar realizar el
analisis y la preparació
preparación só
sólo una vez, lo que
potencialmente da un mejor rendimiento. Por
ejemplo, si un mó
módulo de paramstyle atributo es
"qmark ', puede expresar la consulta como:

c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE
AFIELD=?',
[x])
La cadena de sósólo lectura atributo paramstyle le
indica a su programa de có cómo debe usar el
pará
parámetro de sustitució
sustitución con dicho mómódulo. Los
valores posibles de paramstyle son:
formato
El marcador es %s, como en la cadena de formato. Una consulta tienetiene el siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=%s', [x])
nombre
El marcador es la siguiente: nombre, y los pará
parámetros se denominan. Una consulta tiene el
siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=:x', {'x':x})
numé
numérico
El marcador es el siguiente :n, que el pará
parámetro del nú
número. Una consulta tiene el siguiente
aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=:1', [x])
pyformat
El marcador es %(nombre)s
%(nombre)s,, y los pará
parámetros se denominan. Una consulta tiene el
siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=%(x)s
AFIELD=%(x)s',
', {'x':x})
qmark
El marcador es ?. Una consulta tiene el siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=?', [x])

Numero 3 www.aprenderpython.com 7
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Cuando paramstyle no es ni 'pyformat
'pyformat "ni "nombre ", el segundo argumento del mémétodo de
ejecució
ejecución es una secuencia. Cuando los paráparámetros son nombres (es decir, paramstyle es
'pyformat'o 'nombre '), el segundo argumento del mé
método de ejecució
ejecución es un diccionario.

Fabricacion de funciones
Pará
Parámetros pasados a la base de datos a travé través de marcadores de posició
posición debe ser
normalmente del tipo adecuado: esto significa Python nú números (enteros o valores de punto
flotante), cadenas (planas o Unicode),
Unicode), y None para representar SQL NULL. No hay ningú ningún
tipo universalmente utilizado para representar las fechas, horas y objetos binarios largos
(BLOB). Un DBAPI compatible con mó módulo de suministros de la fabricacion de funciones,
para construir funciones de esos objetos. El tipo utilizados para
para este fin por la mayorí
mayoría de
DBAPI de mó m ódulos son compatibles con los suministrados por el mó
m ódulo y datetime
mxDateTime,
mxDateTime, y tipos de cadenas o de tipo buffer de BLOB. Las funciones de fábrica
especificadas por el DBAPI son las siguientes.

Binario
Binary (string):
string): Devuelve un objeto que representa la cadena de bytes dado como
como BLOB.

Fecha
Fecha (añ
(año, mes, dí
día) :Devuelve un objeto que representa la fecha especificada.

DateFromTicks
DateFromTicks (s) :Devuelve un objeto que representa la fecha s segundos despu
después de la
época del mó día de hoy."
módulo de tiempo, DateFromTicks (time.time ()) es "el dí

Tiempo
Tiempo (hora, minuto, segundo) :Devuelve un objeto que representa
representa el tiempo
especificado.

TimeFromTicks
TimeFromTicks (s) :Devuelve un objeto que representa el momento s segundos despu despuéés
de la época del mó
módulo de tiempo. Por ejemplo, TimeFromTicks (time.time ()) es "ahora".

Numero 3 www.aprenderpython.com 8
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS

Tipo Atributo Descripció


Descripción
Un ejemplo de cursor del atributo descripció
descripción, describe los tipos y otras caracterí
características de
cada columna de una consulta. Cada columna de tipo (el segundo elementoelemento de la tupla que
describe la columna) es igual a uno de los siguientes atributos de la DBAPI compatible con
el mó
módulo:
BINARY
Describe las columnas que contienen BLOB
DATETIME
Describe las columnas que contienen fechas, horas, o ambos
NÚMBER
Describe las columnas que contienen los nú números de cualquier tipo
ROWID
Describe las columnas que contienen un nú número de identificació
identificación de fila
STRING
Describe las columnas que contienen el texto de cualquier tipo
Una descripció
descripción del cursor y, en particular, cada columna de tipo, es principalmente
principalmente útil para
introspección sobre la base de datos y el programa con que está
la introspecció está trabajando. Esa
introspecció
introspección puede ayudarle a escribir en general los mó módulos y trabajo con tablas
utilizando diferentes esquemas, incluidos los esquemas que puedenpueden ser no conocidos en el
momento que usted estáestá escribiendo el có
có digo.

Numero 3 www.aprenderpython.com 9
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
La funció Conexió
Conexión de objetos
función de conectar
Un DBAPI compatible con Un DBAPI compatible con mó módulo de conexió
conexión de la
funció funció
función devuelve un objeto que x este es una instancia
función de conexió
conexión del mó
módulo
acepta argumentos que varí de la clase de conexió
conexión. x suministras los siguientes
varían
en funció métodos:
función del tipo de base de
datos y el mó Close
módulo especí
específico en
cuestióó n. La norma recomienda x.close ()
cuesti
DBAPI, pero no obliga, esa Termina la conexió
conexión de base de datos y libera todos los
coneccion acepta nombrar recursos. Llama a cerrar tan pronto como haya
argumentos. En particular, debe terminado con la base de datos. Dejando las conexiones
conectarse al menos aceptando, abiertas a la Base de datos sin necesidad de
argumentos opcionales con los mantenimiento, puede ser una grave fuga de recursos
siguientes nombres: en el sistema.
database
Nombre de la base de datos Commit
especí x.commit ()
específica para conectarse
dsn Compromete a la actual transaccion en la base de
Nombre de la fuente de datos a datos. Si la base de datos no soporta las transacciones,
utilizar para la conexió x.commit () esta seria contraria a lo que espera.
conexión
host
Nombre de la má Cursor
máquina en la que
se está á ejecutando la base de x.cursor ()
est
datos Devuelve una nueva instancia de la clase de Cursor.
password
La contraseñ Rollback
contraseña a utilizar para la
conexió x.rollback ()
conexión
user Retrocede la actual Transacion en la base de datos. Si la
Nombre de usuario para la base de datos no soporta las transacciones, x.rollback ()
conexió plantea una excepció
excepción. El DBAPI recomienda, pero no
conexión
obliga, que para las bases de datos que no soportan las
transacciones de la clase Connection utilice un metodo
http://aprenderpython.com/smf Rollback,
Rollback, de modo que x.rollback () plantea
/index.php?topic=161.0 AttributeError.
AttributeError. Puede probar si la transacció
transacción soportada
en este momento estáestá con hasattr (x, 'rollback
'rollback').
').

Numero 3 www.aprenderpython.com 10
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Objetos cursor Close
c.close ()
Una instancia de conexión proporciona Se cierra el cursor y libera todos los recursos.
al metodo Cursor un retorno de un
objeto C que es una instancia de la Description
clase Cursor. Un cursor de SQL Un atributo de só sólo lectura que es una
representa el conjunto de los resultados secuencia de siete tuplas tema, por una
de una consulta y te permite trabajar columna en la última consulta ejecutada:
con los registros en que se definan, en nombre, typecode,
typecode, displaysize,
displaysize, internalsize,
internalsize,
precisió
precisión, escala, anulable.
secuencia, uno a la vez.
c.description esto es Nada, si la última
Un cursor modelado por el DBAPI es un
operació
operación en c no es una consulta o no ha
concepto más rico, ya que representa la devuelto ningú
ningúna descripció
descripción util de las
única forma en que ejecuta, su columnas que participan. Una descripció
descripción del
programa de consultas SQL, en primer cursor es útil para la mayorí mayoría de la
lugar. Por otra parte, un DBAPI cursor introspecció
introspección sobre la base de datos del
sólo permite avanzar en la secuencia de programa con el que está está trabajando. Esa
resultados (algunas bases de datos introspecció
introspecci ón puede ayudarle a escribir
relacionales, pero no todos, también módulos generales que son capaces de
provee los mas ricos cursores que son trabajar con tablas utilizando diferentes
capaces de ir hacia atrás y hacia esquemas, incluidos los esquemas que
adelante), y no admite la cláusula de pueden no ser plenamente conocido en el
momento que usted está está escribiendo el
SQL “WHERE CURRENT OF
código.
CURSOR”. Estas limitaciones de DBAPI
cursor, activas en DBAPI sujeta al Execute
módulo, proporciona cursores, incluso c.execute (statement,
statement, parameters=
parameters=None)
None)
en RDBMSes que no ofrecen el real Ejecuta una cadena de SQL a la base de
SQL Cursor en todos los cursores de datos con los pará
parámetros dados. ParáParámetros
SQL. Un instancia de la clase Cursor C es una secuencia, cuando el mó módulo de la
suministros muchos atributos y paramstyle es "format
"format",
", "num
"numé
éric" "qmark ',
ric" o "qmark
métodos; de los más utilizados son y una secuencia de diccionario y cuando es
documentados aquí. 'named'
named' o 'pyformat
'pyformat”” por ejemplo:

Numero 3 www.aprenderpython.com 11
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS

c.executemany('UPDATE
c.executemany('UPDATE atable SET x=? WHERE y=?',(12,23),(23,34))
cuando paramstyle es' qmark 'es equivalente a, pero má
más rá
rápido que los dos estados:
c.execute('UPDATE
c.execute('UPDATE atable SET x=12 WHERE y=23')
c.execute('UPDATE
c.execute('UPDATE atable SET x=23 WHERE y=34')

Fetchall
c.fetchall ()
Devuelve el resto de filas resultado de la última consulta como una secuencia de tuplas. tuplas.
Plantea una excepció
excepción si la última operació
operación no fue una consulta SELECT.
Fetchmany
c.fetchmany (n)
Retorna hasta n restantes resultado de filas de la última consulta como una secuencia de
tuplas.
tuplas. Plantea una excepció
excepción si la última operació
operación no fue una consulta SELECT.
Fetchone
c.fetchone ()
Devuelve el siguiente resultado de la última fila de la consulta como una tupla.tupla. Plantea una
excepció
excepción si la última operació
operación no fue una consulta SELECT.
RowCount
Un atributo de só sólo lectura que se especifica el núnúmero de filas afectadas de la última
operació
operaci ón, o - 1 si el mó
m ódulo esta activo para determinado valor.

Numero 3 www.aprenderpython.com 12
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
DBAPI

Cualquiera que sea la base de datos


relacional que desea utilizar, hay por lo
menos un (frecuentemente hay más de
un) Python DBAPI módulo descargable
desde Internet. Todos los módulos que
figuran en las secciones siguientes,
salvo mxODBC (y SAPDB, que utiliza
GPL) tienen licencias que son similares
a Python's: se puede utilizar libremente,
ya sea en código abierto o programas de
código cerrado. mxODBC puede ser ODBC
utilizado libremente para propósitos no Open Database Connectivity (ODBC)
comerciales, pero debe comprar una es una manera estándar para
licencia para uso comercial. Hay tantas conectarse a diferentes bases de
bases de datos relacionales que no datos, incluidos algunos que no
puedo enumerarlas todas, pero aquí hay soporta DBAPI , como Microsoft Jet
algunas de las más populares: (también conocida como la base de
datos de Access). La distribución de
Python Windows contiene un módulo
de ODBC, pero el módulo no está
soportado y sigue una versión antigua
de la DBAPI, no la versión actual 2.0.
En Unix o Windows, el uso mxODBC
(http://www.lemburg.com/files/Python/
mxODBC.html). mxODBC del
paramstyle es' qmark'. Su función de
conexión en acepta tres argumentos
opcionales: dsn, usuario y contraseña
(dsn, user, password).

Numero 3 www.aprenderpython.com 13
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS

Oracle
Oracle es una gran RDBMS comercial. Para la interfaz de Oracle, puede utilizar
DCOracle2, disponible en http://www.zope.org/Members/matt/dco2. DCOracle2 del
paramstyle es "numérico". La Funcion de Conectar acepta una sola opcion, sin
nombre argumento de cadena con la sintaxis:
"user/pasword@service"
cx_oracle (http://www.python.net/crew/atuining/cx_Oracle/index.html) es una
alternativa. paramstyle es 'named '; La funcion conectar acepta una cadena en el
mismo formato que la DCOracle2, o muchos parámetros opcionales nombre dsn,
usuario, password, (named dsn, user, passwd, )y más.

Microsoft SQL Server


Para la interfaz de Microsoft SQL Server, recomiendo mssqldb módulo, disponible
en http://www.object-craft.com.au/projects/mssql/. mssqldb del paramstyle es' qmark
». Su función de conexión, acepta tres argumentos named dsn, user, y passwods
así como un argumento de base de datos opcional. pymssql
(http://pymssql.sourceforge.net/) es una alternativa.

Numero 3 www.aprenderpython.com 14
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
DB / 2
Para IBM DB/2, pruebe el módulo de DB2, disponible en
http://sourceforge.net/projects/pydb2. DB2 es la paramstyle 'format'. Su función de
conexión opcional acepta tres argumentos: el named dsn, uid y pwd.

MySQL
MySQL es una generalización, de código abierto RDBMS. Para la interfaz de
MySQL, intente MySQLdb, disponible en http://sourceforge.net/projects/mysql-
python. MySQLdb del paramstyle es "format". Su función de conexión opcional,
acepta cuatro argumentos: el named db, host, user y password.

PostgreSQL
PostgreSQL es una excelente codigo de fuente abierta RDBMS. De interfaz para
PostgreSQL, recomiendo psycopg, disponible en http://initd.org/Software/psycopg.
psycopg del paramstyle es 'pyformat ». Su función de conexión obligatoria acepta un
único argumento de cadena, con el named, dsn, con la sintaxis:
'host = host dbname = dbname
user = usuario password = contraseña '

Numero 3 www.aprenderpython.com 15
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
SAP DB
SAP DB, una vez conocido como Adabas, es un poderoso RDBMS que solía ser de
código cerrado, pero ahora es de código abierto. SAP DB viene con sapdbapi
(disponible en http://www.sapdb.org/sapdbapi.html), así como de otros módulos de
Python. sapdbapi del paramstyle es' pyformat'. Su función de conexión acepta tres
obligatorios argumentos named user, password y databaseand un argumento
opcional llamado host.

SQLite
SQLite (http://www.sqlite.org) es similar a Gadfly en que no es una interfaz a otros
RDBMS, sino más bien un completo, autónomo de motor RDBMS. Sin embargo,
SQLite está escrito en C y puede ofrecer mejor rendimiento, y la accesibilidad de los
múltiples lenguajes de programación, en comparación con Gadfly. El más popular,
de interfaz para Python de SQLite es PySQLite, disponible en
http://initd.org/tracker/pysqlite. Es muy compatible con DBAPI 2.0, excepto que no
es compatible con los tipos (todos los datos es en realidad estan en poder de
SQLite como cadenas). PySQLite del paramstyle es 'qmark'. Una alternativa es
APSW, disponible en http://www.rogerbinns.com/apsw.html. APSW ni siquiera tratar
de satisfacer las DBAPI 2.0 , sino más bien las especificaciones fielmente
implementa SQLite preferido la propia API.
En Python 2.5, PySQLite está incluido en la Biblioteca Estándar de Python como
sqlite3 paquete.

Fuente:
Fuente: Python in a Nutshell,
Nutshell, 2nd Edition

Numero 3 www.aprenderpython.com 16
MUNDO PYTHON
WINAUDIT

Cuantas veces no hemos


deseado tener un inventario de
todo lo que tiene nuestro Equipo
a nivel de Software y Hardware,
ahora tenemos esta pequeña
herramienta no mas de 1Mg
para realizar en su totalidad
nuestros inventario completos
de nuestros equipos, lo único
negativo es que solo esta para
sistemas operativos Windows.

Para empezar, esta en varios idiomas


disponibles incluyendo Español, tiene la
opción de enviar por correo o imprimir en
formato texto, planilla electrónica, pagina
web, base de datos, word, excel y PDF,
tambien nos permite imprimir fisicamente
y previsualizar el inventario, es muy facil
de manejar ya que dispone de un menu
muy intuitivo con un simple clic vamos a
tener todo el inventario de nuestro
equipo en pantalla, ademas no necesita
instalacion solamente ejecutamos y ya
tenemos nuestro programa funcionando.
http://www.pxserver.com/

Numero 3 www.aprenderpython.com 17
MUNDO PYTHON
WINAUDIT
Como verán es muy ordenado al
momento de generar los
inventarios, para utilizarlo
solamente hay que ejecutar y
dar clic sobre el botón
“Recolectar” tardara unos
segundos y presentara el
inventario total de nuestros
componentes físicos y lógicos,
después de ello pueden
guardarse en los formatos ya
mencionados anteriormente.

Dentro de los inventarios que realiza


tenemos lo siguiente:
¾Software Instalado
¾Sistemas Operativos
¾Perifericos
¾Seguridad
¾Grupos y Usuarios
¾Tareas Programadas
¾Estadisticas desde arranque
¾Error Logs (Sucesos)
¾Environment Variables
¾Regional Configuracion

Numero 3 www.aprenderpython.com 18
MUNDO PYTHON
WINAUDIT
¾Red Windows
¾Red TCP/IP
¾NetBios
¾Dispositivos
¾Caracteristicas Pantalla
¾Adaptadores de Pantalla
¾Impresoras Instaladas
¾Version de BIOS
¾Gestion del Sistema
¾Procesadores
¾Memoria
¾Discos Fisicos
¾Discos Logicos
¾Puertos de Comunicación
¾Programas de Arranque
¾Servicios
¾Programas en Ejecucion
¾Modulos Cargados
¾Archivos de Sistema

Numero 3 www.aprenderpython.com 19
MUNDO PYTHON
VPython
VPython es un módulo sobre Python.
Consta de una serie de subrutinas que
permiten construir y visualizar en tiempo
real algunos objetos geométricos sencillos.
Python (y por consiguiente VPython) es un
lenguaje interpretado. Un programa en
Python es un documento de texto que se
ejecuta con Python. Para escribir ese
programa se puede usar cualquier editor
de textos. Normalmente se le pone
extensión .py aunque no es necesario.
VPython incorpora un editor llamado IDLE
que tiene algunas ventajas. Una de ellas
es que lleva incorporadas opciones tales
como indentar o desindentar un párrafo,
convertir un párrafo en líneas de
comentario, etc. que son útiles a la hora
de programar. Además, desde el mismo Si abres IDLE y cargas un rograma,
rograma, al
ejecutarlo se abren automá
automáticamente dos
IDLE puede ejecutarse el programa.
ventanas,
ventanas, una de grágrácos y un shell. Este
Para ejcutar un programa en VPython shell permite ver los mensajes de error o
tenemos tres posibilidades: introducir datos que te pida el programa.
programa. Si
1.- Abrir IDLE y en él se carga el usamos la tercera opció opción y pedimos
programa. Para ejecutarlo se pulsa F5. directamente el programa,
programa, aparece una
2.- Si el programa lleva la extensión .py, ventana del DOS que cumple el papel del
con el botón derecho permite abrirlo shell pero con una diferencia importante:
importante: si
directamente con IDLE. hay un error se cierra automá
automáticamente,
ticamente,
3.- Si la extensión es .py al pulsar dos con lo que no llegas a verlo.
verlo.
veces sobre el programa se ejecuta La diferencia entre las dos primeras
directamente. formas de abrir un programa es la
dependencia de IDLE:
Hay algunas diferencias entre estas tres
- Si abres IDLE y cargas un programa,
programa,
formas. La diferencia principal entre las
cuando lo cierres IDLE permanecerá
permanecerá
dos primeras y la tercera es el entorno. abierto.
abierto.

Numero 3 www.aprenderpython.com 20
MUNDO PYTHON
VPython La ventana de grácos
Como hemos comentado, al
empezar un programa de visual,
creamos dos ventanas, una de
grácos y un shell. Por defecto la
ventana de grácos recibe el nombre
de scene.
Si queremos crear otra pantalla de
grácos se hace con la orden ventana
= display() donde ventana es el
nombre que usamos para referirnos
a esa pantalla.
- Si lo haces al revés, IDLE se cierra El manejo básico de una pantalla
automáticamente al cerrar el programa. gráca se hace con el ratón.
Una observación importante es IDLE - La tecla izquierda no hace nada
siempre guarda el programa antes de - La tecla derecha permite girar el
ejecutarlo. Por tanto, si hacemos punto de vista de la escena
modicaciones de las que no estemos - Pulsando las dos teclas y
seguros, es conveniente grabarlo con otro arrastrando el ratón podemos hacer
nombre antes de ejecutarlo. zoom.
Al empezar cualquier programa lo primero
que hay que decirle a Python es que
cargue las rutinas de VPython. Esto se
hace con la siguiente línea from visual
import * donde * indica que se carguen
todas las rutinas del módulo VPython.
Si necesitamos rutinas de otras librerias,
necesitaremos también importarlas.
Usaremos más adelante las librerías
random y LinearAlgebra. La primera
implementa números a suertes, números
combinatorios, etc. y la segunda manejo
de matrices.

Numero 3 www.aprenderpython.com 21
MUNDO PYTHON
VPython
Casi todos los aspectos de la ventana
gráca pueden cambiarse mediante
código. Veamos algunos de estos
comandos:
scene.background
sirve para indicar el color de fondo de
la ventana scene.
Por ejemplo
scene.background = color.red cambia a
rojo el color del fondo. Más adelante
veremos cómo especicar un color en
VPython. scene.autoscale
scene.foreground Por defecto VPython escala los objetos
Indica el color por defecto en el que para que quepan todos en pantalla. Si no
VPython va a dibujar los objetos que queremos que lo haga debemos poner
creemos scene.autoscale = 0
scene.fullscreen Iluminación
Si ponemos scene.fullscreen = 1 la Al empezar el programa, la escena se
ventana de grácos funciona en pantalla visualiza con una mezcla entre luz
completa. Por defecto se tiene ambiente y dos focos de luz, pero nosotros
scene.fullscreen = 0. podemos indicar cuánta luz ambiente
queremos y qué fuentes de luz y con qué
intesidad queremos colocar. Para ello se
usa:
scene.ambient nos da el valor de luz
ambiente. Este valor debe estar entre 0 y 1
scene.lights es una lista de vectores que
nos indican desde qué direcciones
proceden las fuentes de
luz. La magnitud de cada luz es la longitud
del vector correspondiente.
La suma total de todas las luces del
escenario debe de ser siempre <1

Numero 3 www.aprenderpython.com 22
MUNDO PYTHON
VPython

Colocando la cámara
Para indicar dónde ponemos una cámara usaremos tres órdenes: rdenes:
scene.center es el punto hacia el que estáestá mirando la cámara.
mara. Por defecto es scene.center =
(0,0,0). Este es tambié
también el punto alrededor del que gira la cámara cuando la movemos con el
rató
ratón. scene.forward es la direcció
dirección a la que apunta la cámara.
mara. Por tanto,
tanto, podemos pensar
que la cámara está
está colocada en la posició
posición scene.center - scene.forward
scene.range nos dice la secció
sección de espacio que abarca la cámara.
mara. Al empezar VPython su
valor es scene.range = (10,10,10) pero se modica inmediatamente para que quepan todos
los objetos a no ser que pongamos scene.autoscale=0
scene.autoscale=0.. Hay más ódenes que permiten
indicar el título,
, tamañ
tulo tama ño o posició
posició n de la ventana.
ventana. Si quieren mas informacion pueden
ingresar al foro en la biblioteca del nivel medio,
medio, hay un documento del cual tome esta parte.

Numero 3 www.aprenderpython.com 23
MUNDO PYTHON

Colocando la cámara
Para indicar dónde ponemos una cámara usaremos tres órdenes: rdenes:
scene.center es el punto hacia el que estáestá mirando la cámara.
mara. Por defecto es scene.center =
(0,0,0). Este es tambié
también el punto alrededor del que gira la cámara cuando la movemos con el
rató
ratón. scene.forward es la direcció
dirección a la que apunta la cámara.
mara. Por tanto,
tanto, podemos pensar
que la cámara está
está colocada en la posició
posición scene.center - scene.forward
scene.range nos dice la secció
sección de espacio que abarca la cámara.
mara. Al empezar VPython su
valor es scene.range = (10,10,10) pero se modica inmediatamente para que quepan todos
los objetos a no ser que pongamos scene.autoscale=0
scene.autoscale=0.. Hay más ódenes que permiten
indicar el título,
, tamañ
tulo tama ño o posició
posició n de la ventana.
ventana. Si quieren mas informacion pueden
ingresar al foro en la biblioteca del nivel medio,
medio, hay un documento del cual tome esta parte.

Numero 3 www.aprenderpython.com 24
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•pygame - el nivel superior paquete pygame


•pygame.error - estáestándar pygame excepció
excepción
•pygame.get_error - obtener el actual mensaje de error
•pygame.get_sdl_byteorder - obtener el orden de bytes de SDL
•pygame.get_sdl_version - obtener el nú número de versió
versión de SDL
•pygame.init - inicializar todos los mómódulos importados pygame
•pygame.cdrom - pygame módulo de control de audio de CD- CD-ROM
•pygame.cdrom.CD - clase para gestionar una unidad de cdrom
•CD.eject - expulsar o abrir la unidad de cdrom
•CD.get_all - obtener toda la informació
información de la pista
•CD.get_busy - true si la unidad estáestá reproduciendo audio
•CD.get_current - la posició
posición de reproducció
reproducción de audio actual
•CD.get_empty - False si es un CD- CD-ROM en la unidad
•CD.get_id - el índice de la unidad de cdrom
•CD.get_init - true si este cd dispositivo inicializado
•CD.get_name - el nombre del sistema de la unidad de cdrom
•CD.get_numtracks - el nú número de pistas en el CD-
CD-ROM
•CD.get_paused - true si la unidad está está en pausa
•CD.get_track_audio - true si el cdrom pista tiene datos de audio
•CD.get_track_length - longitud de pista de un CD- CD-ROM
•CD.get_track_start - hora de inicio de la pista de un CD- CD-ROM
•CD.init - inicializar una unidad de CD-
CD-ROM para su uso
•CD.pause - detener temporalmente la reproducció
reproducción de audio
•CD.play - iniciar la reproducció
reproducción de audio
•CD.quit - uninitialize una unidad de CD-CD-ROM para su uso
•CD.resume - volver a la reproducció
reproducción de audio
•CD.stop - detener la reproducció
reproducción de audio
•pygame.cdrom.get_count - número de unidades de CD en el sistema
•pygame.cdrom.get_init - true si el mó módulo se inicializa cdrom
•pygame.cdrom.init - inicializar el mómódulo de cdrom
•pygame.cdrom.quit - uninitialize módulo, el CD- CD-ROM
•pygame.cursors - pygame módulo de recursos para el cursor
•pygame.cursors.compile - crear cursor datos binarios desde simples cadenas
•pygame.cursors.load_xbm - carga datos de un cursor xbm archivo

Numero 3 www.aprenderpython.com 25
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•pygame - el nivel superior paquete pygame


•pygame.display - pygame módulo de control de la ventana y la pantalla
•pygame.display.flip - actualizar la superficie de pantalla completa a la pantalla
•pygame.display.get_active - ocurre cuando la pantalla se activa en la pantalla
•pygame.display.get_caption - obtener el tí título actual de la ventana
•pygame.display.get_driver - obtener el nombre de la pantalla de fondo pygame
•pygame.display.get_init - true si el mó
módulo de visualizació
visualización se inicializa
•pygame.display.get_surface - obtener una referencia a la superficie actualmente fijado
pantalla
•pygame.display.get_wm_info - Obtener informació
información sobre el actual sistema de ventanas
•pygame.display.gl_get_attribute - para obtener el valor opengl una bandera para la pantalla
actual
•pygame.display.gl_set_attribute - solicitar una opengl atributo para mostrar el modo de
visualizació
visualización
•pygame.display.iconify - iconificar superficie de la pantalla
•pygame.display.Info - Crear una pantalla de ví vídeo objeto de informació
información
•pygame.display.init - inicializar el mó
módulo de visualizació
visualización
•pygame.display.list_modes - obtener la lista completa de modos disponibles
•pygame.display.mode_ok - elegir la mejor profundidad de color de un modo de visualizacióvisualización
•pygame.display.quit - uninitialize módulo de la pantalla
•pygame.display.set_caption - configura el tí título actual de la ventana
•pygame.display.set_gamma - cambiar el hardware de gama rampas
•pygame.display.set_gamma_ramp - set_gamma_ramp (rojo, verde, azul): return bool
•pygame.display.set_icon - cambiar la imagen del sistema para el visor
•pygame.display.set_mode - inicializar una ventana o pantalla de visualizació
visualización
•pygame.display.set_palette - establecer la paleta de colores para mostrar indexados
muestra
•pygame.display.toggle_fullscreen - cambiar entre pantalla completa y ventana muestra
•pygame.display.update - actualizació
actualización de la pantalla de software muestra
•pygame.draw - pygame módulo de dibujo de formas
•pygame.draw.aaline - llamar la multa antidistorsió
antidistorsión líneas
•pygame.draw.aalines - pygame.draw.aalines (de superficie, el color, el cerrado, pointlist, pointlist,
mezcla = 1): Rect retorno
•pygame.draw.arc - establecer una secció
sección parcial de una elipse
•pygame.draw.circle - dibujar un cí círculo en torno a un punto

Numero 3 www.aprenderpython.com 26
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE PAQUETE
PYGAME
•pygame - el nivel superior paquete pygame
•pygame.draw.ellipse - dibujar una forma redonda dentro de un rectá rectángulo
•pygame.draw.line - dibujar un segmento recto
•pygame.draw.lines - extraer mú múltiples segmentos de lí línea contiguos
•pygame.draw.polygon - dibujar una forma con cualquier nú número de lados
•pygame.draw.rect - dibujar un rectárectángulo de forma
•pygame.event - pygame módulo para interactuar con los eventos y las colas
•pygame.event.clear - eliminar todos los eventos de la cola
•pygame.event.Event - crear un nuevo objeto de evento
•pygame.event.event_name - obtener el nombre de cadena y de Id. Id. de suceso
•pygame.event.get - obtener los eventos de la cola
•pygame.event.get_blocked - comprobar si un tipo de evento es bloqueado de la cola
•pygame.event.get_grab - comprobar si el programa es compartir los dispositivos de entrada entrada
•pygame.event.peek - tipos de eventos de prueba, si está están esperando en la cola
•pygame.event.poll - obtener un único evento de la cola
•pygame.event.post - lugar un nuevo evento en la cola
•pygame.event.pump - pygame proceso interno de eventos
•pygame.event.set_allowed - control de los acontecimientos que se permite en la cola
•pygame.event.set_blocked - control de los acontecimientos que se permite en la cola
•pygame.event.set_grab - control de la distribució
distribución de los dispositivos de entrada con otras
aplicaciones
•pygame.event.wait - esperar a que un único evento de la cola
•pygame.font - pygame módulo de carga y de renderizado de fuentes
•pygame.font.Font - crear un nuevo objeto de fuente de un archivo
•Font.get_ascent - obtener el ascenso de la fuente
•Font.get_bold - comprobar si el texto se prestará
prestará negrita
•Font.get_descent - obtener el descenso de la fuente
•Font.get_height - obtener la altura de la fuente
•Font.get_italic - comprobar si el texto se dictó
dictó cursiva
•Font.get_linesize - obtener la lílínea de espacio de la fuente de texto
•Font.get_underline - comprobar si el texto seráserá prestado con un subrayado
•Font.metrics - Obtiene los pará
parámetros de cada personaje en el pasado la cadena.
•Font.render - sacar un nuevo texto sobre la superficie
•Font.set_bold - permitir la prestació
prestación de falso negrita
•Font.set_italic - permitir la prestació
prestación de falso y cursiva
•Font.set_underline - controlar si el texto se hace hincapié
hincapié en una
•Font.size - determinar la cantidad de espacio necesario para que el texto

Numero 3 www.aprenderpython.com 27
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•pygame.font.get_default_font - obtener el nombre del archivo de la fuente predeterminada


•pygame.font.get_fonts - conseguir todas las fuentes disponibles
•pygame.font.get_init - true si el mó módulo se inicializa fuente
•pygame.font.init - inicializar el mó
módulo de la fuente
•pygame.font.match_font - encontrar una fuente especí específica sobre el sistema
•pygame.font.quit - uninitialize módulo de la fuente
•pygame.font.SysFont - crear un objeto de fuente de fuentes del sistema
•pygame.image - pygame módulo de transferencia de imá imágenes
•pygame.image.frombuffer - crear una nueva superficie que comparte datos en una cadena
de amortiguació
amortiguación
•pygame.image.fromstring - crear una nueva superficie de la cadena de amortiguació
amortiguación
•pygame.image.get_extended - comprobar si ampliado de formatos de imagen se pueden
cargar
•pygame.image.load - nueva imagen de carga de un archivo
•pygame.image.save - guardar una imagen en disco
•pygame.image.tostring - la transferencia de imá imágenes a la cadena de amortiguació
amortiguación
•pygame.joystick - pygame módulo para interactuar con los dispositivos de mando
•pygame.joystick.get_count - número de mandos en el sistema
•pygame.joystick.get_init - true si el mó módulo de mando se inicializa
•pygame.joystick.init - inicializar el mómódulo de mando
•pygame.joystick.Joystick - crear un nuevo objeto Joystick
•Joystick.get_axis - obtener la posició
posición actual de un eje
•Joystick.get_ball - obtener la posició
posición relativa de una rueda de
•Joystick.get_button - obtener el estado actual de botó botón
•Joystick.get_hat - obtener la posició
posición de un joystick sombrero
•Joystick.get_id - obtener el ID Joystick
•Joystick.get_init - comprobar si el Joystick se inicializa
•Joystick.get_name - Joystick obtener el nombre de sistema
•Joystick.get_numaxes - el nú número de ejes de un Joystick
•Joystick.get_numballs - obtener el nú número de Trackballs en un Joystick
•Joystick.get_numbuttons - obtener el nú número de botones de un joystick
•Joystick.get_numhats - obtener el nú número de controles en un sombrero Joystick
•Joystick.init - inicializar el Joystick
•Joystick.quit - uninitialize el Joystick
•pygame.joystick.quit - uninitialize el mó módulo de mando

Numero 3 www.aprenderpython.com 28
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•pygame.key - pygame módulo para trabajar con el teclado


•pygame.key.get_focused - true si la pantalla está
está la recepció
recepción de entrada de teclado del
sistema
•pygame.key.get_mods - determinar quéqué teclas modificadoras se está están celebrando
•pygame.key.get_pressed - obtener el estado de todos los botones del teclado
•pygame.key.get_repeat - ver có
cómo se repiten las claves celebrada
•pygame.key.name - obtener el nombre de una clave de identificació
identificación
•pygame.key.set_mods - temporalmente conjunto que se pulsan teclas modificadoras
•pygame.key.set_repeat - el control de có
cómo se celebró
celebró claves se repiten
•pygame.mask - pygame módulo de imagen oculta.
•pygame.mask.get_at - Devuelve distinto de cero si el bit en (x, y) estáestá definido.
•pygame.mask.get_bounding_rects - Devuelve una lista de lílímites de las regiones rects
conjunto de pí
píxeles.
•pygame.mask.get_size - Devuelve el tamañ
tamaño de la má máscara.
•pygame.mask.overlap - Devuelve el punto de intersecció
intersección en caso de superposició
superposición de las
máscaras con el offset dado - o ninguno si no se superponen.
•pygame.mask.overlap_area - Devuelve el nú número de la superposició
superposición de "pí"píxeles".
•pygame.mask.pygame.Mask - pygame objeto de representar 2d bitmasks
•pygame.mask.pygame.mask.from_surface - Devuelve una má máscara de la superficie dada.
•pygame.mask.set_at - Establece la posició
posición de la má máscara por X e Y.
•pygame.mixer - pygame módulo para la carga y reproducció
reproducción de sonidos
•pygame.mixer.Channel - Crear un canal para controlar la reproducció
reproducción de objetos
•Channel.fadeout - detener la reproducció
reproducción despué
después de la decoloració
decoloración de canal
•Channel.get_busy - comprobar si el canal está
está activo
•Channel.get_endevent - el caso de obtener un canal enví envía cuando la reproducció
reproducción se
detiene
•Channel.get_queue - devolver cualquier sonido que es la cola
•Channel.get_sound - conseguir la reproducció
reproducción de sonido
•Channel.get_volume - obtener el volumen de la reproducció
reproducción de canal
•Channel.pause - detener temporalmente la reproducció
reproducción de un canal
•Channel.play - Reproducir un sonido en un canal
•Channel.queue - cola de un objeto de sonido a la actual
•Channel.set_endevent - tienen el canal de enviar un caso cuando la reproducció
reproducción se detiene
•Channel.set_volume - ajustar el volumen de juego de un canal
•Channel.stop - detener la reproducció
reproducción en un canal
•Channel.unpause - reanudar la pausa en la reproducció
reproducción de un canal

Numero 3 www.aprenderpython.com 29
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE PAQUETE
PYGAME
•pygame.mixer.fadeout - fade out sobre el volumen de todos los sonidos antes de detenerse
•pygame.mixer.find_channel - encontrar un canal no utilizado
•pygame.mixer.get_busy - comprobar si el sonido está está siendo mixtos
•pygame.mixer.get_init - comprobar si la mesa de mezclas se inicializa
•pygame.mixer.get_num_channels - obtener el nú número total de canales de reproducció
reproducción
•pygame.mixer.init - inicializar el mó
módulo mezclador
•pygame.mixer.pause - detener temporalmente la reproducció
reproducción de todos los canales de
sonido
•pygame.mixer.pre_init - preset el mezclador de inicio argumentos
•pygame.mixer.music - pygame módulo de control de audio
•pygame.mixer.music.fadeout - detener la reproducció
reproducción de múmúsica despué
después desapareciendo
•pygame.mixer.music.get_busy - comprobar si el flujo de la mú música se está
está reproduciendo
•pygame.mixer.music.get_endevent - el caso de obtener un canal enví envía cuando la
reproducció
reproducci ón se detiene
•pygame.mixer.music.get_pos - obtener el tiempo de reproducció
reproducción de mú
música
•pygame.mixer.music.get_volume - obtener el volumen de la mú música
•pygame.mixer.music.load - Cargar un archivo de mú música para su reproducció
reproducción
•pygame.mixer.music.pause - detener temporalmente la reproducció
reproducción de mú
música
•pygame.mixer.music.play - Inicie la reproducció
reproducción de la múmúsica arroyo
•pygame.mixer.music.queue - cola de un archivo de mú música a la actual
•pygame.mixer.music.rewind - reiniciar mú música
•pygame.mixer.music.set_endevent - enviar la mú música tienen una cita cuando la reproducció
reproducción
se detiene
•pygame.mixer.music.set_volume - configura el volumen de la mú música
•pygame.mixer.music.stop - detener la reproducció
reproducción de múmúsica
•pygame.mixer.music.unpause - reanudar la mú música en pausa
•pygame.mixer.quit - uninitialize la mesa de mezclas
•pygame.mixer.set_num_channels - establecer el nú número total de canales de reproducció
reproducción
•pygame.mixer.set_reserved - reserva de canales que se utilizan automáautomáticamente
•pygame.mixer.Sound - Crear un nuevo objeto de sonido de un archivo
•Sound.fadeout - detener la reproducció
reproducción de sonido despué
después de desvanecimiento
•Sound.get_buffer - adquiere un objeto de amortiguamiento para la sameples del sonido.
•Sound.get_length - obtener la longitud del sonido
•Sound.get_num_channels - contar cuá cuántas veces este sonido se reproduce
•Sound.get_volume - obtener el volumen de reproducció
reproducción
•Sound.play - iniciar la reproducció
reproducci ón de sonido
•Sound.set_volume - configura el volumen de reproducció
reproducción de sonido para este
•Sound.stop - detener la reproducció
reproducción de sonido

Numero 3 www.aprenderpython.com 30
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•pygame.mixer.stop - detener la reproducció


reproducción de todos los canales de sonido
•pygame.mixer.unpause - reanudar la reproducció
reproducción en pausa de canales de sonido
•pygame.mouse - pygame módulo para trabajar con el rató ratón
•pygame.mouse.get_cursor - obtener la imagen para el sistema de rató ratón
•pygame.mouse.get_focused - comprobar si la pantalla de entrada del rató ratón está
está recibiendo
•pygame.mouse.get_pos - obtener la posicióposición del cursor del rató ratón
•pygame.mouse.get_pressed - obtener el estado de los botones del rató ratón
•pygame.mouse.get_rel - obtener la cantidad de movimiento del rató rat n
ó
•pygame.mouse.set_cursor - configura el sistema de imagen para el rató ratón
•pygame.mouse.set_pos - establecer la posició posición del cursor del rató ratón
•pygame.mouse.set_visible - ocultar o mostrar el cursor del rató ratón
•pygame.movie - pygame módulo para la reproducció
reproducción de ví vídeo MPEG
•pygame.movie.Movie - carga un archivo de pelí pelí cula MPEG
•Movie.get_busy - comprobar si la pelí película se está
está reproduciendo
•Movie.get_frame - obtener el ví vídeo actual marco
•Movie.get_length - la longitud total de la pelípelícula en cuestió
cuestión de segundos
•Movie.get_size - obtener la resolució
resolución del vívídeo
•Movie.get_time - obtener el tiempo de reproducció
reproducción actual vide
•Movie.has_audio - comprobar si la pelí película contiene el archivo de audio
•Movie.has_video - comprobar si la pelí película contiene el archivo de ví vídeo
•Movie.pause - detener temporalmente y reanudar la reproducció reproducción
•Movie.play - iniciar la reproducció
reproducción de una pelí película
•Movie.render_frame - configura el actual marco de ví vídeo
•Movie.rewind - reiniciar la reproducció
reproducción de la pelí película
•Movie.set_display - fijar el objetivo de ví vídeo de superficie
•Movie.set_volume - configura el volumen de reproducció
reproducción de audio
•Movie.skip - adelantar la posició
posición de reproducció
reproducción de la pelí película
•Movie.stop - detener la reproducció
reproducción de la pelípelícula
•pygame.Overlay - pygame objeto de superposició
superposición de grá gráficos de ví vídeo
•Overlay.display - establecer la superposició
superposici ó n de los datos de pí
pí xeles
•Overlay.get_hardware - comprobar si la superposició
superposición es acelerado por hardware
•Overlay.set_location - el control que se muestra la superposició
superposición
•pygame.PixelArray - pygame Objeto de pí píxel acceso directo de las superficies
•PixelArray.surface - Obtiene la superficie de la PixelArray usos.
•pygame.Rect - pygame objeto para el almacenamiento de coordenadas rectangulares

Numero 3 www.aprenderpython.com 31
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•Rect.clamp - mueve el rectárectángulo dentro de otro


•Rect.clamp_ip - mueve el rectárectángulo dentro de otro, en lugar
•Rect.clip - cultivos dentro de un rectá
rectángulo dentro de otro
•Rect.clip_ip - cultivos dentro de un rectá
rectángulo dentro de otro, en lugar
•Rect.collidedict - comprobar si un rectá
rectángulo en un diccionario interseca
•Rect.collidedictall - comprobar si todos los rectá
rectángulos se entrecruzan en un diccionario
•Rect.collidelist - comprobar si un rectá
rectángulo en una lista interseca
•Rect.collidelistall - comprobar si todos los rectá
rectángulos en una lista de intersecció
intersección
•Rect.collidepoint - comprobar si un punto está está dentro de un rectá
rectángulo
•Rect.colliderect - comprobar si dos rectá
rectángulos que se superponen
•Rect.contains - comprobar si es un rectárectángulo dentro de otro
•Rect.fit - redimensionar y mover un rectárectángulo con relació
relación de aspecto
•Rect.inflate - crecer o reducir el tamañ
tama ño del rectá
rectángulo
•Rect.inflate_ip - crecer o reducir el tamañ
tamaño del rectá
rectángulo, en lugar
•Rect.move - mueve el rectárectángulo
•Rect.move_ip - mueve el rectárectángulo, en lugar
•Rect.normalize - corregir los tamañ
tamaños negativos
•Rect.union - une dos rectá
rectángulos en un
•Rect.union_ip - une dos rectá
rectángulos en una, en lugar
•Rect.unionall - la unió
unión de muchos rectá
rectángulos
•Rect.unionall_ip - la unió
unión de muchos rectá
rectángulos, en lugar
•pygame.scrap --
•pygame.scrap.contains - Los controles, si un determinado tipo está está disponible en el
portapapeles.
•pygame.scrap.get - Obtiene los datos del tipo especificado desde el portapapeles.
•pygame.scrap.get_types - Obtiene una lista de los tipos disponibles portapapeles.
•pygame.scrap.init - Inicializa el mó
módulo de la chatarra.
•pygame.scrap.lost - comprueba si el portapapeles es actualmente propiedad de la
aplicació
aplicación.
•pygame.scrap.put - Centros de datos en el portapapeles.
•pygame.scrap.set_mode - Establece el modo de acceso portapapeles.
•pygame.sndarray - pygame módulo de sonido para tener acceso a datos de muestra
•pygame.sndarray.array - copia de las muestras de sonido en una matriz
•pygame.sndarray.get_arraytype - Obtiene el tipo de matriz activa actualmente.
•pygame.sndarray.get_arraytypes - Obtiene la matriz tipos de sistemas de apoyo
actualmente.

Numero 3 www.aprenderpython.com 32
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE PAQUETE
PYGAME
•pygame.sndarray.make_sound - convertir una matriz en un objeto de sonido
•pygame.sndarray.samples - Muestras de sonido de referencia en una matriz
•pygame.sndarray.use_arraytype - Establece el sistema de matriz que se utiliza para arreglos
de sonido
•pygame.sprite - pygame módulo bá básico juego con clases de objetos
•pygame.sprite.Group - contenedor de clase para muchos Sprites
•Group.add - Sprites añadir a este grupo
•Group.clear - establecer una base sobre la Sprites
•Group.copy - duplicar el Grupo
•Group.draw - blit la Sprite imá
imágenes
•Group.empty - eliminar todos los Sprites
•Group.has - comprobar si contiene un grupo de Sprites
•Group.remove - eliminar Sprites del Grupo
•Group.sprites - lista de los Sprites este grupo contiene
•Group.update - llamar al mé método de actualizació
actualización de contenidos Sprites
•pygame.sprite.groupcollide - encontrar todas las Sprites que chocan entre dos grupos
•pygame.sprite.GroupSingle - Grupo recipiente que contiene un único Sprite
•pygame.sprite.OrderedUpdates - RenderUpdates clase Sprites señ señala que con el fin de
adició
adición
•pygame.sprite.RenderUpdates - Grupo de la clase que sigue sucio actualizaciones
•RenderUpdates.draw - blit la Sprite imá imágenes y realizar un seguimiento de zonas cambiado
•pygame.sprite.Sprite - simple clase de base para los objetos visibles juego
•Sprite.add - añadir el sprite a grupos
•Sprite.alive - ¿el sprite pertenecen a ningú
ningún grupo
•Sprite.groups - lista de grupos que contienen este Sprite
•Sprite.kill - eliminar el Sprite de todos los grupos
•Sprite.remove - eliminar el sprite de los grupos
•Sprite.update - método para controlar el comportamiento sprite
•pygame.sprite.spritecollide - Sprites en encontrar un grupo que se entrecruzan otro Sprite
•pygame.sprite.spritecollideany - una prueba sencilla si Sprite cruza nada en un grupo
•pygame.Surface - pygame objeto de representació
representación de imá
imágenes
•Surface.blit - sacar una imagen a otro
•Surface.convert - cambiar el formato de pí píxel de una imagen
•Surface.convert_alpha - cambiar el formato de pí píxel de una imagen incluida por pixel alfas
•Surface.copy - crear una nueva copia de una superficie
•Surface.fill - cubrir la superficie con un color só
sólido
•Surface.get_abs_offset - encontrar la posició
posición absoluta de un niñ
niño del subsuelo dentro de
su matriz de nivel superior

Numero 3 www.aprenderpython.com 33
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•Surface.get_abs_parent - encontrar el nivel superior de una matriz del subsuelo


•Surface.get_alpha - obtener el valor actual de superficie transparencia
•Surface.get_at - obtener el valor de color en un solo pí
píxel
•Surface.get_bitsize - obtener la profundidad de bits de la superficie formato de pí
píxel
•Surface.get_bounding_rect - encontrar el má más pequeñ
pequeño que contiene datos directos
•Surface.get_buffer - adquiere un objeto de amortiguació
amortiguación para los pí
píxeles de la superficie.
•Surface.get_bytesize - obtener los bytes utilizados por cada pixel de la superficie
•Surface.get_clip - obtener la actual saturació
saturación de la superficie
•Surface.get_colorkey - Obtener la actual transparente de color
•Surface.get_flags - obtener las banderas utilizadas para la superficie
•Surface.get_height - obtener la altura de la superficie
•Surface.get_locked - comprobar si la superficie actual es bloqueado
•Surface.get_losses - el importante bits que se utilizan para convertir entre un color
color y un
mapeado entero
•Surface.get_masks - la bitmasks necesarios para convertir entre un color y un mapeado
entero
•Surface.get_offset - encontrar la posició
posición de un niñ
niño del subsuelo dentro de un padre
•Surface.get_palette - obtener el índice de la paleta de color para una superficie de 8 bits
•Surface.get_palette_at - obtener el color para una única entrada en una paleta
•Surface.get_parent - encontrar el padre de un subsuelo
•Surface.get_pitch - el nú
número de bytes utilizados por cada fila de superficie
•Surface.get_rect - obtener el área rectangular de la superficie
•Surface.get_shifts - el poco cambios necesarios para convertir entre un color y un mapeado
entero
•Surface.get_size - obtener las dimensiones de la superficie
•Surface.get_width - obtener la anchura de la superficie
•Surface.lock - bloqueo de la superficie de memoria de acceso pí píxel
•Surface.map_rgb - convertir un color en un valor de color asignada
•Surface.mustlock - comprobar si la superficie requiere de bloqueo
•Surface.set_alpha - establecer el valor alfa de la imagen de la superficie completa
•Surface.set_at - establecer el valor de color de un solo pí
píxel
•Surface.set_clip - configura el área actual de saturació
saturación de la superficie
•Surface.set_colorkey - Ajuste el color transparente
•Surface.set_palette - establecer la paleta de colores de una superficie de 8 bits
•Surface.set_palette_at - establecer el color de un índice único en una paleta de 8 bits de
superficie

Numero 3 www.aprenderpython.com 34
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•Surface.subsurface - crear una nueva superficie que las referencias de su padre


•Surface.unlock - Superficie desbloquear el acceso a la memoria de pí píxel
•Surface.unmap_rgb - convierte un nú número entero asigna un valor de color en color
•pygame.surfarray - pygame módulo de acceso a datos a travé través de la superficie pí
píxel gama
de interfaces
•pygame.surfarray.array2d - Copiar pí píxeles en una serie 2d
•pygame.surfarray.array3d - Copiar pí píxeles en una serie 3d
•pygame.surfarray.array_alpha - Copiar en un pí píxel alfas 2d gama
•pygame.surfarray.array_colorkey - Copiar el valor de color en una matriz 2D
•pygame.surfarray.blit_array - blit directamente los valores de una matriz
•pygame.surfarray.get_arraytype - Obtiene el tipo de matriz activa actualmente.
•pygame.surfarray.get_arraytypes - Obtiene la matriz tipos de sistemas de apoyo
actualmente.
•pygame.surfarray.make_surface - Copiar un array a una nueva superficie
•pygame.surfarray.map_array - Mapa 3D una serie en una variedad 2d
•pygame.surfarray.pixels2d - Referencia 2d pí píxeles en una serie
•pygame.surfarray.pixels3d - Referencia pí píxeles en una serie 3d
•pygame.surfarray.pixels_alpha - Referencia alfas pí píxel en una matriz 2D
•pygame.surfarray.use_arraytype - Establece el sistema de matriz que se utiliza para
arreglos de superficie
•pygame.time - pygame módulo de control de tiempo
•pygame.time.Clock - crear un objeto de ayudar a tiempo de pista
•Clock.get_fps - calcular el reloj de imá
imágenes
•Clock.get_rawtime - el tiempo real utilizado en la anterior garrapata
•Clock.get_time - tiempo empleado en el anterior garrapata
•Clock.tick - actualizar el reloj
•Clock.tick_busy_loop - actualizar el reloj
•pygame.time.delay - una pausa en el programa para una cantidad de tiempo
•pygame.time.get_ticks - obtener el tiempo en milisegundos
•pygame.time.set_timer - varias veces crear un evento en el caso de la cola
•pygame.time.wait - una pausa en el programa para una cantidad de tiempo
•pygame.transform - pygame módulo para transformar las superficies
•pygame.transform.average_surfaces - encontrar la media de la superficie de muchas
superficies.
•pygame.transform.chop - obtiene una copia de una imagen con un espacio interior eliminado eliminado
•pygame.transform.flip - tapa en sentido vertical y horizontal

Numero 3 www.aprenderpython.com 35
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME

•pygame.transform.laplacian - encontrar bordes en una superficie


•pygame.transform.rotate - girar una imagen
•pygame.transform.rotozoom - filtrada escala y rotació
rotación
•pygame.transform.scale - tamañ
tamaño a nueva resolució
resolución
•pygame.transform.scale2x - especializados imagen Duplicador
•pygame.transform.smoothscale - escala de una superficie a un tamañtamaño arbitrario sin
problemas
•pygame.transform.threshold - considera que, así así como el nú
número de pípíxeles en una
superficie está
están dentro de un umbral de un color.
•pygame.quit - uninitialize todos los mó
módulos de pygame
•pygame.register_quit - registrar una funció
función que se llama cuando se cierra pygame
•pygame.version - pequeñ
pequeño mó módulo que contiene informació
información de versió
versión
•pygame.version.ver - número de versió
versión como una cadena
•pygame.version.vernum - tupled enteros de la versió
versión

Bueno despues de esta larga lista, espero que la traduccion sea entendible, pero cualquier
duda pueden consulta un manual en de funciones que se encuentra en nuestro foro, en la
seccion de PyGame no dejen de consultarlo.

Fuente:
www.pygame.com

Numero 3 www.aprenderpython.com 36
MUNDO PYTHON
Codigo Fuente Stars
Bueno esto funciona con el modulo de PyGame es un escenario donde veran
como si viajara en el espacio, si das clic izquierdo sobre otro punto del
escenario se vera las estrellas como vienen desde el punto donde dio clic.

import random, math, pygame


from pygame.locals import *

#constantes
WINSIZE = [640, 480]
WINCENTER = [320, 240]
NUMSTARS = 150

def init_star():
"creates new star values"
dir = random.randrange(100000)
velmult = random.random()*.6+.4
vel = [math.sin(dir) * velmult, math.cos(dir) * velmult]
return vel, WINCENTER[:]

def initialize_stars():
"creates a new starfield"
stars = []
for x in range(NUMSTARS):
star = init_star()
vel, pos = star
steps = random.randint(0, WINCENTER[0])
pos[0] = pos[0] + (vel[0] * steps)
pos[1] = pos[1] + (vel[1] * steps)
vel[0] = vel[0] * (steps * .09)
vel[1] = vel[1] * (steps * .09)
stars.append(star)
move_stars(stars)
return stars

Numero 3 www.aprenderpython.com 37
MUNDO PYTHON
Codigo Fuente Stars
def draw_stars(surface, stars, color):
"used to draw (and clear) the stars"
for vel, pos in stars:
pos = (int(pos[0]), int(pos[1]))
surface.set_at(pos, color)

def move_stars(stars):
"animate the star values"
for vel, pos in stars:
pos[0] = pos[0] + vel[0]
pos[1] = pos[1] + vel[1]
if not 0 <= pos[0] <= WINSIZE[0] or not 0 <= pos[1] <=
WINSIZE[1]:
vel[:], pos[:] = init_star()
else:
vel[0] = vel[0] * 1.05
vel[1] = vel[1] * 1.05

def main():
"This is the starfield code"
#Crear su escenario
random.seed()
stars = initialize_stars()
clock = pygame.time.Clock()
#iniciar y preparar pantalla
pygame.init()
screen = pygame.display.set_mode(WINSIZE)
pygame.display.set_caption('pygame Stars Example')
white = 255, 240, 200
black = 20, 20, 40
screen.fill(black)

Numero 3 www.aprenderpython.com 38
MUNDO PYTHON
Codigo Fuente Stars
#main game loop
done = 0
while not done:
draw_stars(screen, stars, black)
move_stars(stars)
draw_stars(screen, stars, white)
pygame.display.update()
for e in pygame.event.get():
if e.type == QUIT or (e.type == KEYUP
and e.key == K_ESCAPE):
done = 1
break
elif e.type == MOUSEBUTTONDOWN and
e.button == 1:
WINCENTER[:] = list(e.pos)
clock.tick(50)

# Si Python dice ejecutar, Nosotros deberiamos ejecutar


if __name__ == '__main__':
main()

Numero 3 www.aprenderpython.com 39
MUNDO PYTHON
BIBLIOTECA
La Biblioteca de Python: He
estado reuniendo casi toda la
documentación que hay
disponible en Internet acerca de
Python, para brindarla a
nuestros usuarios del foro.

Enlace: Foro
http:www.aprenderpytho
n.com/smf/

Actualmente disponemos de 100 libros


aproximadamente entres los cuales el nivel en que se encuentren cada
tenemos manuales, guías, tutoriales, usuario del foro, esperamos que dia
cursos, presentación y otros de diferente a dia sigua creciendo nuestra
tipo, toda esta documentación se biblioteca tengo planeado poner
encuentra en formato PDF y en idioma parte de ella online, es decir en
Español y otra documentación en Ingles. formato Flash Paper para que
En línea tenemos 30 documentos para puedan acceder fácilmente, espero
consultar en formato Flash Paper, dentro se animen a registrarse dentro del
del foro existen diferentes niveles de foro y disfruten de toda esta
usuarios que se van adquiriendo por sus documentación y no solo de la
aportes, mensajes y comentarios dentro documentación si no de la gran
de nuestra comunidad del foro, cada comunidad que hay dentro del foro,
nivel tiene una diferente biblioteca con y todo lo que tiene para brindarles
documentación diferente en cada nivel los usuarios del foro.
es importante que tener en cuenta que la
documentación esta clasificado según

Numero 3 www.aprenderpython.com 40
MUNDO PYTHON
Entrevista a RadicalEd
En esta entrevista vamos a ver
quien RadicalEd y que se
Codigo Latino este gran blog
que distribuye de manera
gratuita su Revista Codigo
Latino actualmente en la Edicion
12.

Codigo Latino: Python


http://revistacodigolatin 3- Quienes participan en la elaboracion de
o.blogspot.com/ la Revista?
Todo el que quiera dar un aporte en código que
Para empezar vamos con las sea de su propiedad y lo quiera compartir.
preguntas:
4- De donde Eres?
1- Que es Codigo Latino? Respuesta 2 :P
Código Latino es una revista de
5- Cuanto llevas programando?
programación, como bien dice,
Empecé en el año 2001 cuando conocí Lenguaje
para la comunidad de
C, pero realmente le cogí un aprecio enorme a la
latinoamérica.
programación en el 2004 que conocí SoloCodigo
2- Donde nace Codigo y más ahora con Python, hace 3 años.
Latino? 6- Que tan frecuente publicas las revistas?
Nacé en Lima - Perú, por parte
En el google groups de Código Latino
de un excelente programador
http://groups.google.com/group/codigolatino/ se
llamado Blag
tuvó una discusión del asunto y se decidio que
http://atejada.blogspot.com,
debía salir mensual.
ahora lo manejo yo, RadicalEd
de Cali - Colombia, debido a las 7- Que proyectos tienes para el futuro?
grandes ocupaciones del editor Acá los puedes ver :D
anterior. http://radicalpython.blogspot.com/2009/01/meme-
mis-propositos-para-el-2009.html

Numero 3 www.aprenderpython.com 41
MUNDO PYTHON
Curso Python

Hola a todos como saben se inicio un ¾Evaluar expresiones


curso de Introduccion a la Sintaxis ¾Operadores y expresiones
Python el cual se realizo por medio del ¾El orden de las operaciones
foro, no vamos a continuar con el curso ¾Las operaciones sobre cadenas
de esta revista sino que pienso ¾Composición
continuar con los cursos de Python ¾Los comentarios
dentro del foro estoy en proceso de ¾Funciones
implementar la plataforma de Moodle ¾Conversión de tipos
para los proximos cursos que se ¾Funciones matemáticas
realicen en nuestra web. En el curso ¾Composición
que finalizo el 10 de marzo de 2009 se ¾Añadir funciones nuevas
vio el siguiente temario: ¾Las variables y los parámetros son
¾Comenzando a programar locales
¾El primer programa ¾Diagramas de pila
¾Valores y tipos ¾El operador módulo
¾Variables ¾Expresiones booleanas
¾Sentencias ¾Operadores lógicos

Numero 3 www.aprenderpython.com 42
MUNDO PYTHON
Curso ¾Comparació
Comparación de cadenas
Python ¾Las cadenas son inmutables
¾Bucles y conteo
¾El mó
módulo "string"
¾Clasificació
Clasificación de caracteres
¾Listas
¾Pertenencia a una lista
¾Que pasa con el comando for en lista
¾CUERPO
¾Porciones (slices)
¾Listas anidadas
¾Matrices
¾Cadenas y listas
¾Tuplas
¾Asignació
Asignación de tuplas
¾Números aleatorios
¾Ejecución condicional ¾Lista de nú
números aleatorios
¾Ejecución alternativa ¾Diccionarios
¾Condiciones anidadas ¾Método
¾Matrices dispersas
¾return
¾Enteros largos
¾Recursividad infinita ¾Contar letras
¾Entrada por teclado ¾Archivos
¾Valores de retorno ¾Escribir variables
¾Desarrollo de programas ¾Directorios
¾Composición ¾Excepciones
¾Funciones booleanas ¾Clases y objetos
¾Flujo de ejecución ¾Instancias como pará
parámetro
¾Comprobación de tipos ¾Reflexiones sobre este importante punto
¾Asignación múltiple ¾Clases y funciones
¾La sentencia while ¾Modificadores
¾¿Qué
Qué es mejor?
¾Tablas
¾Clases y mé
métodos
¾Variables locales
¾El mé
método de inicializació
inicialización
¾Cadenas ¾Sobrecarga de operadores
¾El bucle for ¾Polimorfismo
¾Porciones de cadenas ¾Conjuntos de objetos

Numero 3 www.aprenderpython.com 43
MUNDO PYTHON
ENLACES
• FAQ PYTHON ES:
http://www.aprenderpython.com/python/?page_id=555

• FORO APRENDER PYTHON:


http://www.aprenderpython.com/smf/

• VJUEGOS.ORG:
http://www.vjuegos.org/index.php?option=com_frontpage&Itemid=1

• BLOG: MUNDO PYTHON

• WINAUDIT: http://www.pxserver.com/

• VPYTHON: http://www.vpython.org/

• PYGAME: http://www.pygame.org/news.html

• PYTHON Y BASES DE DATOS:


http://www.cdlibre.org/consultar/catalogo/Python_Bases-de-
datos.html

Numero 3 www.aprenderpython.com 44
MUNDO PYTHON
CONTACTO
HOLA
SI TIENES ALGUNA SUGERENCIA O ARTICULO QUE QUIERAS
QUE SE PUBLIQUE EN LA PROXIMA EDICION, CON
RESPECTO A LA REVISTA PUEDES ESCRIBIR AL CORREO
QUE APACERECE ENSEGUIDA.
PARA LA PUBLICIDAD SI DESEAS ANUNCIARTE CON
NOSOTROS SOLO DEBES ESCRIBIR AL CORREO,
¿PREGUNTARAS POR QUE ANUNCIAR CON NOSOTROS?
• ES UNA REVISTA LIBRE
• MUCHAS PERSONAS DESCARGAN LA REVISTA
• LOS COSTOS NO SON ALTOS
• DISPONEMOS DE PAGINA WEB
AUTORES:
• DANIEL BERMUDEZ
PAGINA WEB: HTTP:WWW.APRENDERPYTHON.COM
• CORREO ELECTRONICO: APRENDERPYTHON@GMAIL.COM
• FORO: WWW.APRENDERPYTHON.COM.SMF/
• PUBLICIDAD: APRENDERPYTHON@GMAIL.COM
• BLOG: MUNDO PYTHON

Numero 3 www.aprenderpython.com 45
MUNDO PYTHON
PUBLICIDAD

http://web.educahome.com/shop/
index.asp?vendedorid=12

http://web.educahome.com/shop/index.asp?vendedorid=12

Numero 3 www.aprenderpython.com 46