Revista Mundo Python 3 Edicion

Page 1

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.

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/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. 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 ). ADO desde COM y (O'Reilly). 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 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.

Numero 3

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:

www.aprenderpython.com

5


MUNDO PYTHON PYTHON Y LAS BASES DE DATOS Estilo de Parametros

try: try: ... except module.Error, module.Error, err: 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ó módulo, tiene un atributo threadsafety mayor que 0, el mó módulo es la afirmació afirmación de un cierto nivel del hilo de seguridad para la interfaz de la base de datos. En lugar de basarse en esto, es má más seguro y más portá portátil para garantizar que un único hilo tiene acceso exclusivo un determinado recurso externo, tales como una base de datos.

Numero 3

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á Insertar parámetros. 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. Asumiendo que el cursor se llama c ejemplo, podrí podría realizar esta tarea mediante el uso de PythonPython-la cadena de formato 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ó declaración para cada valor de x, que requieren esas declaraciones que se analiza y se preparó preparó de nuevo cada vez.

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 tiene tiene 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 ', {'x':x}) c.execute('SELECT * FROM ATABLE WHERE AFIELD=%(x)s AFIELD=%(x)s', 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ú ú meros (enteros o valores de punto n 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ó ó dulos son compatibles con los suministrados por el mó ó dulo y datetime m m 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ó módulo de tiempo, DateFromTicks (time.time ()) es "el dí día de hoy." 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 és despué 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 elemento elemento 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 la introspecció introspección sobre la base de datos y el programa con que está 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 pueden pueden ser no conocidos en el 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ó función de conectar Un DBAPI compatible con funció función de conexió conexión del mó módulo acepta argumentos que varí varían en funció función del tipo de base de datos y el mó módulo especí específico en 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í específica para conectarse dsn Nombre de la fuente de datos a utilizar para la conexió conexión host Nombre de la má máquina en la que se está á ejecutando la base de est datos password La contraseñ contraseña a utilizar para la conexió conexión user Nombre de usuario para la conexió conexión http://aprenderpython.com/smf /index.php?topic=161.0

Numero 3

Conexió Conexión de objetos Un DBAPI compatible con mó módulo de conexió conexión de la funció función devuelve un objeto que x este es una instancia de la clase de conexió conexión. x suministras los siguientes métodos: Close x.close () Termina la conexió conexión de base de datos y libera todos los 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ó excepción. El DBAPI recomienda, pero no obliga, que para las bases de datos que no soportan las transacciones de la clase Connection utilice un metodo Rollback, Rollback, de modo que x.rollback () plantea AttributeError. AttributeError. Puede probar si la transacció transacción soportada en este momento está '). está con hasattr (x, 'rollback 'rollback').

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

Numero 3

Description Un atributo de só sólo lectura que es una secuencia de siete tuplas tema, por una columna en la última consulta ejecutada: nombre, typecode, typecode, displaysize, displaysize, internalsize, internalsize, precisió precisión, escala, anulable. c.description esto es Nada, si la última operació operación en c no es una consulta o no ha devuelto ningú ningúna descripció descripción util de las columnas que participan. Una descripció descripción del cursor es útil para la mayorí mayoría de la introspecció introspección sobre la base de datos del programa con el que está está trabajando. Esa 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á está escribiendo el código. Execute c.execute (statement, statement, parameters= parameters=None) None) Ejecuta una cadena de SQL a la base de datos con los pará parámetros dados. Pará Parámetros es una secuencia, cuando el mó módulo de la paramstyle es "format ", "num éric" "format", "numé ric" o "qmark "qmark ', y una secuencia de diccionario y cuando es 'named' named' o 'pyformat 'pyformat”” por ejemplo:

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ó ó 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:

Numero 3

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

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

Numero 3

http://www.pxserver.com/

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.

Numero 3

Si abres IDLE y cargas un rograma, rograma, al ejecutarlo se abren automá automáticamente dos ventanas, ventanas, una de grá grácos y un shell. Este shell permite ver los mensajes de error o introducir datos que te pida el programa. programa. Si usamos la tercera opció opción y pedimos directamente el programa, programa, aparece una ventana del DOS que cumple el papel del shell pero con una diferencia importante: importante: si hay un error se cierra automá automáticamente, 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.

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.

Numero 3

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.

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

Numero 3

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

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ó ó n . scene.forward es la direcció rat 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ñ ñ o o posició ó n de la ventana. tulo tama posici 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ó ó n . scene.forward es la direcció rat 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ñ ñ o o posició ó n de la ventana. tulo tama posici 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 CDCD-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 CDCD-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 CDCD-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 CDCD-ROM •CD.get_track_start - hora de inicio de la pista de un CDCD-ROM •CD.init - inicializar una unidad de CDCD-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 CDCD-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 CDCD-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á á 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ó 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ó ó n se detiene reproducci •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ó ó n de sonido reproducci •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í í cula MPEG pel •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ó ó n de los datos de pí í xeles superposici p •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ñ ñ o del rectá á ngulo tama rect •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ú ú mero entero asigna un valor de color en color n •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ó ó n como una cadena versi •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 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

Numero 3

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.

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:

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

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.

Numero 3

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

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.

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

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

Numero 3

¾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

www.aprenderpython.com

42


MUNDO PYTHON Curso Python

¾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

¾Comparació Comparación de cadenas ¾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 ¾Lista de nú números aleatorios ¾Diccionarios ¾Método ¾Matrices dispersas ¾Enteros largos ¾Contar letras ¾Archivos ¾Escribir variables ¾Directorios ¾Excepciones ¾Clases y objetos ¾Instancias como pará parámetro ¾Reflexiones sobre este importante punto ¾Clases y funciones ¾Modificadores ¾¿Qué Qué es mejor? ¾Clases y mé métodos ¾El mé método de inicializació inicialización ¾Sobrecarga de operadores ¾Polimorfismo ¾Conjuntos de objetos

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


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.