PYTHON Y LAS BASES DE DATOS

VPython

NUMERO 3

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.

Python 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/pythones-el-lenguaje-de-programacion-mas-popular-del-2007-segun-el-indicetiobe.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. Python 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. Python viene con enorme soporte para librerías que hacen mucho de lo que usualmente se gasta tiempo escribiendo usando otro lenguaje. Python 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. Python 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ólo só en Windows, usted lo prefiere, puede acceder a bases de datos utilizando Microsoft ADO del paquete a través de travé COM. Para obtener más información má informació sobre el uso de Python en Windows, consulte la Python Programming on Win32 , por Mark Hammond y Andy Robinson (O'Reilly). ADO desde COM y (O'Reilly). son específicos de cada plataforma, y especí este libro se centra en la plataforma usando Python.. Sin embargo, en http://adodbapi.sourceforge.net/ http://adodbapi.sourceforge.net/ encontrará una extensión útil de Python encontrará extensió que permite acceder indirectamente a través de ADO DBAPI. travé

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 conexión con los parámetros adecuados. conectar devuelve una instancia de conexión, lo que representa una conexión con la base de datos. En caso de suministrar metodos commit y rollback a una cantidad de transacciones, un método para llamar a cerrar tan pronto como haya terminado con la base de datos, y un metodo cursor, para devolver el cursor. El cursor proporciona metodos y atributos utilizados para las operaciones de la base de datos. Un DBAPI compatible con el módulo proporciona, excepción clases, atributos descriptivos, fábrica de funciones y descripción de los atributos de tipo.

