Máquina arcade retro con la palabra Arcade en la parte superior y un logo de Python en la pantalla, invitando a programar.

Conceptos básicos en Python

Bienvenidos a nuestra primera lección realmente de programación en Python. Aunque no tengáis experiencia previa en programación, si habéis seguido la guía de pensamiento computacional lo que veamos aquí no os va a sonar extraño. Antes de adentrarnos en la creación de videojuegos con la librería Arcade, es fundamental comprender algunos conceptos básicos de Python: variables, expresiones, importación de librerías y funciones.

1. Variables

En Python, una variable es un espacio en la memoria donde almacenamos datos que pueden cambiar durante la ejecución del programa. A diferencia de otros lenguajes, en Python no es necesario declarar el tipo de dato que la variable va a guardar; este se asigna dinámicamente según el valor que se le da.

Los tipos primitivos (básicos) en Python son:

  • Números sin decimales o tipos enteros: int
  • Números con decimales o tipos flotantes: float. Una cuestión muy importante sobre estos tipos es que Python los detectará siempre que uses un punto para indicar decimales. Para Python el valor 1 es de tipo entero y el valor 1.0, aunque valga lo mismo, es un de tipo flotante, e internamente se guardarán de forma distinta.
  • Valores lógicos o booleanos: bool. Los posibles valores lógicos son True y False, escritos tal cual, con la primera letra en mayúscula.
    Nota: ten en cuenta que en Python, usar una minúscula no es lo mismo que usar una mayúscula.
  • Texto, cadena de texto, cadena de caracteres o String como los quieras llamar. En Python se llama str. Cuando vayas a usar un valor de este tipo, siempre deberás escribirlo entrecomillado, bien con comillas simples, bien con dobles, pero abriendo siempre comillas y cerrándolas con el mismo tipo.

Crear variables es simple. Te inventas el nombre de la variable que quieres usar y le das un valor. Para dar un valor pones el nombre de la variable, luego el símbolo = y finalmente el valor.

Ejemplo:

nombre = "Ana"  # Variable de tipo cadena (str)
edad = 16       # Variable de tipo entero (int)
altura = 1.65   # Variable de tipo flotante (float)
es_estudiante = True  # Variable de tipo booleano (bool)

Como ves, hemos creado cuatro variables: nombre, edad, altura y es_estudiante, cada una con un tipo de dato diferente.

Eso sí, intenta siempre que el nombre de una variable sea lo suficientemente significativo: nada de nombres tipo numero1, numero2, n3… A veces, para conseguir estos nombres significativos es interesante usar varias palabras, pero como ves en el ejemplo con es_estudiante, no puedes poner las palabras por separado; pero sí utilizar el guion bajo. Además del guion bajo solo puedes usar letras y números, y siempre debes empezar por letras. Y como colofón, seguramente sea la primera vez que te recomienden que no escribas acentos. En programación pueden ser un problema debido a los distintos tipos de codificaciones.

2. Expresiones

Las expresiones nos permiten realizar cálculos y tomar decisiones en nuestro código. Son combinaciones de valores, variables y operadores que Python evalúa y produce un resultado. Pueden incluir operadores aritméticos, lógicos o de comparación (relacionales), en función de los tipos de datos que usas.

  • Expresiones aritméticas: si los datos son numéricos puedes usar operadores aritméticos, en cuyo caso el resultado que obtendrás será también numérico. La expresión 3+5 dará 8 como resultado.
  • Expresiones relacionales: con números también puedes usar operadores relacionales y entonces obtendrás un valor booleano (3>5 te dará False). Con estos operadores también podrás usar tipos que se consideren ordenados, como por ejemplo textuales. La expresión "casa" > "árbol" te dará False, y no porque una casa sea más pequeña que un árbol, sino porque al ordenar según el número ASCII de los caracteres, la á (a con acento) va después de la c. Quítale el acento a la a y verás lo que sucede.
  • Expresiones booleanas: trabajan con valores booleanos y devuelven un valor booleano, por ejemplo True or False, que devolverá True, pero también 3>5 and 5>3, que devolverá False.
  • Expresiones textuales: devuelven siempre un texto aunque no hay muchos operadores para estos tipos de expresiones. De hecho, solo tenemos la concatenación o suma, con el operador +, y la repetición, con el operador *.

Ejemplos:

