
¿Qué es Python?
Es un lenguaje de alto nivel de propósito general diseñado con el mayor énfasis en simplificar la gramática, para mejorar la legibilidad del código, facilitar la lectura y escritura, y mejorar la funcionalidad del programador y la confiabilidad del código.
Wikipedia
Python es un lenguaje de programación interpretado de tipado dinámico cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma y disponible en varias plataformas.
Dicho de otro modo, Python es:
- Interpretado: Se ejecuta sin necesidad de ser procesado por el compilador y se detectan los errores en tiempo de ejecución.
- Multiparadigma: Soporta programación funcional, programación imperativa y programación orientada a objetos.
- Tipado dinámico: Las variables se comprueban en tiempo de ejecución.
- Multiplataforma: disponible para plataformas de Windows, Linux o MAC.
- Gratuito: No dispone de licencia para programar.
Una de las razones de su éxito es que cuenta con una licencia de código abierto que permite su utilización en cualquier escenario. Esto hace que sea uno de los lenguajes de iniciación de muchos programadores siendo impartido en escuelas y universidades de todo el mundo. Sumado a esto cuenta con grandes compañías que hacen de este un uso intensivo. Tal es el caso de Google, Facebook o Youtube, ya que permite, entre otras de sus características la automatización de procesos y ejecución de tareas en tanto en entorno cliente como servidor.
Python es ideal para trabajar con grandes volúmenes de datos ya que, el ser multiplataforma, favorece su extracción y procesamiento, por eso lo eligen las empresas de Big Data. A nivel científico, tiene una gran biblioteca de recursos con especial énfasis en las matemáticas para aspirantes a programadores en áreas especializadas.
Primeros pasos
Inicie Touch Designer y aprete Alt + T , se abrirá una ventana negra como esta, donde podrá ver la versión actual de python en su maquina.
Gramática básica
Comencemos con un ejemplo simple, usando la cadena de caracteres.
Ingrese el siguiente código y presione la tecla Enter.
print("Hello World")
Visualizara el resultado debajo. «Hello World»
Cálculo numérico
A traves de python podemos hacer cálculos de todo tipo, como por ejemplo una suma:
print(3+5)
Otras operaciones posibles:
Los elementos que desea calcular primero se incluyen entre ().
variable
Una variable es como una caja que almacena un valor.
a = 1 print(a) 1
Actualizar el valor
print(a) 1 a = 2 print(a) 2
Agregar un número al valor actual
print(type(1)) <class 'int'> print(type("1")) <class 'str'>
Por lo tanto, puede verificar el tipo de objeto dentro de los paréntesis con type ().
Comparación
Comparará valores.
Devuelve True si las condiciones coinciden, False si no coinciden.
print(1==1) True print(1!=1) False
Operador lógico
Establece verdadero si coinciden, sino falso.
A = True
B = False
print(A or B)
True
print(A and B)
False
print(not A)
false
Estructuras:
Indentación (sangría) en python
Esta es una de las principales señas de identidad de Python y es fuente de una gran parte de los errores que se producen. En Python, las líneas de código que están dentro de un mismo sistema deben estar agrupadas, teniendo el mismo número de espacios a la izquierda de cada línea, ejemplo:
- Comercio
- Tecnología
-
-
- Televisión
- Computadora
- Decoración
-
-
-
- Muebles
- Alfombras
-
En Python, se recomienda usar bloques de cuatro espacios, aunque si se usan otro número de espacios, también funcionaría. Otra opcion es usar tabuladores.
Operador condicional
Se cambia el procesamiento segun las condiciones.
a = 1
if a > 0:
print(True) Ejecutar cuando la expresión condicional es True
else:
print(False) # Ejecutar cuando la expresión condicional es False
True
Texto compuesto
- Un grupo de código que consta de varias declaraciones.
- La característica principal de Python es que «la profundidad de la sangría determina el rango de bloque de una declaración compuesta».
- Este método es especial, mientras que otros idiomas usan paréntesis y especificación de rango por principio-fin.
- Una palabra clave de instrucción compuesta (como if) es seguida por dos puntos (:) y luego las instrucciones sangradas con el mismo número de espacios se consideran un bloque.
- Se recomienda utilizar 4 espacios básicos para la sangría.
a = 1
if a > 0:
print(True) #if bloque de instrucciones
else:
print(False) #else bloque de instrucciones
También puedes anidar bloques como este
A = True
B = False
if A:
if B:
print("A:True, B:True")
else:
print("A:True, B:False")
else:
if B:
print("A:False, B:True")
else:
print("A:False, B:False")
Repeticion (for)
Es un proceso para buscar objetos con múltiples elementos, como listas en orden.
for fruit in ["apple", "orange", "banana"]:
print(fruit)
apple
orange
banana
for i in range(3):
print(i)
0
1
2
range (x) crea una lista de 0 a x (valor entero) En este ejemplo [0,1,2]
Repetir mientras (While)
La instrucción while continúa en bucle mientras la expresión condicional es True, y el bucle termina cuando se convierte en False.
x = 3
while x > 0:
print(x)
x = x - 1
3
2
1
Módulo
Un módulo nos permite reutilizar un programa de otro archivo.
Además de los módulos que crea usted mismo, hay «módulos integrados» que están manera predeterminada en TD.
Vamos a usar un módulo incorporado predeterminado llamado Math (matemática), su uso es simple.
Al inicio del programa importamos el modulo
import math
Ejemplo de uso
import math
print ( math . pi )
3.141592653589793
print ( math . cos ( 0 ))
1.0
Otro modulo de uso frecuente es el aleatorio.
import random
print(random.random()) # Devuelve un valor flotante aleatorio en el rango de 1.0 ~
0.7607203658655518
print(random.uniform(3.0, 10.0)) # Devuelve un valor flotante
7.411074375066043
print(random.randint(10, 100)) # Devuelve un valor entero aleatorio.
66
- Textport
- DAT
- Operator Parameters
Textport
Se ejecuta mientras interpreta de manera secuencial el código escrito y las expresiones utilizadas.
DAT
Al usar este operador, la programación se puede realizar de manera conveniente y efectiva dentro de Touch Designer.
Dado que el código fuente son datos de texto.
Operator Parameters
También puede manejar los parámetros de los operadores con códigos de Python Script (Expresión). Por ejemplo, el archivo de Movie TOP tiene Expresión escrita en alguno de sus parámetros de forma predeterminada. La expresión se escribe cuando el centro de los tres cuadrados pequeños se rellena de color.
Expresiones de uso frecuente
absTime.frame
Obtiene el número de frames que han pasado desde el inicio.
absTime.seconds
Obtiene el tiempo transcurrido desde que se inició.
me.digits
Puede obtener el número al final del nombre.
Escribir Python con Text DAT
Después de crear textDAT, presione el botón en forma de cruz en la parte inferior derecha para activarlo.
Luego podrá escribir el texto.
print ( "¡Hola, mundo!" )
Luego, suelte desactive el estado activo y haga clic con el botón derecho en el operador.
Haz clic en Ejecutar script.
Abrimos el cuadro de texto Alt+t , debería decir ¡Hola Mundo !.
Run Script ejecutará el programa escrito en TextDAT.
Si escribe varias líneas, se ejecutarán secuencialmente desde la primera línea.
Acceder a los parámetros del operador
A continuación, accedamos a los parámetros del operador desde un script de Python.
Agrege un operador ConstantTop
r = op('constant1').par.colorr print(r)
Cuando ejecuto el script, se mostrara el valor de ColorR de Constant 1, en la consola de comando.
Intente cambiar el valor de R y ejecútelo nuevamente para ver el cambio de valor.
Analicemos la línea que obtiene el valor del parámetro.
op()
Para obtener el operador.
.par
Para obtener los parámetros del operador.
.colorr
Está obteniendo el valor de colorr en el parámetro.
Puede acceder a otras variables cambiando la parte de colorr.
El nombre se encuentra en esta parte del parámetro.
A continuación, cambiemos el valor de Python.
op('constant1').par.alpha = 0.5
Cuando ejecuta este código, el Alfa de ConstantTOP cambiará a 0.5
Desde Python puede asignar valores a cualquier parámetro de un operador.
Ejecutar script automáticamente
El operador para ejecutar un script incluye el nombre Execute
Como ejemplo usaremos Execute y Chop Execute
Execute
def onFrameStart(frame): print(frame) return
Este script genera el número de Frame actual en el puerto de texto. Puede escribir el código que desea ejecutar al inicio en OnStart().
CHOP Execute
CHOP Execute se ejecuta cuando cambia el valor CHOP especificado.
De los On y Off que aparecen aquí, aquellos que son mayores que cero están On, y aquellos que son cero o menos están Off.
Cree la siguiente cadena de operadores:
- ButtonCOMP, NullCHOP, CHOPExecute y ConstantTOP
- Coloque Null1 en el parámetro de CHOPExecute.
Escriba el siguiente código en CHOP Execute, y configure el parámetro Value Change en On.
def onValueChange(channel, sampleIndex, val, prev):
op('constant1').par.alpha = val
return
Ahora, cuando hace clic en el botón, el Alfa de la constante TOP se convierte en el valor del botón.
Cambie el Tipo de botón a Momentáneo y configure los parámetros ValueChange (Off) y Off to On (On)
import random def onOffToOn(channel, sampleIndex, val, prev): op('constant1').par.colorr = random.random() op('constant1').par.colorg = random.random() op('constant1').par.colorb = random.random() return
Ahora, cuando hace click en el botón, el color de Constant TOP cambia de forma aleatoria.
De esta forma, el valor solo se puede actualizar en un momento específico.
Cómo usar un editor externo
A medida que el código crece, se hace difícil escribir en Touch Designer.
Puede usar un editor de texto externo pera un mejor desempeño.
- Abrimos Preferencias y especificamos el Editor de texto en DAT.
- Después de configurar, haga clic derecho en el DAT que desea editar y seleccione Edit Contents…
Podrá editar el contenido del DAT seleccionado con un editor externo.
Después de editar y sobrescribir en el editor, vera los cambios reflejados dentro de Touch Designer.
Callback DAT
Cuando crea OscDAT, SerieDAT, ReplicatorCOMP, etc., el DAT que aparece en la parte inferior se llama Callback DAT.
veamos Replicator como ejemplo.
Cree ReplicatorCOMP y realice los siguientes cambios.
Cree ConstantTOP y coloque la siguiente expresión python en los parámetros de colores RGB
me.digits / (op('replicator1').par.numreplicants-1)
Podemos editar el operador Callback DAT, por defecto tiene el siguiente código:
def onReplicate(comp, allOps, newOps, template, master): for c in newOps: #c.display = True #c.render = True #c.par.display = 1 #c.par.clone = comp.par.master pass return
Se ejecutara cuando el operador Replicate sea modificado, podemos aumentar el numero de replicas para accionar el código.
En la seccion for c in newOps: , vamos a desmarcar c.display eliminando el símbolo de comentario #
def onReplicate(comp, allOps, newOps, template, master): for c in newOps: c.display = True #c.render = True #c.par.display = 1 #c.par.clone = comp.par.master pass return
Haciendo este cambio, cuando repliquemos el operador contantTop, se activara la vista previa por defecto, la bandera Azul se activara.
De esta manera, los operadores con Callback DAT pueden realizar un procesamiento más avanzado.
TouchDesigner es un entorno de programación visual, donde puedes desarrollar tus proyectos sin escribir lineas de código, hay cosas que solo se pueden hacer usando código, tambien sistemas difíciles de replicar con operadores, vale la pena adentrarnos en python para implementar soluciones en nuestros proyectos de forma mas eficiente.
Fuente: