Elementos básicos del lenguaje Python¶
La estructura de un programa en Python se caracteriza por su simplicidad, un aspecto que contribuye significativamente a la legibilidad y mantenibilidad del código. A continuación, veremos brevemente los componentes principales que forman parte de la estructura completa de un programa en Python.
A continuación, veremos qué tipos de datos maneja Python, cómo declarar variables para almacenar información, y cómo hacer algunas operaciones aritméticas básicas. También veremos cómo mostrar información por pantalla y pedírsela al usuario por teclado.
Como ya vimos en secciones anteriores, un algoritmo es un conjunto finito y ordenado de instrucciones que permite resolver una tarea. Estas instrucciones se pueden codificar en distintos lenguajes de programación para que el ordenador las pueda interpretar y ejecutar.
Python es un lenguaje de alto nivel, fácil de leer y de estructura sencilla. Los programas en Python se componen principalmente de cuatro elementos:
- Comentarios: Los comentarios son fragmentos de texto que se escriben dentro del código pero que el ordenador no ejecuta. Su función es explicar qué hace el programa o una parte del código, para que sea más fácil de entender por las personas que lo leen, incluido el propio programador tiempo después.
- Tipos de datos: Representan la información con la que trabaja el programa, como números, texto o valores verdadero/falso. Por ejemplo, una edad, un nombre o una nota.
- Constantes / Variables: Son espacios de memoria donde se guardan los datos para poder utilizarlos más adelante. Una variable permite almacenar información y modificarla durante la ejecución del programa.
- Operadores: Son elementos que permiten combinar o realizar cálculos sobre datos dentro de un programa.
- Estructuras de control: Permiten modificar el curso del programa en base a cumplimiento o no de condiciones. Por ejemplo, repetir una instrucción un determinado número de veces.
Comentarios¶
Los comentarios en Python pueden ser de una sola línea empleando el símbolo de la almohadilla # o de varias empleando na triple comilla simple '''
\# Este es un comentario de una sola línea
"""
Este es un comentario multilínea.
Puede ser utilizado para proporcionar descripciones detalladas
de funciones, clases o módulos.
También se suele usar para explicar porqué el programador
ha tomado una decisión de diseño concreta y no otra.
"""
Tipos de datos básicos¶
Los cuatro principales tipos de datos que se manejan con los enteros, los números de punto flotante, las cadenas de caracteres o string, y los booleanos:
- Enteros (int): representan números enteros sin parte decimal. Ejemplo: x = 5
- Números de punto flotante (float): representan números reales con parte decimal. Ejemplo: y = 3.14
- Cadenas de texto (str): son secuencias de caracteres utilizadas para representar texto. Se pueden definir utilizando comillas simples o dobles. Ejemplo: mensaje = “Hola, mundo”
- Booleanos (bool): los valores booleanos representan verdadero (True) o falso (False), y son útiles cuando debemos decidir entre dos posibles estados. Ejemplo: es_mayor = True.
Lenguaje débilmente tipado
Python es un lenguaje débilmente tipado es decir, no es necesario definir el tipo de dato que vamos a almacenar en una variable. Simplemente declaramos las variables y les asignamos un valor.
Variables¶
Las variables son espacios en memoria que se utilizan para almacenar datos.
Piensa en las variables como en un cajón con un nombre. Normalmente usamos un cajón para camisetas, otro para bañadores y otro para complementos. El cajón puede estar vacío, o tener elementos dentro. Podemos meter cosas y sacarlas. También podemos dejarlo vacío. Las variables funcionan igual, el cajón sería un espacio en memoria donde podemos almacenar datos, cambiarlos o borrarlos.
Para acceder a esos datos usamos el nombre de la variable, que es un identificador que le ponemos a ese espacio de memoria..
En Python, no es necesario declarar el tipo de una variable explícitamente; se infiere del valor asignado.
\# Ejemplos de variables
edad = 25
nombre = "Juan"
altura = 1.75
es\_estudiante = True
Constantes¶
En todos los lenguajes de programación, las constantes son variables que no varían. Funcionan igual sintácticamente hablando, pero una vez que se les asigna un valor, no puede ser cambiado.
En Python, no existe una manera estricta de definir constantes como en otros lenguajes de programación, pero por convención, se utilizan nombres de variables en mayúsculas para indicar que su valor no debe cambiar.
PI = 3.14159
GRAVEDAD = 9.81
Operadores¶
Los operadores son fundamentales en la programación, ya que permiten realizar cálculos, comparaciones y operaciones lógicas sobre los datos. A continuación, se presenta una descripción detallada de los diferentes tipos de operadores en Python y cómo se utilizan en las expresiones.
Comenzaremos con los operadores aritméticos clásicos, los que se utilizan para realizar operaciones matemáticas básicas:
-
Suma (+): suma dos operandos.
a = 10 b = 5 resultado = a + b # resultado es 15 -
Resta (-): resta el segundo operando del primero.
resultado = a - b # resultado es 5 -
Multiplicación (*): multiplica dos operandos.
resultado = a \* b # resultado es 50 -
División (/): divide el primer operando por el segundo. El resultado es un número de punto flotante.
resultado = a / b # resultado es 2.0 -
División entera (//): divide el primer operando por el segundo y devuelve la parte entera del resultado.
resultado = a // b # resultado es 2 -
Módulo (%): devuelve el resto de la división del primer operando por el segundo.
resultado = a % b # resultado es 0 -
Exponenciación (**): eleva el primer operando a la potencia del segundo.
resultado = a \*\* b # resultado es 100000
Sigamos con los operadores de comparación. Estos se utilizan para comparar dos valores y devuelven un valor booleano (True o False).
Su uso es similar a realizar una pregunta que se contesta con si o no.
Por ejemplo, ¿tienes más de 18 años? No. En Python se haría algo similar (edad > 18) = False.
Veamos los operadores que podemos encontrar en esta categoría:
-
Igual a (==): verifica si los operandos son iguales.
a=7 b=12 resultado = (a == b) # resultado es False -
Distinto de (!=): verifica si los operandos son diferentes.
resultado = (a != b) # resultado es True - Mayor que (>) y mayor o igual que (>=): verifica si el primer operando es mayor que el segundo.
resultado = (a > b) # resultado es False -
Menor que (<) y Menor o igual que (<=): verifica si el primer operando es menor que el segundo.
El tercer y último tipo de operadores que vamos a ver son los operadores lógicos. Estos nos permiten trabajar con valores de tipo booleano, y su resultado también lo será.resultado = (a < b ) # resultado es True -
and: el operador and evalúa si el valor a la izquierda y el de la derecha son True, y en el caso de ser cierto, devuelve True. Si uno de los dos valores es False, el resultado será False. Es realmente un operador muy intuitivo que usamos en la vida real. Por ejemplo, si el semáforo está en verde y no vienen coches, cruzamos. Si ambas condiciones se cumplen, es decir que la variable semaforoVerde=True y la variable noVienenCoches=True, cruzaré, o visto de otra forma cruzar=(semaforoVerde and noVienenCoches).
-
or: el operador or devuelve True cuando al menos uno de los elementos es igual a True. Es decir, evalúa si el valor a la izquierda o el de la derecha son True.
-
not: simplemente invierte True por False y False por True.
Es importante notar que el orden de aplicación de los operadores puede influir en el resultado, por lo que es importante tener muy claro su prioridad de aplicación. De mayor a menor prioridad, el primero sería not, seguido de and y or.
Intenta averiguar el resultado de estos ejemplos sin ejecutar el programa:
print(False and False or True)
print(True or False and False)
print(0 and not 1 or 1 and not 0 or 1 and 0)
Expresiones compuestas¶
Las expresiones compuestas en Python combinan múltiples operadores y operandos para realizar cálculos más complejos. Es importante entender el orden de precedencia de los operadores para evaluar correctamente estas expresiones. Python sigue reglas de precedencia similares a las matemáticas tradicionales, donde las operaciones dentro de paréntesis se evalúan primero, seguidas por exponenciación, multiplicación/división/módulo, y finalmente suma/resta.
- Paréntesis (): Evalúan las expresiones dentro de los paréntesis primero.
- Exponenciación **.
- Signos + y –: Signos unarios antes de una variable (por ejemplo, -a).
- Multiplicación *, división /, división entera //, y módulo %.
- Suma + y resta –.
- Operadores de comparación: ==, !=, >, <, >=, <=.
- Operadores lógicos not, and, or.
Veamos uns ejemplos de expresiones compuestas:
\# Variables iniciales
a = 5
b = 3
c = 2
d = 4
-
Expresión compuesta
resultado = (a + b) \* c / d # Primero (a + b) = 8, luego 8 \* c = 16, y finalmente 16 / d = 4.0 -
Expresión más compleja
resultado = a + b \* c \*\* d - (a / b) # Precedencia: c \*\* d = 16, b \* 16 = 48, a / b = 1.6667, a + 48 = 53, y finalmente 53 - 1.6667 = 51.3333 -
Expresiones con cadenas de texto
Las cadenas de texto también pueden ser manipuladas usando operadores. Python permite concatenar (unir) cadenas usando el operador +, y repetir cadenas usando el operador *. Por ejemplo:
\# Concatenación de cadenas nombre = "Juan" saludo = "Hola, " + nombre + "!" # saludo es "Hola, Juan!" -
Repetición de cadenas
repetir = "Hola" \* 3 # repetir es "HolaHolaHola"
Interacción con el usuario¶
Cuando programamos, la interacción con el usuario es muy importante porque nos permite mostrarle datos al usuario (output), y también leer datos que el usuario introduce por el teclado (input). Python facilita enormemente este proceso, haciendo de las tareas de entrada/salida un trabajo realmente simle.
Mostrar datos en pantalla¶
Python utiliza la función print() para mostrar datos en la pantalla. Esta función es muy flexible y permite mostrar texto, variables y resultados de expresiones de manera fácil.
print(valor1, valor2, ..., sep=' ', end='\\n')
- valor1, valor2, …: los valores que se desean mostrar. Pueden ser cadenas de texto, números, variables, etc.
- sep: especifica el separador entre los valores (por defecto es un espacio).
- end: especifica lo que se muestra al final de la salida (por defecto es un salto de línea).
Veamos un ejemplo práctico de su uso:
\# Mostrar una cadena de texto
print("Hola, mundo")
Mostrar múltiples valores¶
nombre = "Juan"
edad = 25
print("Nombre:", nombre, "Edad:", edad)
Cambiar el separador y el final de línea¶
print("Python", "es", "genial", sep='-', end='!\\n')
nombre = "Ana"
edad = 30
print(f"Nombre: {nombre}, Edad: {edad}")
Obtener datos de teclado¶
La función input() se utiliza para leer datos introducidos por el usuario desde el teclado. Esta función siempre devuelve una cadena de texto, por lo que es necesario convertir los datos al tipo adecuado si se espera un valor numérico.
\# Leer una cadena de texto
nombre = input("Introduce tu nombre: ")
print("Hola", nombre)
Leer un número entero¶
edad = int(input("Introduce tu edad: "))
print("Tienes ", edad, " años")
Leer un número de punto flotante¶
altura = float(input("Introduce tu altura en metros: "))
print("Mides", altura, " metros")
Codificación¶
Llegados a este punto, tenemos todos los recursos necesarios empezar a escribir código, pero todavía nuestro marco mental está algo verde. Para entrenar un poco nuestra cabeza realizaremos los siguientes juegos:
Actividades¶
📝 AA4.10 Comentarios y tipos de datos¶
(C.ESP1 / CE1.2 / IC1-3p)
- Crea un nuevo fichero denominado
nombre_actividad.py. - Copia el siguiente código e inserta un comentario indicando el tipo de dato de cada variable.
-
Ejecuta el código mostrando la salida por terminal mediante una captura de pantalla.
# Declaramos variables nombre = "Juan" edad = 16 altura = 1.70 es_estudiante = True # Mostramos la información en pantalla print("Nombre:", nombre) print("Edad:", edad) print("Altura:", altura) print("Es estudiante:", es_estudiante)
Documentación
Una buena documentación facilita la comprensión del código y su mantenimiento a largo plazo, además permite que sea posible la colaboración efectiva entre los miembros del equipo.
Solución
# Comentarios explicando cada línea del código
# Declaramos variables
nombre = "Juan" # String: nombre de un amigo
edad = 16 # Entero: edad de un amigo
altura = 1.70 # Float: altura en metros
es_estudiante = True # Booleano: si es estudiante o no
# Mostramos la información en pantalla
print("Nombre:", nombre)
print("Edad:", edad)
print("Altura:", altura)
print("Es estudiante:", es_estudiante)
📝 AA4.11 Tipos de datos¶
(C.ESP1 / CE1.2 / IC1-3p)
Para que puedas practicar sobre los conceptos de variables, constantes, operadores, expresiones y la entrada/salida de datos usando Python, aquí tienes una batería de ejercicios resueltos con explicaciones detalladas de cada uno.
te recomiendo que pruebes todos los fragmentos de código que vayan apareciendo en los apuntes. Escribe el código a mano e irás ganando poco a poco soltura, al mismo tiempo que te vas quedando con las instrucciones que forman los programas.
-
Calcular la suma de dos números
Escribe un programa que pida al usuario dos números y luego muestre la suma de ambos.
Solución
# Solicitar dos números al usuario numero1 = float(input("Introduce el primer número: ")) numero2 = float(input("Introduce el segundo número: ")) # Calcular la suma suma = numero1 + numero2 # Mostrar el resultado print(f"La suma de {numero1} y {numero2} es: {suma}")Primero pedimos al usuario que introduzca dos números. Usamos la función
input()para obtener los valores, y float() para convertirlos en números decimales.Luego, sumamos ambos números y mostramos el resultado utilizando una F-string en
print()para una salida más legible. -
Calcular el área de un círculo
Escribe un programa que pida al usuario el radio de un círculo y calcule su área.
Solución
# Definir la constante PI PI = 3.14159 # Solicitar el radio al usuario radio = float(input("Introduce el radio del círculo: ")) # Calcular el área area = PI * (radio ** 2) # Mostrar el resultado print(f"El área del círculo es: {area}")Definimos la constante PI y pedimos el radio del círculo. Usamos la fórmula del área de un círculo
πr2y calculamos el resultado. Luego, lo mostramos conprint(). -
Convertir grados Celsius a Fahrenheit
Escribe un programa que convierta una temperatura introducida en grados Celsius a grados Fahrenheit.
Solución
# Solicitar los grados Celsius al usuario celsius = float(input("Introduce la temperatura en grados Celsius: ")) # Convertir a Fahrenheit fahrenheit = (celsius * 9/5) + 32 # Mostrar el resultado print(f"{celsius} grados Celsius son {fahrenheit} grados Fahrenheit.")Solicitamos la temperatura en Celsius, luego usamos la fórmula de conversión
F=C×9/5+32para obtener los grados Fahrenheit. El resultado se muestra usando una F-string. -
Calcular el doble y el triple de un número
Escribe un programa que pida un número al usuario y muestre tanto el doble como el triple de ese número.
Solución
# Solicitar un número al usuario numero = float(input("Introduce un número: ")) # Calcular el doble y el triple doble = numero * 2 triple = numero * 3 # Mostrar los resultados print(f"El doble de {numero} es: {doble}") print(f"El triple de {numero} es: {triple}")El programa solicita un número, luego calcula el doble y el triple usando operaciones de multiplicación. Posteriormente, muestra ambos resultados.
-
Calcular la media de tres números
Escribe un programa que pida tres números al usuario y calcule su media.
Solución
# Solicitar tres números al usuario numero1 = float(input("Introduce el primer número: ")) numero2 = float(input("Introduce el segundo número: ")) numero3 = float(input("Introduce el tercer número: ")) # Calcular la media media = (numero1 + numero2 + numero3) / 3 # Mostrar el resultado print(f"La media de los tres números es: {media}")Solicitamos tres números, los sumamos y dividimos entre 3 para obtener la media. Luego, mostramos el resultado con ´print()´.
-
Multiplicar dos números
Escribe un programa que pida al usuario dos números y muestre su producto.
Solución
# Solicitar dos números al usuario numero1 = float(input("Introduce el primer número: ")) numero2 = float(input("Introduce el segundo número: ")) # Calcular el producto producto = numero1 * numero2 # Mostrar el resultado print(f"El producto de {numero1} y {numero2} es: {producto}")Solicitamos los dos números, los multiplicamos y mostramos el producto usando la función
print(). -
Concatenar dos cadenas de texto
Escribe un programa que pida al usuario dos frases y luego muestre ambas frases concatenadas en una sola línea.
Solución
# Solicitar dos frases al usuario frase1 = input("Introduce la primera frase: ") frase2 = input("Introduce la segunda frase: ") # Concatenar las frases frases_concatenadas = frase1 + " " + frase2 # Mostrar el resultado print(f"Las frases concatenadas son: {frases_concatenadas}")El programa solicita dos cadenas de texto al usuario y las une usando el operador de concatenación
+. Posteriormente, muestra la cadena resultante -
Mostrar un número repetido varias veces
Escribe un programa que pida al usuario un número y luego muestre ese número repetido 5 veces.
Solución
# Solicitar un número al usuario numero = input("Introduce un número: ") # Repetir el número 5 veces numero_repetido = numero * 5 # Mostrar el resultado print(f"El número repetido 5 veces es: {numero_repetido}")Usamos el operador
*para repetir la cadena que representa el número introducido por el usuario cinco veces. El resultado es una concatenación del número 5 veces seguidas. -
Calcular el área de un rectángulo
Escribe un programa que calcule el área de un rectángulo a partir de su base y altura proporcionadas por el usuario.
Solución
# Solicitar base y altura al usuario base = float(input("Introduce la base del rectángulo: ")) altura = float(input("Introduce la altura del rectángulo: ")) # Calcular el área area = base * altura # Mostrar el resultado print(f"El área del rectángulo es: {area}")Pedimos al usuario la base y la altura, y usamos la fórmula del área del rectángulo base×altura. Mostramos el resultado con
print(). -
Calcular el perímetro de un rectángulo
Escribe un programa que pida al usuario la base y la altura de un rectángulo y luego calcule su perímetro.
Solución
# Solicitar base y altura al usuario base = float(input("Introduce la base del rectángulo: ")) altura = float(input("Introduce la altura del rectángulo: ")) # Calcular el perímetro perimetro = 2 * (base + altura) # Mostrar el resultado print(f"El perímetro del rectángulo es: {perimetro}")El programa solicita la base y la altura del rectángulo, luego calcula el perímetro usando la fórmula
2×(base+altura). El resultado se muestra al usuario.
🔨 AAR4.12 Refuerzo: Basicos Python¶
(C.ESP1 / CE1.2 / IC1-3p)
-
Crea un programa llamado
Porcentajes.pyque le pregunte al usuario cuántos chicos y chicas hay en su clase, y calcule el porcentaje de chicos y chicas. Aquí tienes un ejemplo de cómo debería funcionar:Escribe el número de chicos: 12. Escribe el número de chicas: 8 Hay un 60% de chicos y un 40% de chicasPISTA: para sacar el símbolo del porcentaje en un texto, debemos duplicarlo
%%.Solución
Aquí puedes ver un vídeo con la solución paso a paso del ejercicio
-
Crea un programa llamado
Saludo.pyque le pregunte al usuario su nombre y edad, y muestre un mensaje de saludo personalizado, de este modo:Hola Miguel, tienes 103 años -
Crea un programa llamado
Media.pyque le pida al usuario 4 números enteros y calcule su media (real). La media debe mostrarse en pantalla con 3 cifras decimales.