# Operaciones aritméticas
suma = 5 + 3          # Resultado: 8
print(suma)
producto = 4 * 2      # Resultado: 8
print(producto)

# Operaciones de comparación
es_mayor = 5 > 3      # Resultado: True
print(es_mayor)
es_igual = 5 == 5     # Resultado: True
print(es_igual)

# Operaciones lógicas
es_verdadero = True and False  # Resultado: False
print(es_verdadero)

# Operaciones textuales
nombre = "Juan"
saludo = "Hola, " + nombre     # Resultado: "Hola, Juan"
print(saludo)
saluda_3_veces = saludo * 3 
print(saluda_3_veces) # Resultado "Hola, JuanHola, JuanHola, Juan"

Date cuenta como en el ejemplo, print(valor) permite visualizar por la consola el valor de la variable que estamos consultando. Además, si a una línea le añades delante el símbolo #, ese código o texto no tendrá efecto para Python. Es lo que se llama un comentario.

Te dejo una tabla con los operadores básicos en Python, indicando en qué tipos de expresiones se pueden utilizar:

OperadorDescripciónTipo de expresiónEjemplo
+SumaAritméticasuma = 5 + 3
-RestaAritméticaresta = 10 - 4
*MultiplicaciónAritméticamultiplicacion = 2 * 6
/DivisiónAritméticadivision_con_decimales = 15 / 3
//División enteraAritméticadivision_sin_decimales = 15 // 3
%Módulo (resto de la división)Aritméticaresto_de_dividir = 15 % 4
**ExponenciaciónAritméticapotencia = 2 ** 3
+=Suma y asignaciónAritméticax += 3 (equivalente a x = x + 3)
-=Resta y asignaciónAritméticax -= 2 (equivalente a x = x - 2)
*=Multiplicación y asignaciónAritméticax *= 4 (equivalente a x = x * 4)
/=División y asignaciónAritméticax /= 2 (equivalente a x = x / 2)
//=División entera y asignaciónAritméticax //= 2 (equivalente a x = x // 2)
%=Módulo y asignaciónAritméticax %= 2 (equivalente a x = x % 2)
**=Exponenciación y asignaciónAritméticax **= 2 (equivalente a x = x ** 2)
==IgualdadRelacional 5 == 5 = True
!=DesigualdadRelacional5 != 3 = True
>Mayor queRelacional10 > 5 = True
<Menor queRelacional5 < 10 = True
>=Mayor o igual queRelacional10 >= 10 = True
<=Menor o igual queRelacional5 <= 10 = True
andY lógicoBooleanaTrue and True = True
orO lógicoBooleanaTrue or False = True
notNegación lógicaBooleananot True = False
isIdentidadBooleanax is y (comprueba si x e y son el mismo objeto)
is notNo identidadBooleanax is not y (comprueba si x e y no son el mismo objeto)
inPertenenciaBooleana'a' in 'banana' = True
not inNo pertenenciaBooleana'z' not in 'banana' = True

3. Importación de librerías

Python cuenta con una amplia variedad de librerías que extienden su funcionalidad. Para utilizar una librería en nuestro programa, debemos importarla utilizando la palabra clave import.

Ejemplo:

import math  # Importa la librería matemática

resultado = math.sqrt(16)  # Utiliza la función sqrt para calcular la raíz cuadrada
print(resultado)  # Imprime: 4.0

En este ejemplo, importamos la librería math y utilizamos su función sqrt para calcular la raíz cuadrada de 16.

4. Funciones

Una función es un bloque de código reutilizable que realiza una tarea específica. Python ofrece funciones integradas, como por ejemplo print() o input(), pero también podemos definir nuestras propias funciones utilizando la palabra clave def.

Ejemplo:

def saludar(nombre):
    mensaje = "Hola, " + nombre
    return mensaje

print(saludar("Ana"))  # Imprime: Hola, Ana!

En este ejemplo, definimos una función llamada saludar que recibe un parámetro nombre y devuelve un mensaje de saludo. Los parámetros permiten que una función ejecute su mismo código pero con datos de entrada distintos, obteniendo el resultado correspondiente.

Conclusión

Comprender estos conceptos básicos es esencial para comenzar a programar en Python y, posteriormente, desarrollar videojuegos con la librería Arcade. A medida que avancemos, profundizaremos en cada uno de estos temas y exploraremos cómo aplicarlos en proyectos más complejos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.