Especificación básica para un bloque de programa Python
La especificación básica para un bloque de programa Python es BEGIN PROGRAM PYTHON3 seguido de una o más sentencias Python , seguido de END PROGRAM.
sys.exit() no está soportada para su uso dentro de un bloque de programa.- El primer bloque de programa de una sesión debe empezar con la función Python
import spss, que importa el módulospss, proporcionando acceso a las funciones del Python para IBM® SPSS® Statistics. Consulte el tema Funciones y clases dePython para obtener más información. - Los bloques de programa posteriores en la misma sesión no requieren
import spss, y se ignora de forma silenciosa si el módulo ya se ha importado.
Ejemplo
DATA LIST FREE /var1.
BEGIN DATA
1
END DATA.
DATASET NAME File1.
BEGIN PROGRAM PYTHON3.
import spss
File1N=spss.GetVariableCount()
END PROGRAM.
DATA LIST FREE /var1 var2 var3.
BEGIN DATA
1 2 3
END DATA.
DATASET NAME File2.
BEGIN PROGRAM PYTHON3.
File2N=spss.GetVariableCount()
if File2N > File1N:
message="File2 has more variables than File1."
elif File1N > File2N:
message="File1 has more variables than File2."
else:
message="Both files have the same number of variables."
print(message)
END PROGRAM.
- El primer bloque de programa contiene la sentencia
import spss. Esta sentencia no es necesaria en el segundo bloque de programa. - El primer bloque de programa define una variable programática, File1N, con un valor establecido en el número de variables del conjunto de datos activo.
- Antes del segundo bloque de programa, un conjunto de datos diferente se convierte en el conjunto de datos activo y el segundo bloque de programa define una variable programática, File2N, con un valor establecido en el número de variables de ese conjunto de datos.
- Puesto que el valor de File1N persiste desde el primer bloque de programa, los dos recuentos de variables se pueden comparar en el segundo bloque de programa.
Reglas de la sintaxis
- En un bloque de programa, solo se permiten las sentencias que reconoce el lenguaje de programación especificado.
- La sintaxis de comandos generadas en un bloque de programa debe seguir las reglas de sintaxis interactivas. Consulte el tema Ejecución de mandatos para obtener más información.
- En un bloque de programas, cada línea no debe superar 251 bytes (aunque la sintaxis generada por estas líneas puede ser más larga).
- Con IBM SPSS Statistics Batch Facility (disponible sólo con IBM SPSS Statistics Server), utilice el modificador -i al enviar archivos de comando que contengan bloques de programa. Toda la sintaxis de comandos (no solo los bloques de programas) en el archivo debe cumplir las reglas de sintaxis interactiva.
En un bloque de programa, el lenguaje de programación tiene el control y se aplican las reglas de sintaxis para dicho lenguaje de programación. La sintaxis de comandos generada desde bloques de programas debe seguir siempre reglas de sintaxis interactivas. Para fines más prácticos, esto significa que las series de comandos que cree en un bloque de programación deben contener un punto (.) al final de cada comando.
Ámbito y limitaciones
- Las variables de programación creadas en un bloque de programa se pueden utilizar fuera de bloques de programas.
- Los bloques de programas no se pueden contener en definiciones de macro
DEFINE-!ENDDEFINE. - Los bloques de programas se pueden contener en archivos de sintaxis de comandos a través del comando
INSERT, con el valorSYNTAX=INTERACTIVEpredeterminado. - Los bloques de programas no se pueden contener en archivos de sintaxis de comandos ejecutados a través del comando
INCLUDE.
- Las variables de Python especificadas en un bloque de programa determinado persisten en los bloques de programa posteriores.
- Los programas Python (.py, .pyc) que utilizan el módulo
spssno se pueden ejecutar como autoscripts, ni están pensados para ejecutarse desde Programas de utilidad > Ejecutar script.
Más información sobre los programas Python y los scripts Python están disponibles en el tema Scripting with the Python Programming Language.