Guia

Fundamentos de Programación

Luis Daniel Fonseca

En esta guía cubriremos los fundamentos de la programación. Usaremos Python pero estos fundamentos funcionan en los lenguajes de programación, así que esto ayudará incluso si está interesado en aprender un lenguaje diferente al principio. 

¿Que es programar? 

La programación es decirle a la computadora cómo ingerir, procesar y luego almacenar datos. Cuando alguien escribe un programa, esa persona le está dando a la computadora un conjunto de comandos que debe seguir para gestionar esos datos. 

Cuando escribimos programas, estamos escribiendo instrucciones que la computadora seguirá. Las computadoras son muy literales: tomarán nuestras instrucciones y las seguirán exactamente, pero debemos presentarlas de manera muy detallada para que nos entiendan. 

¿Donde puedes ver programas en uso? 

¡En todas partes! Desde el sistema operativo de tu computadora, hasta sitios web complejos. Los teléfonos celulares, las neveras de ultimo modelo, los autos sin conductor, un cajero automático, los escáneres de supermercados y la mayoría de los televisores usan el código para funcionar. 

¿Que son los lenguajes de programación? 

Las computadoras no pueden entender el lenguaje natural por defecto, aunque se están acercando cada vez más a ser capaces de hacerlo. 

Las computadoras funcionan con una serie de interruptores microscópicos de encendido y apagado, y cuando escribimos código los estamos encendiendo y apagando, ¡como un interruptor de luz! Las computadoras usan un sistema numérico llamado binario para usar estos interruptores de encendido y apagado. El binario es un sistema numérico compuesto por 1s y 0s en contraste con nuestro sistema decimal que usa 0-9. 

Afortunadamente, muchas personas realmente inteligentes antes de nuestro tiempo pensaron en una forma en que podemos hablar con nuestras computadoras sin ceros ni unos. En cambio, usamos lenguajes de programación que pueden ser interpretados por nuestra computadora, de forma similar a cómo los intérpretes de idiomas pueden traducir del español al inglés o incluso del inglés al lenguaje de señas. Se parecen mucho más al inglés que al binario, pero aún tienen muchos más símbolos y menos formas de hacer las cosas que el lenguaje natural. 

Fundamentos 


Nuestro primer programa
Cuando aprendes un nuevo lenguaje de programación es tradición hacer un programa conocido como “hola mundo!”.  Asi que escribiremos uno.  

Pero antes, como correr un programa:  
  1. Ve a https://repl.it/
  2. Haz click en “new repl" 
  3. Haz click en Python y luego create Repl.  
  4. Coloca el código que quieras correr en la ventana main.py 
  5. Haz click en “run" 

Hay una función en Python que permite escribir texto en el lugar donde estamos corriendo nuestro código. (En nuestro caso la consola).  