Clases de excepción Un DBAPI compatible con módulo de suministros, excepción clases de advertencia, error, y varias subclases de error. Advertencia indica anomalías tales como el truncamiento de datos durante la inserción. Subclases de error indican los diversos tipos de errores que su programa puede encontrar cuando se trata de la base de datos y la DBAPI compatible con las interfaces del módulo del mismo. En general, el código utilizado en una 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ódulo, mó tiene un atributo paramstyle para identificar el estilo de los marcadores utilizados como marcadores de posición posició para los parámetros. Insertar pará marcadores en tales sentencias de SQL que se pasa al metodo de curso de casos, como método de ejecución, para mé ejecució utilizar en tiempo de ejecución ejecució determinado por los valores de los parámetros. Digamos, por ejemplo, que pará usted necesita para obtener las filas de la tabla de base de datos sobre el terreno donde ATABLE allá equivale al allá valor actual de Python variable x. Asumiendo que el cursor se llama c ejemplo, podría realizar esta tarea podrí mediante el uso de Python-la cadena de Pythonformato operador%, de la siguiente manera: c.execute ( "SELECT * FROM ATABLE DONDE lejos% r = '% x) Sin embargo, este no es el enfoque recomendado. Este enfoque genera una cadena de declaración para cada valor declaració de x, que requieren esas declaraciones que se analiza y se preparó de nuevo preparó cada vez.

try: try: ... except module.Error, err: module.Error, err: ... para atrapar a todos los errores relacionados con la base de datos que usted necesita manejar sin necesidad de terminar. Hilo de seguridad Cuando un DBAPI obedece al módulo, tiene un mó atributo threadsafety mayor que 0, el módulo es mó la afirmación de un cierto nivel del hilo de afirmació seguridad para la interfaz de la base de datos. En lugar de basarse en esto, es más seguro y má más portátil para garantizar que un único hilo portá tiene acceso exclusivo un determinado recurso externo, tales como una base de datos.

Numero 3

www.aprenderpython.com

6

MUNDO PYTHON
PYTHON Y LAS BASES DE DATOS
Con el parámetro de sustitución, se pasa a pará sustitució ejecutar una única declaración de cadena, con declaració un marcador de posición en lugar de el valor del posició parámetro. Esto permite ejecutar realizar el pará analisis y la preparación sólo una vez, lo que preparació só potencialmente da un mejor rendimiento. Por ejemplo, si un módulo de paramstyle atributo es mó "qmark ', puede expresar la consulta como: c.execute('SELECT * FROM ATABLE WHERE c.execute('SELECT AFIELD=?', [x]) La cadena de sólo lectura atributo paramstyle le só indica a su programa de cómo debe usar el có parámetro de sustitución con dicho módulo. Los pará sustitució mó valores posibles de paramstyle son: formato El marcador es %s, como en la cadena de formato. Una consulta tiene el siguiente aspecto: tiene c.execute('SELECT * FROM ATABLE WHERE AFIELD=%s', [x]) c.execute('SELECT nombre El marcador es la siguiente: nombre, y los parámetros se denominan. Una consulta tiene el pará siguiente aspecto: c.execute('SELECT * FROM ATABLE WHERE AFIELD=:x', {'x':x}) c.execute('SELECT numérico numé El marcador es el siguiente :n, que el parámetro del número. Una consulta tiene el siguiente pará nú aspecto: c.execute('SELECT * FROM ATABLE WHERE AFIELD=:1', [x]) c.execute('SELECT pyformat El marcador es %(nombre)s, y los parámetros se denominan. Una consulta tiene el %(nombre)s, pará siguiente aspecto: c.execute('SELECT * FROM ATABLE WHERE AFIELD=%(x)s', {'x':x}) c.execute('SELECT AFIELD=%(x)s', qmark El marcador es ?. Una consulta tiene el siguiente aspecto: c.execute('SELECT * FROM ATABLE WHERE AFIELD=?', [x]) c.execute('SELECT

Numero 3

www.aprenderpython.com

7

MUNDO PYTHON
PYTHON Y LAS BASES DE DATOS
Cuando paramstyle no es ni 'pyformat "ni "nombre ", el segundo argumento del método de 'pyformat mé ejecución es una secuencia. Cuando los parámetros son nombres (es decir, paramstyle es ejecució pará 'pyformat'o 'nombre '), el segundo argumento del método de ejecución es un diccionario. mé ejecució Fabricacion de funciones Parámetros pasados a la base de datos a través de marcadores de posición debe ser Pará travé posició normalmente del tipo adecuado: esto significa Python números (enteros o valores de punto ú n flotante), cadenas (planas o Unicode), y None para representar SQL NULL. No hay ningún Unicode), ningú tipo universalmente utilizado para representar las fechas, horas y objetos binarios largos (BLOB). Un DBAPI compatible con módulo de suministros de la fabricacion de funciones, mó para construir funciones de esos objetos. El tipo utilizados para este fin por la mayoría de para mayorí DBAPI de módulos son compatibles con los suministrados por el módulo y datetime ó ó m m mxDateTime, y tipos de cadenas o de tipo buffer de BLOB. Las funciones de fábrica mxDateTime, especificadas por el DBAPI son las siguientes. Binario Binary (string): Devuelve un objeto que representa la cadena de bytes dado como BLOB. string): como Fecha Fecha (año, mes, día) :Devuelve un objeto que representa la fecha especificada. (añ dí DateFromTicks DateFromTicks (s) :Devuelve un objeto que representa la fecha s segundos después de la despu época del módulo de tiempo, DateFromTicks (time.time ()) es "el día de hoy." mó dí Tiempo Tiempo (hora, minuto, segundo) :Devuelve un objeto que representa el tiempo representa especificado. TimeFromTicks TimeFromTicks (s) :Devuelve un objeto que representa el momento s segundos después despué de la época del módulo de tiempo. Por ejemplo, TimeFromTicks (time.time ()) es "ahora". mó

Numero 3

www.aprenderpython.com

8

MUNDO PYTHON
PYTHON Y LAS BASES DE DATOS

Tipo Atributo Descripción Descripció Un ejemplo de cursor del atributo descripción, describe los tipos y otras características de descripció caracterí cada columna de una consulta. Cada columna de tipo (el segundo elemento de la tupla que elemento describe la columna) es igual a uno de los siguientes atributos de la DBAPI compatible con el módulo: mó 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úmeros de cualquier tipo nú ROWID Describe las columnas que contienen un número de identificación de fila nú identificació STRING Describe las columnas que contienen el texto de cualquier tipo Una descripción del cursor y, en particular, cada columna de tipo, es principalmente útil para descripció principalmente la introspección sobre la base de datos y el programa con que está trabajando. Esa introspecció está introspección puede ayudarle a escribir en general los módulos y trabajo con tablas introspecció mó utilizando diferentes esquemas, incluidos los esquemas que pueden ser no conocidos en el pueden momento que usted está escribiendo el código. á ó est c

Numero 3

www.aprenderpython.com

9

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

Numero 3

www.aprenderpython.com

10

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

Numero 3

www.aprenderpython.com

11

MUNDO PYTHON
PYTHON Y LAS BASES DE DATOS

c.executemany('UPDATE atable SET x=? WHERE y=?',(12,23),(23,34)) c.executemany('UPDATE cuando paramstyle es' qmark 'es equivalente a, pero más rápido que los dos estados: má rá c.execute('UPDATE atable SET x=12 WHERE y=23') c.execute('UPDATE c.execute('UPDATE atable SET x=23 WHERE y=34') c.execute('UPDATE Fetchall c.fetchall () Devuelve el resto de filas resultado de la última consulta como una secuencia de tuplas. tuplas. Plantea una excepción si la última operación no fue una consulta SELECT. excepció operació Fetchmany c.fetchmany (n) Retorna hasta n restantes resultado de filas de la última consulta como una secuencia de tuplas. Plantea una excepción si la última operación no fue una consulta SELECT. tuplas. excepció operació Fetchone c.fetchone () Devuelve el siguiente resultado de la última fila de la consulta como una tupla. Plantea una tupla. excepción si la última operación no fue una consulta SELECT. excepció operació RowCount Un atributo de sólo lectura que se especifica el número de filas afectadas de la última só nú operación, o -1 si el módulo esta activo para determinado valor. ó ó operaci m

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 utilizado libremente para propósitos no comerciales, pero debe comprar una licencia para uso comercial. Hay tantas bases de datos relacionales que no puedo enumerarlas todas, pero aquí hay algunas de las más populares:

ODBC Open Database Connectivity (ODBC) es una manera estándar para conectarse a diferentes bases de datos, incluidos algunos que no soporta DBAPI , como Microsoft Jet (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/mysqlpython. 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: Python in a Nutshell, 2nd Edition Fuente: Nutshell,

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 IDLE puede ejecutarse el programa. Para ejcutar un programa en VPython tenemos tres posibilidades: 1.- Abrir IDLE y en él se carga el programa. Para ejecutarlo se pulsa F5. 2.- Si el programa lleva la extensión .py, con el botón derecho permite abrirlo directamente con IDLE. 3.- Si la extensión es .py al pulsar dos veces sobre el programa se ejecuta directamente. Hay algunas diferencias entre estas tres formas. La diferencia principal entre las dos primeras y la tercera es el entorno.

Si abres IDLE y cargas un rograma, al rograma, ejecutarlo se abren automáticamente dos automá ventanas, una de grácos y un shell. Este ventanas, grá shell permite ver los mensajes de error o introducir datos que te pida el programa. Si programa. usamos la tercera opción y pedimos opció directamente el programa, aparece una programa, ventana del DOS que cumple el papel del shell pero con una diferencia importante: si importante: hay un error se cierra automáticamente, automá ticamente, con lo que no llegas a verlo. verlo. La diferencia entre las dos primeras formas de abrir un programa es la dependencia de IDLE: - Si abres IDLE y cargas un programa, programa, cuando lo cierres IDLE permanecerá permanecerá abierto. abierto.

Numero 3

www.aprenderpython.com

20

MUNDO PYTHON

VPython

- Si lo haces al revés, IDLE se cierra automáticamente al cerrar el programa. Una observación importante es IDLE siempre guarda el programa antes de ejecutarlo. Por tanto, si hacemos modicaciones de las que no estemos seguros, es conveniente grabarlo con otro nombre antes de ejecutarlo. 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.

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. El manejo básico de una pantalla gráca se hace con el ratón. - La tecla izquierda no hace nada - La tecla derecha permite girar el punto de vista de la escena - Pulsando las dos teclas y arrastrando el ratón podemos hacer zoom.

Numero 3

www.aprenderpython.com

21

MUNDO PYTHON
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.foreground Indica el color por defecto en el que VPython va a dibujar los objetos que creemos scene.fullscreen Si ponemos scene.fullscreen = 1 la ventana de grácos funciona en pantalla completa. Por defecto se tiene scene.fullscreen = 0.

VPython

scene.autoscale Por defecto VPython escala los objetos para que quepan todos en pantalla. Si no queremos que lo haga debemos poner scene.autoscale = 0 Iluminación Al empezar el programa, la escena se visualiza con una mezcla entre luz ambiente y dos focos de luz, pero nosotros 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á mirando la cámara. Por defecto es scene.center = está mara. (0,0,0). Este es también el punto alrededor del que gira la cámara cuando la movemos con el tambié ratón. scene.forward es la dirección a la que apunta la cámara. Por tanto, podemos pensar ó rat direcció mara. tanto, que la cámara está colocada en la posición scene.center - scene.forward está posició scene.range nos dice la sección de espacio que abarca la cámara. Al empezar VPython su secció mara. 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. Hay más ódenes que permiten scene.autoscale=0. indicar el título, tamaño o posición de la ventana. Si quieren mas informacion pueden , tamañ ó tulo posici ventana. ingresar al foro en la biblioteca del nivel medio, hay un documento del cual tome esta parte. medio,

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á mirando la cámara. Por defecto es scene.center = está mara. (0,0,0). Este es también el punto alrededor del que gira la cámara cuando la movemos con el tambié ratón. scene.forward es la dirección a la que apunta la cámara. Por tanto, podemos pensar ó rat direcció mara. tanto, que la cámara está colocada en la posición scene.center - scene.forward está posició scene.range nos dice la sección de espacio que abarca la cámara. Al empezar VPython su secció mara. 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. Hay más ódenes que permiten scene.autoscale=0. indicar el título, tamaño o posición de la ventana. Si quieren mas informacion pueden , tamañ ó tulo posici ventana. ingresar al foro en la biblioteca del nivel medio, hay un documento del cual tome esta parte. medio,

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ándar pygame excepción está excepció •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úmero de versión de SDL nú versió •pygame.init - inicializar todos los módulos importados pygame mó •pygame.cdrom - pygame módulo de control de audio de CD-ROM CD•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ón de la pista informació •CD.get_busy - true si la unidad está reproduciendo audio está •CD.get_current - la posición de reproducción de audio actual posició reproducció •CD.get_empty - False si es un CD-ROM en la unidad CD•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úmero de pistas en el CD-ROM nú CD•CD.get_paused - true si la unidad está en pausa está •CD.get_track_audio - true si el cdrom pista tiene datos de audio •CD.get_track_length - longitud de pista de un CD-ROM CD•CD.get_track_start - hora de inicio de la pista de un CD-ROM CD•CD.init - inicializar una unidad de CD-ROM para su uso CD•CD.pause - detener temporalmente la reproducción de audio reproducció •CD.play - iniciar la reproducción de audio reproducció •CD.quit - uninitialize una unidad de CD-ROM para su uso CD•CD.resume - volver a la reproducción de audio reproducció •CD.stop - detener la reproducción de audio reproducció •pygame.cdrom.get_count - número de unidades de CD en el sistema •pygame.cdrom.get_init - true si el módulo se inicializa cdrom mó •pygame.cdrom.init - inicializar el módulo de cdrom mó •pygame.cdrom.quit - uninitialize módulo, el CD-ROM CD•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ítulo actual de la ventana tí •pygame.display.get_driver - obtener el nombre de la pantalla de fondo pygame •pygame.display.get_init - true si el módulo de visualización se inicializa mó visualizació •pygame.display.get_surface - obtener una referencia a la superficie actualmente fijado pantalla •pygame.display.get_wm_info - Obtener información sobre el actual sistema de ventanas informació •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ón visualizació •pygame.display.iconify - iconificar superficie de la pantalla •pygame.display.Info - Crear una pantalla de vídeo objeto de información ví informació •pygame.display.init - inicializar el módulo de visualización mó visualizació •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ón visualizació •pygame.display.quit - uninitialize módulo de la pantalla •pygame.display.set_caption - configura el título actual de la ventana tí •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ón visualizació •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ón de la pantalla de software muestra actualizació •pygame.draw - pygame módulo de dibujo de formas •pygame.draw.aaline - llamar la multa antidistorsión líneas antidistorsió •pygame.draw.aalines - pygame.draw.aalines (de superficie, el color, el cerrado, pointlist, pointlist, mezcla = 1): Rect retorno •pygame.draw.arc - establecer una sección parcial de una elipse secció •pygame.draw.circle - dibujar un círculo en torno a un punto cí

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ángulo rectá •pygame.draw.line - dibujar un segmento recto •pygame.draw.lines - extraer múltiples segmentos de línea contiguos mú lí •pygame.draw.polygon - dibujar una forma con cualquier número de lados nú •pygame.draw.rect - dibujar un rectángulo de forma rectá •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. de suceso Id. •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án esperando en la cola á est •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ón de los dispositivos de entrada con otras distribució 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á negrita prestará •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ó cursiva dictó •Font.get_linesize - obtener la línea de espacio de la fuente de texto lí •Font.get_underline - comprobar si el texto será prestado con un subrayado será •Font.metrics - Obtiene los parámetros de cada personaje en el pasado la cadena. pará •Font.render - sacar un nuevo texto sobre la superficie •Font.set_bold - permitir la prestación de falso negrita prestació •Font.set_italic - permitir la prestación de falso y cursiva prestació •Font.set_underline - controlar si el texto se hace hincapié en una hincapié •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ódulo se inicializa fuente mó •pygame.font.init - inicializar el módulo de la fuente mó •pygame.font.match_font - encontrar una fuente específica sobre el sistema especí •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ágenes imá •pygame.image.frombuffer - crear una nueva superficie que comparte datos en una cadena de amortiguación amortiguació •pygame.image.fromstring - crear una nueva superficie de la cadena de amortiguación amortiguació •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ágenes a la cadena de amortiguación imá amortiguació •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ódulo de mando se inicializa mó •pygame.joystick.init - inicializar el módulo de mando mó •pygame.joystick.Joystick - crear un nuevo objeto Joystick •Joystick.get_axis - obtener la posición actual de un eje posició •Joystick.get_ball - obtener la posición relativa de una rueda de posició •Joystick.get_button - obtener el estado actual de botón botó •Joystick.get_hat - obtener la posición de un joystick sombrero posició •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úmero de ejes de un Joystick nú •Joystick.get_numballs - obtener el número de Trackballs en un Joystick nú •Joystick.get_numbuttons - obtener el número de botones de un joystick nú •Joystick.get_numhats - obtener el número de controles en un sombrero Joystick nú •Joystick.init - inicializar el Joystick •Joystick.quit - uninitialize el Joystick •pygame.joystick.quit - uninitialize el módulo de mando mó

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

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á siendo mixtos está •pygame.mixer.get_init - comprobar si la mesa de mezclas se inicializa •pygame.mixer.get_num_channels - obtener el número total de canales de reproducción nú reproducció •pygame.mixer.init - inicializar el módulo mezclador mó •pygame.mixer.pause - detener temporalmente la reproducción de todos los canales de reproducció 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ón de música después desapareciendo reproducció mú despué •pygame.mixer.music.get_busy - comprobar si el flujo de la música se está reproduciendo mú está •pygame.mixer.music.get_endevent - el caso de obtener un canal envía cuando la enví reproducción se detiene ó reproducci •pygame.mixer.music.get_pos - obtener el tiempo de reproducción de música reproducció mú •pygame.mixer.music.get_volume - obtener el volumen de la música mú •pygame.mixer.music.load - Cargar un archivo de música para su reproducción mú reproducció •pygame.mixer.music.pause - detener temporalmente la reproducción de música reproducció mú •pygame.mixer.music.play - Inicie la reproducción de la música arroyo reproducció mú •pygame.mixer.music.queue - cola de un archivo de música a la actual mú •pygame.mixer.music.rewind - reiniciar música mú •pygame.mixer.music.set_endevent - enviar la música tienen una cita cuando la reproducción mú reproducció se detiene •pygame.mixer.music.set_volume - configura el volumen de la música mú •pygame.mixer.music.stop - detener la reproducción de música reproducció mú •pygame.mixer.music.unpause - reanudar la música en pausa mú •pygame.mixer.quit - uninitialize la mesa de mezclas •pygame.mixer.set_num_channels - establecer el número total de canales de reproducción nú reproducció •pygame.mixer.set_reserved - reserva de canales que se utilizan automáticamente automá •pygame.mixer.Sound - Crear un nuevo objeto de sonido de un archivo •Sound.fadeout - detener la reproducción de sonido después de desvanecimiento reproducció despué •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ántas veces este sonido se reproduce cuá •Sound.get_volume - obtener el volumen de reproducción reproducció •Sound.play - iniciar la reproducción de sonido ó reproducci •Sound.set_volume - configura el volumen de reproducción de sonido para este reproducció •Sound.stop - detener la reproducción de sonido reproducció

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ón de todos los canales de sonido reproducció •pygame.mixer.unpause - reanudar la reproducción en pausa de canales de sonido reproducció •pygame.mouse - pygame módulo para trabajar con el ratón rató •pygame.mouse.get_cursor - obtener la imagen para el sistema de ratón rató •pygame.mouse.get_focused - comprobar si la pantalla de entrada del ratón está recibiendo rató está •pygame.mouse.get_pos - obtener la posición del cursor del ratón posició rató •pygame.mouse.get_pressed - obtener el estado de los botones del ratón rató •pygame.mouse.get_rel - obtener la cantidad de movimiento del ratón ó rat •pygame.mouse.set_cursor - configura el sistema de imagen para el ratón rató •pygame.mouse.set_pos - establecer la posición del cursor del ratón posició rató •pygame.mouse.set_visible - ocultar o mostrar el cursor del ratón rató •pygame.movie - pygame módulo para la reproducción de vídeo MPEG reproducció ví •pygame.movie.Movie - carga un archivo de película MPEG í pel •Movie.get_busy - comprobar si la película se está reproduciendo pelí está •Movie.get_frame - obtener el vídeo actual marco ví •Movie.get_length - la longitud total de la película en cuestión de segundos pelí cuestió •Movie.get_size - obtener la resolución del vídeo resolució ví •Movie.get_time - obtener el tiempo de reproducción actual vide reproducció •Movie.has_audio - comprobar si la película contiene el archivo de audio pelí •Movie.has_video - comprobar si la película contiene el archivo de vídeo pelí ví •Movie.pause - detener temporalmente y reanudar la reproducción reproducció •Movie.play - iniciar la reproducción de una película reproducció pelí •Movie.render_frame - configura el actual marco de vídeo ví •Movie.rewind - reiniciar la reproducción de la película reproducció pelí •Movie.set_display - fijar el objetivo de vídeo de superficie ví •Movie.set_volume - configura el volumen de reproducción de audio reproducció •Movie.skip - adelantar la posición de reproducción de la película posició reproducció pelí •Movie.stop - detener la reproducción de la película reproducció pelí •pygame.Overlay - pygame objeto de superposición de gráficos de vídeo superposició grá ví •Overlay.display - establecer la superposición de los datos de píxeles ó í superposici p •Overlay.get_hardware - comprobar si la superposición es acelerado por hardware superposició •Overlay.set_location - el control que se muestra la superposición superposició •pygame.PixelArray - pygame Objeto de píxel acceso directo de las superficies pí •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ángulo dentro de otro rectá •Rect.clamp_ip - mueve el rectángulo dentro de otro, en lugar rectá •Rect.clip - cultivos dentro de un rectángulo dentro de otro rectá •Rect.clip_ip - cultivos dentro de un rectángulo dentro de otro, en lugar rectá •Rect.collidedict - comprobar si un rectángulo en un diccionario interseca rectá •Rect.collidedictall - comprobar si todos los rectángulos se entrecruzan en un diccionario rectá •Rect.collidelist - comprobar si un rectángulo en una lista interseca rectá •Rect.collidelistall - comprobar si todos los rectángulos en una lista de intersección rectá intersecció •Rect.collidepoint - comprobar si un punto está dentro de un rectángulo está rectá •Rect.colliderect - comprobar si dos rectángulos que se superponen rectá •Rect.contains - comprobar si es un rectángulo dentro de otro rectá •Rect.fit - redimensionar y mover un rectángulo con relación de aspecto rectá relació •Rect.inflate - crecer o reducir el tamaño del rectángulo ñ á tama rect •Rect.inflate_ip - crecer o reducir el tamaño del rectángulo, en lugar tamañ rectá •Rect.move - mueve el rectángulo rectá •Rect.move_ip - mueve el rectángulo, en lugar rectá •Rect.normalize - corregir los tamaños negativos tamañ •Rect.union - une dos rectángulos en un rectá •Rect.union_ip - une dos rectángulos en una, en lugar rectá •Rect.unionall - la unión de muchos rectángulos unió rectá •Rect.unionall_ip - la unión de muchos rectángulos, en lugar unió rectá •pygame.scrap -•pygame.scrap.contains - Los controles, si un determinado tipo está disponible en el está 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ódulo de la chatarra. mó •pygame.scrap.lost - comprueba si el portapapeles es actualmente propiedad de la aplicación. aplicació •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ásico juego con clases de objetos bá •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ágenes imá •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étodo de actualización de contenidos Sprites mé actualizació •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ñala que con el fin de señ adición adició •pygame.sprite.RenderUpdates - Grupo de la clase que sigue sucio actualizaciones •RenderUpdates.draw - blit la Sprite imágenes y realizar un seguimiento de zonas cambiado imá •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ún grupo ningú •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ón de imágenes representació imá •Surface.blit - sacar una imagen a otro •Surface.convert - cambiar el formato de píxel de una imagen pí •Surface.convert_alpha - cambiar el formato de píxel de una imagen incluida por pixel alfas pí •Surface.copy - crear una nueva copia de una superficie •Surface.fill - cubrir la superficie con un color sólido só •Surface.get_abs_offset - encontrar la posición absoluta de un niño del subsuelo dentro de posició niñ 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íxel pí •Surface.get_bitsize - obtener la profundidad de bits de la superficie formato de píxel pí •Surface.get_bounding_rect - encontrar el más pequeño que contiene datos directos má pequeñ •Surface.get_buffer - adquiere un objeto de amortiguación para los píxeles de la superficie. amortiguació pí •Surface.get_bytesize - obtener los bytes utilizados por cada pixel de la superficie •Surface.get_clip - obtener la actual saturación de la superficie saturació •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 y un color mapeado entero •Surface.get_masks - la bitmasks necesarios para convertir entre un color y un mapeado entero •Surface.get_offset - encontrar la posición de un niño del subsuelo dentro de un padre posició niñ •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úmero de bytes utilizados por cada fila de superficie nú •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íxel pí •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íxel pí •Surface.set_clip - configura el área actual de saturación de la superficie saturació •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íxel pí •Surface.unmap_rgb - convierte un número entero asigna un valor de color en color ú n •pygame.surfarray - pygame módulo de acceso a datos a través de la superficie píxel gama travé pí de interfaces •pygame.surfarray.array2d - Copiar píxeles en una serie 2d pí •pygame.surfarray.array3d - Copiar píxeles en una serie 3d pí •pygame.surfarray.array_alpha - Copiar en un píxel alfas 2d gama pí •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íxeles en una serie pí •pygame.surfarray.pixels3d - Referencia píxeles en una serie 3d pí •pygame.surfarray.pixels_alpha - Referencia alfas píxel en una matriz 2D pí •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ágenes imá •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ón rotació •pygame.transform.scale - tamaño a nueva resolución tamañ resolució •pygame.transform.scale2x - especializados imagen Duplicador •pygame.transform.smoothscale - escala de una superficie a un tamaño arbitrario sin tamañ problemas •pygame.transform.threshold - considera que, así como el número de píxeles en una así nú pí superficie están dentro de un umbral de un color. está •pygame.quit - uninitialize todos los módulos de pygame mó •pygame.register_quit - registrar una función que se llama cuando se cierra pygame funció •pygame.version - pequeño módulo que contiene información de versión pequeñ mó informació versió •pygame.version.ver - número de versión como una cadena ó versi •pygame.version.vernum - tupled enteros de la versión versió 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 tenemos manuales, guías, tutoriales, cursos, presentación y otros de diferente tipo, toda esta documentación se encuentra en formato PDF y en idioma Español y otra documentación en Ingles. En línea tenemos 30 documentos para consultar en formato Flash Paper, dentro del foro existen diferentes niveles de usuarios que se van adquiriendo por sus aportes, mensajes y comentarios dentro de nuestra comunidad del foro, cada nivel tiene una diferente biblioteca con documentación diferente en cada nivel es importante que tener en cuenta que la documentación esta clasificado según

el nivel en que se encuentren cada usuario del foro, esperamos que dia a dia sigua creciendo nuestra biblioteca tengo planeado poner parte de ella online, es decir en formato Flash Paper para que puedan acceder fácilmente, espero se animen a registrarse dentro del foro y disfruten de toda esta documentación y no solo de la documentación si no de la gran comunidad que hay dentro del foro, y todo lo que tiene para brindarles los usuarios del foro.

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 o.blogspot.com/
Para empezar vamos con las preguntas:

3- Quienes participan en la elaboracion de la Revista?
Todo el que quiera dar un aporte en código que sea de su propiedad y lo quiera compartir.

4- De donde Eres?
Respuesta 2 :P

1- Que es Codigo Latino?
Código Latino es una revista de programación, como bien dice, para la comunidad de latinoamérica.

5- Cuanto llevas programando?
Empecé en el año 2001 cuando conocí Lenguaje C, pero realmente le cogí un aprecio enorme a la programación en el 2004 que conocí SoloCodigo y más ahora con Python, hace 3 años.

2- Donde nace Codigo Latino?
Nacé en Lima - Perú, por parte de un excelente programador llamado Blag http://atejada.blogspot.com, ahora lo manejo yo, RadicalEd de Cali - Colombia, debido a las grandes ocupaciones del editor anterior.

6- Que tan frecuente publicas las revistas?
En el google groups de Código Latino http://groups.google.com/group/codigolatino/ se tuvó una discusión del asunto y se decidio que debía salir mensual.

7- Que proyectos tienes para el futuro?
Acá los puedes ver :D http://radicalpython.blogspot.com/2009/01/mememis-propositos-para-el-2009.html

Numero 3

www.aprenderpython.com

41

MUNDO PYTHON
Curso Python

Hola a todos como saben se inicio un curso de Introduccion a la Sintaxis Python el cual se realizo por medio del foro, no vamos a continuar con el curso de esta revista sino que pienso continuar con los cursos de Python dentro del foro estoy en proceso de implementar la plataforma de Moodle para los proximos cursos que se realicen en nuestra web. En el curso que finalizo el 10 de marzo de 2009 se vio el siguiente temario: Comenzando a programar El primer programa Valores y tipos Variables Sentencias

Evaluar expresiones Operadores y expresiones El orden de las operaciones Las operaciones sobre cadenas Composición Los comentarios Funciones Conversión de tipos Funciones matemáticas Composición Añadir funciones nuevas Las variables y los parámetros son locales Diagramas de pila El operador módulo Expresiones booleanas Operadores lógicos

Numero 3

www.aprenderpython.com

42

MUNDO PYTHON
Curso Python
Comparación de cadenas Comparació Las cadenas son inmutables Bucles y conteo El módulo "string" mó Clasificación de caracteres Clasificació Listas Pertenencia a una lista Que pasa con el comando for en lista CUERPO Porciones (slices) Listas anidadas Matrices Cadenas y listas Tuplas Asignación de tuplas Asignació Números aleatorios Lista de números aleatorios nú Diccionarios Método Matrices dispersas Enteros largos Contar letras Archivos Escribir variables Directorios Excepciones Clases y objetos Instancias como parámetro pará Reflexiones sobre este importante punto Clases y funciones Modificadores ¿Qué es mejor? Qué Clases y métodos mé El método de inicialización mé inicializació Sobrecarga de operadores Polimorfismo Conjuntos de objetos

Ejecución condicional Ejecución alternativa Condiciones anidadas return Recursividad infinita Entrada por teclado Valores de retorno Desarrollo de programas Composición Funciones booleanas Flujo de ejecución Comprobación de tipos Asignación múltiple La sentencia while Tablas Variables locales Cadenas El bucle for Porciones de cadenas

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-dedatos.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