Revista Python 3
Revista Python 3
Revista Python 3
DE DATOS
NUMERO 3
VPython
MóDulo para la
representacióon y
animación De
gráficos en 3D
Biblioteca
Python
MUNDO PYTHON
MUNDO PYTHON
Contenido
• AUTOR
• WINAUDIT
• VPYTHON
• PYGAME
• 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/python-
es-el-lenguaje-de-programacion-mas-popular-del-2007-segun-el-indice-
tiobe.html), Python fue el lenguaje con mayor crecimiento en el 2007 con
un incremento del 2.04% desplazando por primera vez en la historia a Perl
y situándose en el 6to lugar del indice.
9Python no sólo es un lenguaje de scripting o un glue language. Es rápido,
cada parte es tan rubusta y escalable como C, C++ y C#, substancialmente
más fácil de aprender y usar que Java y mucho más límpio que Visual
Basic o Perl.
9Python viene con enorme soporte para librerías que hacen mucho de lo
que usualmente se gasta tiempo escribiendo usando otro lenguaje.
9Python se integra muy bién con código de C, C++, Java y .NET y con
objetos COM. Se puede usar para potencializar proyectos existentes.
9Python se puede aprender en unos pocos días, y puede, literalmente,
ahorrarle años de esfuerzo.
Numero 3 www.aprenderpython.com 3
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Si su programa de Python funciona só sólo
en Windows, usted lo prefiere, puede
acceder a bases de datos utilizando
Microsoft ADO del paquete a travétravés de
COM. Para obtener má más informació
información
sobre el uso de Python en Windows,
consulte la Python Programming on
Win32 , por Mark Hammond y Andy
Robinson (O'Reilly
(O'Reilly).
). ADO desde COM y
son especí
específicos de cada plataforma, y
este libro se centra en la plataforma
usando Python.. Sin embargo, en
http://adodbapi.sourceforge.net
http://adodbapi.sourceforge.net//
encontrará
encontrará una extensió
extensión útil de Python
que permite acceder indirectamente a
travé
través de ADO DBAPI.
Numero 3 www.aprenderpython.com 4
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Numero 3 www.aprenderpython.com 5
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Estilo de Parametros
Numero 3 www.aprenderpython.com 6
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Con el pará
parámetro de sustitució
sustitución, se pasa a
ejecutar una única declaració
declaración de cadena, con
un marcador de posició
posición en lugar de el valor del
pará
parámetro. Esto permite ejecutar realizar el
analisis y la preparació
preparación só
sólo una vez, lo que
potencialmente da un mejor rendimiento. Por
ejemplo, si un mó
módulo de paramstyle atributo es
"qmark ', puede expresar la consulta como:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE
AFIELD=?',
[x])
La cadena de sósólo lectura atributo paramstyle le
indica a su programa de có cómo debe usar el
pará
parámetro de sustitució
sustitución con dicho mómódulo. Los
valores posibles de paramstyle son:
formato
El marcador es %s, como en la cadena de formato. Una consulta tienetiene el siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=%s', [x])
nombre
El marcador es la siguiente: nombre, y los pará
parámetros se denominan. Una consulta tiene el
siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=:x', {'x':x})
numé
numérico
El marcador es el siguiente :n, que el pará
parámetro del nú
número. Una consulta tiene el siguiente
aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=:1', [x])
pyformat
El marcador es %(nombre)s
%(nombre)s,, y los pará
parámetros se denominan. Una consulta tiene el
siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=%(x)s
AFIELD=%(x)s',
', {'x':x})
qmark
El marcador es ?. Una consulta tiene el siguiente aspecto:
c.execute('SELECT
c.execute('SELECT * FROM ATABLE WHERE AFIELD=?', [x])
Numero 3 www.aprenderpython.com 7
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Cuando paramstyle no es ni 'pyformat
'pyformat "ni "nombre ", el segundo argumento del mémétodo de
ejecució
ejecución es una secuencia. Cuando los paráparámetros son nombres (es decir, paramstyle es
'pyformat'o 'nombre '), el segundo argumento del mé
método de ejecució
ejecución es un diccionario.
Fabricacion de funciones
Pará
Parámetros pasados a la base de datos a travé través de marcadores de posició
posición debe ser
normalmente del tipo adecuado: esto significa Python nú números (enteros o valores de punto
flotante), cadenas (planas o Unicode),
Unicode), y None para representar SQL NULL. No hay ningú ningún
tipo universalmente utilizado para representar las fechas, horas y objetos binarios largos
(BLOB). Un DBAPI compatible con mó módulo de suministros de la fabricacion de funciones,
para construir funciones de esos objetos. El tipo utilizados para
para este fin por la mayorí
mayoría de
DBAPI de mó m ódulos son compatibles con los suministrados por el mó
m ódulo y datetime
mxDateTime,
mxDateTime, y tipos de cadenas o de tipo buffer de BLOB. Las funciones de fábrica
especificadas por el DBAPI son las siguientes.
Binario
Binary (string):
string): Devuelve un objeto que representa la cadena de bytes dado como
como BLOB.
Fecha
Fecha (añ
(año, mes, dí
día) :Devuelve un objeto que representa la fecha especificada.
DateFromTicks
DateFromTicks (s) :Devuelve un objeto que representa la fecha s segundos despu
después de la
época del mó día de hoy."
módulo de tiempo, DateFromTicks (time.time ()) es "el dí
Tiempo
Tiempo (hora, minuto, segundo) :Devuelve un objeto que representa
representa el tiempo
especificado.
TimeFromTicks
TimeFromTicks (s) :Devuelve un objeto que representa el momento s segundos despu despuéés
de la época del mó
módulo de tiempo. Por ejemplo, TimeFromTicks (time.time ()) es "ahora".
Numero 3 www.aprenderpython.com 8
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Numero 3 www.aprenderpython.com 9
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
La funció Conexió
Conexión de objetos
función de conectar
Un DBAPI compatible con Un DBAPI compatible con mó módulo de conexió
conexión de la
funció funció
función devuelve un objeto que x este es una instancia
función de conexió
conexión del mó
módulo
acepta argumentos que varí de la clase de conexió
conexión. x suministras los siguientes
varían
en funció métodos:
función del tipo de base de
datos y el mó Close
módulo especí
específico en
cuestióó n. La norma recomienda x.close ()
cuesti
DBAPI, pero no obliga, esa Termina la conexió
conexión de base de datos y libera todos los
coneccion acepta nombrar recursos. Llama a cerrar tan pronto como haya
argumentos. En particular, debe terminado con la base de datos. Dejando las conexiones
conectarse al menos aceptando, abiertas a la Base de datos sin necesidad de
argumentos opcionales con los mantenimiento, puede ser una grave fuga de recursos
siguientes nombres: en el sistema.
database
Nombre de la base de datos Commit
especí x.commit ()
específica para conectarse
dsn Compromete a la actual transaccion en la base de
Nombre de la fuente de datos a datos. Si la base de datos no soporta las transacciones,
utilizar para la conexió x.commit () esta seria contraria a lo que espera.
conexión
host
Nombre de la má Cursor
máquina en la que
se está á ejecutando la base de x.cursor ()
est
datos Devuelve una nueva instancia de la clase de Cursor.
password
La contraseñ Rollback
contraseña a utilizar para la
conexió x.rollback ()
conexión
user Retrocede la actual Transacion en la base de datos. Si la
Nombre de usuario para la base de datos no soporta las transacciones, x.rollback ()
conexió plantea una excepció
excepción. El DBAPI recomienda, pero no
conexión
obliga, que para las bases de datos que no soportan las
transacciones de la clase Connection utilice un metodo
http://aprenderpython.com/smf Rollback,
Rollback, de modo que x.rollback () plantea
/index.php?topic=161.0 AttributeError.
AttributeError. Puede probar si la transacció
transacción soportada
en este momento estáestá con hasattr (x, 'rollback
'rollback').
').
Numero 3 www.aprenderpython.com 10
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Objetos cursor Close
c.close ()
Una instancia de conexión proporciona Se cierra el cursor y libera todos los recursos.
al metodo Cursor un retorno de un
objeto C que es una instancia de la Description
clase Cursor. Un cursor de SQL Un atributo de só sólo lectura que es una
representa el conjunto de los resultados secuencia de siete tuplas tema, por una
de una consulta y te permite trabajar columna en la última consulta ejecutada:
con los registros en que se definan, en nombre, typecode,
typecode, displaysize,
displaysize, internalsize,
internalsize,
precisió
precisión, escala, anulable.
secuencia, uno a la vez.
c.description esto es Nada, si la última
Un cursor modelado por el DBAPI es un
operació
operación en c no es una consulta o no ha
concepto más rico, ya que representa la devuelto ningú
ningúna descripció
descripción util de las
única forma en que ejecuta, su columnas que participan. Una descripció
descripción del
programa de consultas SQL, en primer cursor es útil para la mayorí mayoría de la
lugar. Por otra parte, un DBAPI cursor introspecció
introspección sobre la base de datos del
sólo permite avanzar en la secuencia de programa con el que está está trabajando. Esa
resultados (algunas bases de datos introspecció
introspecci ón puede ayudarle a escribir
relacionales, pero no todos, también módulos generales que son capaces de
provee los mas ricos cursores que son trabajar con tablas utilizando diferentes
capaces de ir hacia atrás y hacia esquemas, incluidos los esquemas que
adelante), y no admite la cláusula de pueden no ser plenamente conocido en el
momento que usted está está escribiendo el
SQL “WHERE CURRENT OF
código.
CURSOR”. Estas limitaciones de DBAPI
cursor, activas en DBAPI sujeta al Execute
módulo, proporciona cursores, incluso c.execute (statement,
statement, parameters=
parameters=None)
None)
en RDBMSes que no ofrecen el real Ejecuta una cadena de SQL a la base de
SQL Cursor en todos los cursores de datos con los pará
parámetros dados. ParáParámetros
SQL. Un instancia de la clase Cursor C es una secuencia, cuando el mó módulo de la
suministros muchos atributos y paramstyle es "format
"format",
", "num
"numé
éric" "qmark ',
ric" o "qmark
métodos; de los más utilizados son y una secuencia de diccionario y cuando es
documentados aquí. 'named'
named' o 'pyformat
'pyformat”” por ejemplo:
Numero 3 www.aprenderpython.com 11
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
c.executemany('UPDATE
c.executemany('UPDATE atable SET x=? WHERE y=?',(12,23),(23,34))
cuando paramstyle es' qmark 'es equivalente a, pero má
más rá
rápido que los dos estados:
c.execute('UPDATE
c.execute('UPDATE atable SET x=12 WHERE y=23')
c.execute('UPDATE
c.execute('UPDATE atable SET x=23 WHERE y=34')
Fetchall
c.fetchall ()
Devuelve el resto de filas resultado de la última consulta como una secuencia de tuplas. tuplas.
Plantea una excepció
excepción si la última operació
operación no fue una consulta SELECT.
Fetchmany
c.fetchmany (n)
Retorna hasta n restantes resultado de filas de la última consulta como una secuencia de
tuplas.
tuplas. Plantea una excepció
excepción si la última operació
operación no fue una consulta SELECT.
Fetchone
c.fetchone ()
Devuelve el siguiente resultado de la última fila de la consulta como una tupla.tupla. Plantea una
excepció
excepción si la última operació
operación no fue una consulta SELECT.
RowCount
Un atributo de só sólo lectura que se especifica el núnúmero de filas afectadas de la última
operació
operaci ón, o - 1 si el mó
m ódulo esta activo para determinado valor.
Numero 3 www.aprenderpython.com 12
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
DBAPI
Numero 3 www.aprenderpython.com 13
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
Oracle
Oracle es una gran RDBMS comercial. Para la interfaz de Oracle, puede utilizar
DCOracle2, disponible en http://www.zope.org/Members/matt/dco2. DCOracle2 del
paramstyle es "numérico". La Funcion de Conectar acepta una sola opcion, sin
nombre argumento de cadena con la sintaxis:
"user/pasword@service"
cx_oracle (http://www.python.net/crew/atuining/cx_Oracle/index.html) es una
alternativa. paramstyle es 'named '; La funcion conectar acepta una cadena en el
mismo formato que la DCOracle2, o muchos parámetros opcionales nombre dsn,
usuario, password, (named dsn, user, passwd, )y más.
Numero 3 www.aprenderpython.com 14
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
DB / 2
Para IBM DB/2, pruebe el módulo de DB2, disponible en
http://sourceforge.net/projects/pydb2. DB2 es la paramstyle 'format'. Su función de
conexión opcional acepta tres argumentos: el named dsn, uid y pwd.
MySQL
MySQL es una generalización, de código abierto RDBMS. Para la interfaz de
MySQL, intente MySQLdb, disponible en http://sourceforge.net/projects/mysql-
python. MySQLdb del paramstyle es "format". Su función de conexión opcional,
acepta cuatro argumentos: el named db, host, user y password.
PostgreSQL
PostgreSQL es una excelente codigo de fuente abierta RDBMS. De interfaz para
PostgreSQL, recomiendo psycopg, disponible en http://initd.org/Software/psycopg.
psycopg del paramstyle es 'pyformat ». Su función de conexión obligatoria acepta un
único argumento de cadena, con el named, dsn, con la sintaxis:
'host = host dbname = dbname
user = usuario password = contraseña '
Numero 3 www.aprenderpython.com 15
MUNDO PYTHON
PYTHON Y LAS BASES DE
DATOS
SAP DB
SAP DB, una vez conocido como Adabas, es un poderoso RDBMS que solía ser de
código cerrado, pero ahora es de código abierto. SAP DB viene con sapdbapi
(disponible en http://www.sapdb.org/sapdbapi.html), así como de otros módulos de
Python. sapdbapi del paramstyle es' pyformat'. Su función de conexión acepta tres
obligatorios argumentos named user, password y databaseand un argumento
opcional llamado host.
SQLite
SQLite (http://www.sqlite.org) es similar a Gadfly en que no es una interfaz a otros
RDBMS, sino más bien un completo, autónomo de motor RDBMS. Sin embargo,
SQLite está escrito en C y puede ofrecer mejor rendimiento, y la accesibilidad de los
múltiples lenguajes de programación, en comparación con Gadfly. El más popular,
de interfaz para Python de SQLite es PySQLite, disponible en
http://initd.org/tracker/pysqlite. Es muy compatible con DBAPI 2.0, excepto que no
es compatible con los tipos (todos los datos es en realidad estan en poder de
SQLite como cadenas). PySQLite del paramstyle es 'qmark'. Una alternativa es
APSW, disponible en http://www.rogerbinns.com/apsw.html. APSW ni siquiera tratar
de satisfacer las DBAPI 2.0 , sino más bien las especificaciones fielmente
implementa SQLite preferido la propia API.
En Python 2.5, PySQLite está incluido en la Biblioteca Estándar de Python como
sqlite3 paquete.
Fuente:
Fuente: Python in a Nutshell,
Nutshell, 2nd Edition
Numero 3 www.aprenderpython.com 16
MUNDO PYTHON
WINAUDIT
Numero 3 www.aprenderpython.com 17
MUNDO PYTHON
WINAUDIT
Como verán es muy ordenado al
momento de generar los
inventarios, para utilizarlo
solamente hay que ejecutar y
dar clic sobre el botón
“Recolectar” tardara unos
segundos y presentara el
inventario total de nuestros
componentes físicos y lógicos,
después de ello pueden
guardarse en los formatos ya
mencionados anteriormente.
Numero 3 www.aprenderpython.com 18
MUNDO PYTHON
WINAUDIT
¾Red Windows
¾Red TCP/IP
¾NetBios
¾Dispositivos
¾Caracteristicas Pantalla
¾Adaptadores de Pantalla
¾Impresoras Instaladas
¾Version de BIOS
¾Gestion del Sistema
¾Procesadores
¾Memoria
¾Discos Fisicos
¾Discos Logicos
¾Puertos de Comunicación
¾Programas de Arranque
¾Servicios
¾Programas en Ejecucion
¾Modulos Cargados
¾Archivos de Sistema
Numero 3 www.aprenderpython.com 19
MUNDO PYTHON
VPython
VPython es un módulo sobre Python.
Consta de una serie de subrutinas que
permiten construir y visualizar en tiempo
real algunos objetos geométricos sencillos.
Python (y por consiguiente VPython) es un
lenguaje interpretado. Un programa en
Python es un documento de texto que se
ejecuta con Python. Para escribir ese
programa se puede usar cualquier editor
de textos. Normalmente se le pone
extensión .py aunque no es necesario.
VPython incorpora un editor llamado IDLE
que tiene algunas ventajas. Una de ellas
es que lleva incorporadas opciones tales
como indentar o desindentar un párrafo,
convertir un párrafo en líneas de
comentario, etc. que son útiles a la hora
de programar. Además, desde el mismo Si abres IDLE y cargas un rograma,
rograma, al
ejecutarlo se abren automá
automáticamente dos
IDLE puede ejecutarse el programa.
ventanas,
ventanas, una de grágrácos y un shell. Este
Para ejcutar un programa en VPython shell permite ver los mensajes de error o
tenemos tres posibilidades: introducir datos que te pida el programa.
programa. Si
1.- Abrir IDLE y en él se carga el usamos la tercera opció opción y pedimos
programa. Para ejecutarlo se pulsa F5. directamente el programa,
programa, aparece una
2.- Si el programa lleva la extensión .py, ventana del DOS que cumple el papel del
con el botón derecho permite abrirlo shell pero con una diferencia importante:
importante: si
directamente con IDLE. hay un error se cierra automá
automáticamente,
ticamente,
3.- Si la extensión es .py al pulsar dos con lo que no llegas a verlo.
verlo.
veces sobre el programa se ejecuta La diferencia entre las dos primeras
directamente. formas de abrir un programa es la
dependencia de IDLE:
Hay algunas diferencias entre estas tres
- Si abres IDLE y cargas un programa,
programa,
formas. La diferencia principal entre las
cuando lo cierres IDLE permanecerá
permanecerá
dos primeras y la tercera es el entorno. abierto.
abierto.
Numero 3 www.aprenderpython.com 20
MUNDO PYTHON
VPython La ventana de grácos
Como hemos comentado, al
empezar un programa de visual,
creamos dos ventanas, una de
grácos y un shell. Por defecto la
ventana de grácos recibe el nombre
de scene.
Si queremos crear otra pantalla de
grácos se hace con la orden ventana
= display() donde ventana es el
nombre que usamos para referirnos
a esa pantalla.
- Si lo haces al revés, IDLE se cierra El manejo básico de una pantalla
automáticamente al cerrar el programa. gráca se hace con el ratón.
Una observación importante es IDLE - La tecla izquierda no hace nada
siempre guarda el programa antes de - La tecla derecha permite girar el
ejecutarlo. Por tanto, si hacemos punto de vista de la escena
modicaciones de las que no estemos - Pulsando las dos teclas y
seguros, es conveniente grabarlo con otro arrastrando el ratón podemos hacer
nombre antes de ejecutarlo. zoom.
Al empezar cualquier programa lo primero
que hay que decirle a Python es que
cargue las rutinas de VPython. Esto se
hace con la siguiente línea from visual
import * donde * indica que se carguen
todas las rutinas del módulo VPython.
Si necesitamos rutinas de otras librerias,
necesitaremos también importarlas.
Usaremos más adelante las librerías
random y LinearAlgebra. La primera
implementa números a suertes, números
combinatorios, etc. y la segunda manejo
de matrices.
Numero 3 www.aprenderpython.com 21
MUNDO PYTHON
VPython
Casi todos los aspectos de la ventana
gráca pueden cambiarse mediante
código. Veamos algunos de estos
comandos:
scene.background
sirve para indicar el color de fondo de
la ventana scene.
Por ejemplo
scene.background = color.red cambia a
rojo el color del fondo. Más adelante
veremos cómo especicar un color en
VPython. scene.autoscale
scene.foreground Por defecto VPython escala los objetos
Indica el color por defecto en el que para que quepan todos en pantalla. Si no
VPython va a dibujar los objetos que queremos que lo haga debemos poner
creemos scene.autoscale = 0
scene.fullscreen Iluminación
Si ponemos scene.fullscreen = 1 la Al empezar el programa, la escena se
ventana de grácos funciona en pantalla visualiza con una mezcla entre luz
completa. Por defecto se tiene ambiente y dos focos de luz, pero nosotros
scene.fullscreen = 0. podemos indicar cuánta luz ambiente
queremos y qué fuentes de luz y con qué
intesidad queremos colocar. Para ello se
usa:
scene.ambient nos da el valor de luz
ambiente. Este valor debe estar entre 0 y 1
scene.lights es una lista de vectores que
nos indican desde qué direcciones
proceden las fuentes de
luz. La magnitud de cada luz es la longitud
del vector correspondiente.
La suma total de todas las luces del
escenario debe de ser siempre <1
Numero 3 www.aprenderpython.com 22
MUNDO PYTHON
VPython
Colocando la cámara
Para indicar dónde ponemos una cámara usaremos tres órdenes: rdenes:
scene.center es el punto hacia el que estáestá mirando la cámara.
mara. Por defecto es scene.center =
(0,0,0). Este es tambié
también el punto alrededor del que gira la cámara cuando la movemos con el
rató
ratón. scene.forward es la direcció
dirección a la que apunta la cámara.
mara. Por tanto,
tanto, podemos pensar
que la cámara está
está colocada en la posició
posición scene.center - scene.forward
scene.range nos dice la secció
sección de espacio que abarca la cámara.
mara. Al empezar VPython su
valor es scene.range = (10,10,10) pero se modica inmediatamente para que quepan todos
los objetos a no ser que pongamos scene.autoscale=0
scene.autoscale=0.. Hay más ódenes que permiten
indicar el título,
, tamañ
tulo tama ño o posició
posició n de la ventana.
ventana. Si quieren mas informacion pueden
ingresar al foro en la biblioteca del nivel medio,
medio, hay un documento del cual tome esta parte.
Numero 3 www.aprenderpython.com 23
MUNDO PYTHON
Colocando la cámara
Para indicar dónde ponemos una cámara usaremos tres órdenes: rdenes:
scene.center es el punto hacia el que estáestá mirando la cámara.
mara. Por defecto es scene.center =
(0,0,0). Este es tambié
también el punto alrededor del que gira la cámara cuando la movemos con el
rató
ratón. scene.forward es la direcció
dirección a la que apunta la cámara.
mara. Por tanto,
tanto, podemos pensar
que la cámara está
está colocada en la posició
posición scene.center - scene.forward
scene.range nos dice la secció
sección de espacio que abarca la cámara.
mara. Al empezar VPython su
valor es scene.range = (10,10,10) pero se modica inmediatamente para que quepan todos
los objetos a no ser que pongamos scene.autoscale=0
scene.autoscale=0.. Hay más ódenes que permiten
indicar el título,
, tamañ
tulo tama ño o posició
posició n de la ventana.
ventana. Si quieren mas informacion pueden
ingresar al foro en la biblioteca del nivel medio,
medio, hay un documento del cual tome esta parte.
Numero 3 www.aprenderpython.com 24
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
Numero 3 www.aprenderpython.com 25
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
Numero 3 www.aprenderpython.com 26
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE PAQUETE
PYGAME
•pygame - el nivel superior paquete pygame
•pygame.draw.ellipse - dibujar una forma redonda dentro de un rectá rectángulo
•pygame.draw.line - dibujar un segmento recto
•pygame.draw.lines - extraer mú múltiples segmentos de lí línea contiguos
•pygame.draw.polygon - dibujar una forma con cualquier nú número de lados
•pygame.draw.rect - dibujar un rectárectángulo de forma
•pygame.event - pygame módulo para interactuar con los eventos y las colas
•pygame.event.clear - eliminar todos los eventos de la cola
•pygame.event.Event - crear un nuevo objeto de evento
•pygame.event.event_name - obtener el nombre de cadena y de Id. Id. de suceso
•pygame.event.get - obtener los eventos de la cola
•pygame.event.get_blocked - comprobar si un tipo de evento es bloqueado de la cola
•pygame.event.get_grab - comprobar si el programa es compartir los dispositivos de entrada entrada
•pygame.event.peek - tipos de eventos de prueba, si está están esperando en la cola
•pygame.event.poll - obtener un único evento de la cola
•pygame.event.post - lugar un nuevo evento en la cola
•pygame.event.pump - pygame proceso interno de eventos
•pygame.event.set_allowed - control de los acontecimientos que se permite en la cola
•pygame.event.set_blocked - control de los acontecimientos que se permite en la cola
•pygame.event.set_grab - control de la distribució
distribución de los dispositivos de entrada con otras
aplicaciones
•pygame.event.wait - esperar a que un único evento de la cola
•pygame.font - pygame módulo de carga y de renderizado de fuentes
•pygame.font.Font - crear un nuevo objeto de fuente de un archivo
•Font.get_ascent - obtener el ascenso de la fuente
•Font.get_bold - comprobar si el texto se prestará
prestará negrita
•Font.get_descent - obtener el descenso de la fuente
•Font.get_height - obtener la altura de la fuente
•Font.get_italic - comprobar si el texto se dictó
dictó cursiva
•Font.get_linesize - obtener la lílínea de espacio de la fuente de texto
•Font.get_underline - comprobar si el texto seráserá prestado con un subrayado
•Font.metrics - Obtiene los pará
parámetros de cada personaje en el pasado la cadena.
•Font.render - sacar un nuevo texto sobre la superficie
•Font.set_bold - permitir la prestació
prestación de falso negrita
•Font.set_italic - permitir la prestació
prestación de falso y cursiva
•Font.set_underline - controlar si el texto se hace hincapié
hincapié en una
•Font.size - determinar la cantidad de espacio necesario para que el texto
Numero 3 www.aprenderpython.com 27
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
Numero 3 www.aprenderpython.com 28
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
Numero 3 www.aprenderpython.com 29
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE PAQUETE
PYGAME
•pygame.mixer.fadeout - fade out sobre el volumen de todos los sonidos antes de detenerse
•pygame.mixer.find_channel - encontrar un canal no utilizado
•pygame.mixer.get_busy - comprobar si el sonido está está siendo mixtos
•pygame.mixer.get_init - comprobar si la mesa de mezclas se inicializa
•pygame.mixer.get_num_channels - obtener el nú número total de canales de reproducció
reproducción
•pygame.mixer.init - inicializar el mó
módulo mezclador
•pygame.mixer.pause - detener temporalmente la reproducció
reproducción de todos los canales de
sonido
•pygame.mixer.pre_init - preset el mezclador de inicio argumentos
•pygame.mixer.music - pygame módulo de control de audio
•pygame.mixer.music.fadeout - detener la reproducció
reproducción de múmúsica despué
después desapareciendo
•pygame.mixer.music.get_busy - comprobar si el flujo de la mú música se está
está reproduciendo
•pygame.mixer.music.get_endevent - el caso de obtener un canal enví envía cuando la
reproducció
reproducci ón se detiene
•pygame.mixer.music.get_pos - obtener el tiempo de reproducció
reproducción de mú
música
•pygame.mixer.music.get_volume - obtener el volumen de la mú música
•pygame.mixer.music.load - Cargar un archivo de mú música para su reproducció
reproducción
•pygame.mixer.music.pause - detener temporalmente la reproducció
reproducción de mú
música
•pygame.mixer.music.play - Inicie la reproducció
reproducción de la múmúsica arroyo
•pygame.mixer.music.queue - cola de un archivo de mú música a la actual
•pygame.mixer.music.rewind - reiniciar mú música
•pygame.mixer.music.set_endevent - enviar la mú música tienen una cita cuando la reproducció
reproducción
se detiene
•pygame.mixer.music.set_volume - configura el volumen de la mú música
•pygame.mixer.music.stop - detener la reproducció
reproducción de múmúsica
•pygame.mixer.music.unpause - reanudar la mú música en pausa
•pygame.mixer.quit - uninitialize la mesa de mezclas
•pygame.mixer.set_num_channels - establecer el nú número total de canales de reproducció
reproducción
•pygame.mixer.set_reserved - reserva de canales que se utilizan automáautomáticamente
•pygame.mixer.Sound - Crear un nuevo objeto de sonido de un archivo
•Sound.fadeout - detener la reproducció
reproducción de sonido despué
después de desvanecimiento
•Sound.get_buffer - adquiere un objeto de amortiguamiento para la sameples del sonido.
•Sound.get_length - obtener la longitud del sonido
•Sound.get_num_channels - contar cuá cuántas veces este sonido se reproduce
•Sound.get_volume - obtener el volumen de reproducció
reproducción
•Sound.play - iniciar la reproducció
reproducci ón de sonido
•Sound.set_volume - configura el volumen de reproducció
reproducción de sonido para este
•Sound.stop - detener la reproducció
reproducción de sonido
Numero 3 www.aprenderpython.com 30
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
Numero 3 www.aprenderpython.com 31
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
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
Numero 3 www.aprenderpython.com 34
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
Numero 3 www.aprenderpython.com 35
MUNDO PYTHON
LISTA DE TODAS LAS FUNCIONES, CLASES Y METODOS DENTRO DEL PAQUETE
PAQUETE
PYGAME
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.
#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)
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/
Numero 3 www.aprenderpython.com 40
MUNDO PYTHON
Entrevista a RadicalEd
En esta entrevista vamos a ver
quien RadicalEd y que se
Codigo Latino este gran blog
que distribuye de manera
gratuita su Revista Codigo
Latino actualmente en la Edicion
12.
Numero 3 www.aprenderpython.com 41
MUNDO PYTHON
Curso Python
Numero 3 www.aprenderpython.com 42
MUNDO PYTHON
Curso ¾Comparació
Comparación de cadenas
Python ¾Las cadenas son inmutables
¾Bucles y conteo
¾El mó
módulo "string"
¾Clasificació
Clasificación de caracteres
¾Listas
¾Pertenencia a una lista
¾Que pasa con el comando for en lista
¾CUERPO
¾Porciones (slices)
¾Listas anidadas
¾Matrices
¾Cadenas y listas
¾Tuplas
¾Asignació
Asignación de tuplas
¾Números aleatorios
¾Ejecución condicional ¾Lista de nú
números aleatorios
¾Ejecución alternativa ¾Diccionarios
¾Condiciones anidadas ¾Método
¾Matrices dispersas
¾return
¾Enteros largos
¾Recursividad infinita ¾Contar letras
¾Entrada por teclado ¾Archivos
¾Valores de retorno ¾Escribir variables
¾Desarrollo de programas ¾Directorios
¾Composición ¾Excepciones
¾Funciones booleanas ¾Clases y objetos
¾Flujo de ejecución ¾Instancias como pará
parámetro
¾Comprobación de tipos ¾Reflexiones sobre este importante punto
¾Asignación múltiple ¾Clases y funciones
¾La sentencia while ¾Modificadores
¾¿Qué
Qué es mejor?
¾Tablas
¾Clases y mé
métodos
¾Variables locales
¾El mé
método de inicializació
inicialización
¾Cadenas ¾Sobrecarga de operadores
¾El bucle for ¾Polimorfismo
¾Porciones de cadenas ¾Conjuntos de objetos
Numero 3 www.aprenderpython.com 43
MUNDO PYTHON
ENLACES
• FAQ PYTHON ES:
http://www.aprenderpython.com/python/?page_id=555
• VJUEGOS.ORG:
http://www.vjuegos.org/index.php?option=com_frontpage&Itemid=1
• WINAUDIT: http://www.pxserver.com/
• VPYTHON: http://www.vpython.org/
• PYGAME: http://www.pygame.org/news.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: [email protected]
• FORO: WWW.APRENDERPYTHON.COM.SMF/
• PUBLICIDAD: [email protected]
• 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