print(“Hola Mundo") 

Como podrás ver notado, el texto se declara entre comillas. En programación se conoce como String ( cadena de caracteres ).  

Hablaremos de funciones y strings mas adelante. 

Felicidades! Ya hiciste tu primer programa. Nada mal, no? 

Numbers and Operator
Puedes hacer cualquier calculación aritmética programando. Prueba las siguientes operaciones en https://repl.it/ 

Ojo: Las cosas después de los hashtags en Python son comentarios: la computadora los ignora y están allí como notas para ti y otros desarrolladores. 

# Suma 
> 2 + 3  #5

# Resta 
> 9 - 3  #6

# Multiplicacion 
> 8 * 8  #64

#Division
> 24 / 6 #4

Variables
Las variables son una pieza muy importante de programación. Las variables almacenan una información que puede usar una y otra vez. Si recuerda las variables de la clase de álgebra, ¡son lo mismo conceptualmente! 

En Python, es muy sencillo definir una variable. Se hace de la siguiente manera: 

numero = 10 

¿Que tal? Acabamos de asignar el numero 10 a la variable llamada numero.  

Como podras ver en el siguiente ejemplo, puedes definir cualquier variable con el valor que quieras!  

edad = 28 
nombre = “Luis Daniel” 

print(edad) #28
print(nombre) #Luis Daniel

De esta manera podras usar nombre y edad en cualquier lugar de nuestro código.  

Data Types 
Hay diferentes tipos de datos que podemos usar al programar. Algunos comunes son los Integers (numeros enteros), floats (flotantes), booleans (booleanos) y Strings (cadenas de caracteres). 

*Integers (numeros enteros) 
Los Integers son otro término de clase matemática: son básicamente números sin decimales. Entonces 1, 0, -100, 200, etc. 

Podemos usar números enteros en Python simplemente escribiendo números. 

Puedes definir variables con numeros y hacer operaciones como lo hicimos anteriormente.  

print(5 + 8) 

numero = 2
otro_numero = 3

print(numero + otro_numero) #5

*Floats 
Son números con decimales, por lo que 4.0, 4.5, -19.6, etc.  

*Booleans 
Booleans son valores verdaderos y falsos en Python, estos se usan principalmente para decir "sí" o "no", ¿recuerda cómo las computadoras son un montón de interruptores de encendido y apagado ( ceros y unos )? ¡Los booleanos son similares! 

Podemos establecer variables en booleans, pero generalmente es más útil comparar valores y ver los resultados como booleans. Un uso común es verificar la igualdad. ¿Es alguna variable igual a algún valor? Usamos signos de igual doble para verificar la igualdad, ya que usamos un signo de igual para establecer una variable. 

edad = 28 
print(edad == 28) #True 

También podemos verificar mayor o menor que, o todos esos controles matemáticos. ¡Usamos > para mayor, < para menos, >= para mayor o igual, y <= para menor o igual! 

print(5 > 10) # False 
print(10 >= 10) # True 

También podemos almacenar booleans en variables. 

verdadero = 10 > 5 
print(verdadero) #True 

Strings 
Como ya lo mencionamos antes. Strings es texto en Python. Y es representado entre comillas  (“”). 

mi_string = “Esto es un String” 
print(mi_string) 

Conditionals 
"If" usa una expresión para evaluar si una declaración es verdadera o falsa. Si es Verdadero, ejecuta lo que está dentro de la declaración "si". Por ejemplo: 

if True:   
  print("Hello Python") 

if 2 > 1:   
  print(“2 es mayor que 1") 

2 es mayor que 1, por lo que se ejecuta el código de “print”. 

La instrucción "else" se ejecutará si la expresión "if" es falsa. 

if 1 > 2: 
  print("1 es mayor que 2") 
else: 
  print(“1 no es mayor que dos") 

Loops 
Los loops nos permiten ejecutar el mismo bloque de código varias veces.En Python, podemos iterar en diferentes formas. En esta guía hablaremos de dos: while y for. 

*Usando While: mientras la declaración es verdadera, se ejecutará el código dentro del bloque. En el siguiente ejemplo podras ver este código imprimirá el número del 1 al 10. 

num = 1 
while num <= 10:     
  print(num)     
  num += 1
>1
>2
>3
>4
>5
>6
>7
>8
>9
>10

El loop while necesita una condición para terminar ciclo. Si se mantiene Verdadero, continúa iterando. En este ejemplo, cuando num es 11, la condición del bucle es igual a Falso. 

Quizás un mejor ejemplo: 

condicion = True 

while condicion: 
  print(condicion)  
  condicion = False 

*Usando For: Este código se imprimirá igual que el código while: del 1 al 10. 

for i in range(1, 11):   
  print(i) 
>1
>2
>3
>4
>5
>6
>7
>8
>9
>10

La diferencia es que la variable "i" es declarada dentro del bloque For, y esta sera usada para iterar dentro del rango 1 al 10.  

Lists ( Listas) List: Collection | Array | Data Structure 
Imagina que deseas almacenar el número entero 1 en una variable. Pero tal vez ahora quieras almacenar 2. Y 3, 4, 5 ... 

¿Hay alguna otra forma de almacenar todos los numeros que quiero, pero no en millones de variables? Lo has adivinado: de hecho, hay otra forma de almacenarlos. 

Listas es una colección que se puede usar para almacenar una lista de valores. Así que usémoslo: 

my_integers = [1, 2, 3, 4, 5] 

Es realmente simple Creamos una lista y la almacenamos en my_integers. 

Pero tal vez te preguntas: "¿Cómo puedo obtener un valor de esta lista?" 

La lista tiene un concepto llamado índice. El primer elemento obtiene el índice 0 (cero). El segundo obtiene 1, y así sucesivamente. 

my_integers = [5, 7, 1, 3, 4] 

print(my_integers[0]) # 5 

print(my_integers[1]) # 7 

print(my_integers[4]) # 4 

Imagina que no quieres almacenar números. Solo desea almacenar cadenas, como una lista de los nombres de tus familiares. El mío se vería así: 

nombres = [   
  “Claudia",   
  “Maria",   
  “Luis",   
  “Jesus",   
  “Jose" 
] 
print(nombres[2]) # Luis 

Funciona de la misma manera que los numeros. 

Acabamos de aprender cómo funcionan los índices de listas. Pero aún necesito mostrarle cómo podemos agregar un elemento a una Lista. 

El método más común para agregar un nuevo valor a una Lista es "append". Vamos a ver cómo funciona: 

libros = [] libros.append(“Harry Potter") 

libros.append("The 4 Hour Work Week") 

print(libros[0]) # Harry Potter 

print(libros[1]) # The 4 Hour Work Week 

Iterando listas 
La situación más común en usar loops en programación es iterar una lista. Hagamoslo! 

nombres = [   
  “Claudia",   
  “Maria", 
  “Luis", 
  “Jesus", 
  “Jose" 
]

for nombre in nombres: 
    print(nombre)  

Una de las cosas que hace Python tan popular es su simplicidad.  Asi que por casa nombre en la lista de nombres lo pringamos ( aunque podríamos hacer cualquier cosa con cada nombre).  

Functions ( Funciones) 
Quisiera hacer una nota rápida  antes de comenzar a explicar las funciones: 

  • Argumentos: se pasan a una función cada vez que se llama (también conocida como invocar). 

  • Parámetros: las variables en la definición de la función. 

En def mi Funcion(x, y), x e y son los parámetros. Cuando ejecutamos esa función diciendo miFuncion (1, 3), 1 y 3 son los argumentos. 

Las funciones son como una serie de entradas y salidas, como una pequeña máquina. Pones algo en la máquina y algo sale basado en eso. Los argumentos son las cosas que está introduciendo en la máquina, y el valor de retorno es lo que se genera. Esto coincide más estrechamente con la definición algebraica de funciones: si recuerdas f (x) = 2x + 1 de matemáticas de la escuela, esas son funciones simplemente escritas en papel en lugar de escritas programáticamente. 

En Python, el orden de los argumentos que se pasan a la función corresponde al orden de los parámetros en la declaración de la función. Entonces, si mi declaración de función se parece a def sumar (x, y) y luego llamo a la función con sumar (1, 2), en la función 1 será x y 2 será y. Si en su lugar ejecuto sumar (100, 50), x será 100 e y será 50. Dado que x es mi primer parámetro, el primer argumento que paso a la función será x, y dado que y es el segundo, el segundo valor I pase será y. A veces es útil hacer un diagrama de esto. 

Todo después del keyword “return” es la salida de la función.  

def sumar(x, y):   
  return x + y 

print(sumar(5, 2)) # 7. (5 es x, 2 es y)

print(sumar(100, 50)) # 150. (100 es x, 50 es y )

cinco = sumar(2, 3) 

print(cinco) 

Otro ejemplo: 

def saluda(persona):     
  return("Hola " + persona)

luis = saluda(“Luis") 

print(luis) 

Siguientes pasos 

Listos! Aprendimos muchas cosas básicas de Python.

Quieres seguir aprendiendo un poco mas de Python. Aqui te dejamos un link para que sigas aprendiendo mucho mas.  http://docs.python.org.ar/tutorial/

En un futuro estaremos incluyendo mas guías como esta. 

Luis Daniel Fonseca
iluisdaniel

Technology, Entrepreneurship and Self Improvement. Sharing everything I learn along the way. 🚀 Cofundador soyremoto

Software Engineer en Intel
US

Comentarios

Luis Daniel Fonseca · 10 months
Software Engineer en Intel

Muchas Gracias Agustin! Me alegra mucho que te haya gustado!

Respondiendo tu pregunta, si la funcion range() se comporta asi por defecto. 

Lo puedes usar de dos formas: 
Range(stop)
 
Range(start, stop, step)

Si quieres leer un poco mas sobre esto chequea la documentacion aqui https://docs.python.org/3/library/stdtypes.html#range

Me dejas saber cualquier otra cosa. Saludos!
Muy bueno y muy claro en todas tus explicaciones! Sin dudas un buena comienzo para alguien que no sepa sobre este mundillo.

De paso aprovecho para hacer una consulta: En los range() , ¿porque el ultimo valor no lo toma? Por ejemplo en la sentencia que haces range(1,11) el 11 no es tomado en cuenta.
 Python se comporta así por defecto? Toma el valor que comienza pero no el que termina el rango?

Muchas gracias por el contenido y saludos!