Revista Python 3

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

Views 141 Downloads 66 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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: [email protected] 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