Lección 1 Primer Programa
Entenderemos que son las variables, bugs, comentarios, int, floatstring, funciones
Creando código con Python
- Y aprendimos a instalar VS Code, y es un tipo especial de editor de texto que se llama compilador. En la parte superior, verás un editor de texto. En la parte inferior, verá una terminal donde puede ejecutar comandos.
- En la terminal, puede ejecutar
code hello.py
para comenzar a codificar. - En el editor de texto de arriba, puedes escribir
print("hello, world")
. Este es un programa canónico famoso que casi todos los programadores escriben durante su proceso de aprendizaje. - En la ventana de la terminal, puede ejecutar comandos. Para ejecutar este programa, necesitará mover el cursor a la parte inferior de la pantalla, haciendo clic en la ventana del terminal. Ahora puede escribir un segundo comando en la ventana de terminal. Junto al signo de dólar, escriba
python hello.py
y presione la tecla Intro en su teclado. - Recuerde que las computadoras en realidad sólo entienden ceros y unos. Por lo tanto, cuando ejecute
python hello.py
, Python interpretará el texto que creóhello.py
y lo traducirá a ceros y unos que la computadora pueda entender. - El resultado de ejecutar en la terminal
python hello.py
o si tiene la version 3 podria serpython3 hello.py
, nos daria como resultado la ejecucion del programa, que es el mensaje salido por la terminal dehello, world
. - ¡Felicitaciones! Acabas de crear tu primer programa.
Funciones
- Las funciones son verbos o acciones que la computadora o el lenguaje informático ya sabrá realizar.
- En su primer programa que realizo
hello.py
, la funcionprint
sabe cómo imprimir en la ventana del terminal. - La función
print
toma argumentos. En este caso,"hello, world"
son los argumentos queprint
toma la función.
Bugs
- Los errores son una parte natural de la codificación. ¡Estos son errores, problemas que debes resolver! ¡No te desanimes! Esto es parte del proceso de convertirse en un gran programador.
- Imagínese en nuestro
hello.py
programa que accidentalmente escribimosprint("hello, world"
un aviso de que nos perdimos el final)
requerido por el compilador. Si cometo este error a propósito, ¡el compilador generará un error en la ventana de la terminal! - A menudo, los mensajes de error le informarán de sus errores y le proporcionarán pistas sobre cómo solucionarlos. Sin embargo, habrá muchas ocasiones en las que el compilador no sea de este tipo.
Mejorando su primer programa Python
Podemos personalizar su primer programa Python.
En nuestro editor de texto
hello.py
, o si esta usando VsCode, en el editor podemos agregar otra función.input
es una función que toma un mensaje como argumento. Podemos editar nuestro código para decirinput("What's your name? ") print("hello, world")
Sin embargo, esta edición por sí sola no permitirá que su programa genere lo que ingresa su usuario. Para eso, necesitaremos presentarle las variables.
variables
Una variable es sólo un contenedor de un valor dentro de su propio programa.
Puede introducir su propia variable en su programa editándola para que lea
name = input("What's your name? ") print("hello, world")
Observe que este
=
signo igual en el medioname = input("What's your name? ")
tiene un papel especial en la programación. Este signo igual asigna literalmente lo que está a la derecha a lo que está a la izquierda. Por lo tanto, el valor devuelto porinput("What's your name? ")
se asigna aname
.Si edita su código de la siguiente manera, notará un error
name = input("What's your name? ") print("hello, name")
El programa regresará
hello, name
a la ventana de la terminal independientemente de lo que escriba el usuario.Editando más nuestro código, puedes escribir
name = input("What's your name? ") print("hello,") print(name)
El resultado en la ventana de terminal sería
What's your name? David hello David
¡Estamos cada vez más cerca del resultado que podríamos pretender!
Puede obtener más información en la documentación de Python sobre tipos de datos .
Comentarios
Los comentarios son una forma para que los programadores realicen un seguimiento de lo que están haciendo en sus programas e incluso informen a otros sobre sus intenciones para un bloque de código. En resumen, ¡son notas para usted y para otras personas que verán su código!
Puede agregar comentarios a su programa para poder ver qué es lo que está haciendo su programa. Puede editar su código de la siguiente manera:
# Ask the user for their name name = input("What's your name? ") print("hello,") print(name)
Los comentarios también pueden servirle como una lista de tareas pendientes.
Pseudocódigo
El pseudocódigo es un tipo importante de comentario que se convierte en un tipo especial de lista de tareas pendientes, especialmente cuando no se comprende cómo realizar una tarea de codificación. Por ejemplo, en su código, puede editarlo para que diga:
# Ask the user for their name name = input("What's your name? ") # Print hello print("hello,") # Print the name inputted print(name)
Mejorando aún más su primer programa Python
Podemos editar aún más nuestro código de la siguiente manera:
# Ask the user for their name name = input("What's your name? ") # Print hello and the inputted name print("hello, " + name)
Resulta que algunas funciones toman muchos argumentos.
Podemos usar una coma
,
para pasar múltiples argumentos editando nuestro código de la siguiente manera:# Ask the user for their name name = input("What's your name? ") # Print hello and the inputted name print("hello,", name)
La salida en la terminal, si escribiéramos "David" sería
hello, David
. Éxito.
Cadenas string
y parámetros
Una cadena , conocida como
str
en Python, es una secuencia de texto.Revisando un poco en nuestro código hasta lo siguiente, hubo un efecto secundario visual al hacer que el resultado apareciera en varias líneas:
# Ask the user for their name name = input("What's your name? ") print("hello,") print(name)
Las funciones toman argumentos que influyen en su comportamiento. Si miramos la documentación,
print
notará que podemos aprender mucho sobre los argumentos que toma la función de impresión.Al observar esta documentación, aprenderá que la función de impresión incluye automáticamente un fragmento de código
end='\n'. This
\nindicates that the print function will automatically create a line break when run. The print function takes an argument called
end` y que el valor predeterminado es crear una nueva línea.Sin embargo, técnicamente podemos proporcionarnos un argumento
end
para que no se cree una nueva línea.Podemos modificar nuestro código de la siguiente manera:
# Ask the user for their name name = input("What's your name? ") print("hello,", end="") print(name)
Al proporcionar,
end=""
estamos sobrescribiendo el valor predeterminado deend
tal que nunca cree una nueva línea después de esta primera declaración impresa. Al proporcionar el nombre "Vidal", la salida en la ventana del terminal seráhello, Vidal
.Los parámetros, por tanto, son argumentos que puede tomar una función.
Puede obtener más información en la documentación de Python en
print
.
Un pequeño problema con las comillas.
- Observe cómo es un desafío agregar comillas como parte de su cadena.
print("hello,"friend"")
no funcionará y el compilador arrojará un error.- Generalmente, existen dos enfoques para solucionar este problema. Primero, simplemente podría cambiar las comillas por comillas simples.
- Otro enfoque más utilizado sería codificar como
print("hello, \"friend\"")
. Las barras invertidas le indican al compilador que el siguiente carácter debe considerarse una comilla en la cadena y evitar un error del compilador.
Formatear cadenas
Probablemente la forma más elegante de utilizar cadenas sería la siguiente:
# Ask the user for their name name = input("What's your name? ") print(f"hello, {name}")
Observe el
f
enprint(f"hello, {name}")
. Estef
es un indicador especial para que Python trate esta cadena de una manera especial, diferente a los enfoques anteriores que hemos ilustrado en esta conferencia. Espere utilizar este estilo de cuerdas con bastante frecuencia en este curso.
Mas Strings
Nunca debes esperar que tu usuario coopere según lo previsto. Por lo tanto, deberá asegurarse de que la entrada de su usuario esté corregida o verificada.
Resulta que las cadenas tienen incorporada la capacidad de eliminar espacios en blanco de una cadena.
Al utilizar el método
strip
onname
comoname = name.strip()
, se eliminarán todos los espacios en blanco a la izquierda y a la derecha de la entrada del usuario. Puedes modificar tu código para que sea:# Ask the user for their name name = input("What's your name? ") # Remove whitespace from the str name = name.strip() # Print the output print(f"hello, {name}")
Al volver a ejecutar este programa, independientemente de cuántos espacios escriba antes o después del nombre, se eliminarán todos los espacios en blanco.
Usando el
title
método, titularía en mayúsculas y minúsculas el nombre del usuario:# Ask the user for their name name = input("What's your name? ") # Remove whitespace from the str name = name.strip() # Capitalize the first letter of each word name = name.title() # Print the output print(f"hello, {name}")
En este punto, es posible que esté muy cansado de escribir
python
repetidamente en la ventana de la terminal. Debe utilizar la flecha hacia arriba de su teclado para recuperar los comandos de terminal más recientes que haya realizado.Tenga en cuenta que puede modificar su código para que sea más eficiente:
# Ask the user for their name name = input("What's your name? ") # Remove whitespace from the str and capitalize the first letter of each word name = name.strip().title() # Print the output print(f"hello, {name}")
Esto crea el mismo resultado que su código anterior.
¡Incluso podríamos llegar más lejos!
# Ask the user for their name, remove whitespace from the str and capitalize the first letter of each word name = input("What's your name? ").strip().title() # Print the output print(f"hello, {name}")
Puede obtener más información sobre las cadenas en la documentación de Python en
str
Enteros o int
En Python, un número entero se conoce como
int
.En el mundo de las matemáticas, estamos familiarizados con los operadores +, -, *, / y %. Es posible que ese último operador
%
u operador de módulo no le resulte muy familiar.No es necesario utilizar la ventana del editor de texto de su compilador para ejecutar el código Python. Abajo en tu terminal, puedes correr
python
solo. Se le presentará>>>
en la ventana de terminal. Luego puede ejecutar código interactivo en vivo. Puede escribir1+1
y ejecutará ese cálculo. Este modo no se utilizará habitualmente durante este curso.Al abrir VS Code nuevamente, podemos escribir
code calculator.py
en la terminal. Esto creará un nuevo archivo en el que crearemos nuestra propia calculadora.Primero, podemos declarar algunas variables.
x = 1 y = 2 z = x + y print(z)
Naturalmente, cuando ejecutamos
python calculator.py
obtenemos el resultado en la ventana de terminal de3
. Podemos hacer esto más interactivo usando lainput
función.x = input("What's x? ") y = input("What's y? ") z = x + y print(z)
Al ejecutar este programa, descubrimos que el resultado es incorrecto como
12
. ¿Por qué podría ser esto?Anteriormente hemos visto cómo el
+
signo concatena dos cadenas. Debido a que la entrada del teclado de su computadora ingresa al compilador como texto, se trata como una cadena. Por lo tanto, necesitamos convertir esta entrada de una cadena a un número entero. Podemos hacerlo de la siguiente manera:x = input("What's x? ") y = input("What's y? ") z = int(x) + int(y) print(z)
El resultado ahora es correcto. El uso de
int(x)
se llama "conversión", donde un valor se cambia temporalmente de un tipo de variable (en este caso, una cadena) a otro (aquí, un número entero).Podemos mejorar aún más nuestro programa de la siguiente manera:
x = int(input("What's x? ")) y = int(input("What's y? ")) print(x + y)
Esto ilustra que puede ejecutar funciones sobre funciones. Primero se ejecuta la función interna y luego la externa. Primero,
input
se ejecuta la función. Entonces, laint
función.Puede obtener más información en la documentación de Python sobre
int
.
La legibilidad gana
- Al decidir su enfoque para una tarea de codificación, recuerde que se pueden presentar argumentos razonables para muchos enfoques del mismo problema.
- Independientemente del enfoque que adopte para una tarea de programación, recuerde que su código debe ser legible. Debes utilizar comentarios para darte a ti mismo y a otros pistas sobre lo que está haciendo tu código. Además, debe crear código de manera que sea legible.
Conceptos básicos de Float
Un valor de punto flotante es un número real que tiene un punto decimal, como por ejemplo
0.52
.Puede cambiar su código para admitir flotadores de la siguiente manera:
x = float(input("What's x? ")) y = float(input("What's y? ")) print(x + y)
Este cambio le permite a su usuario ingresar
1.2
y3.4
presentar un total de4.6
.Sin embargo, imaginemos que desea redondear el total al número entero más cercano. Si consulta la documentación de Python
round
, verá que los argumentos disponibles sonround(number[n, ndigits])
. Esos corchetes indican que el programador puede especificar algo opcional. Por lo tanto, podríasround(n)
redondear un dígito a su número entero más cercano. Alternativamente, podría codificar de la siguiente manera:# Get the user's input x = float(input("What's x? ")) y = float(input("What's y? ")) # Create a rounded result z = round(x + y) # Print the result print(z)
La salida se redondeará al número entero más cercano.
¿Qué pasaría si quisiéramos formatear la salida de números largos? Por ejemplo, en lugar de ver
1000
, es posible que desees ver1,000
. Podrías modificar tu código de la siguiente manera:# Get the user's input x = float(input("What's x? ")) y = float(input("What's y? ")) # Create a rounded result z = round(x + y) # Print the formatted result print(f"{z:,}")
Aunque es bastante críptico, eso
print(f"{z:,}")
crea un escenario en el que el resultadoz
incluirá comas donde el resultado podría verse como1,000
o2,500
.
Más sobre Floats
¿Cómo podemos redondear los valores de coma flotante? Primero, modifique su código de la siguiente manera:
# Get the user's input x = float(input("What's x? ")) y = float(input("What's y? ")) # Calculate the result z = x / y # Print the result print(z)
Al ingresar
2
como x y3
como y, el resultado z es0.6666666666
, aparentemente llegando al infinito como podríamos esperar.Imaginemos que queremos redondear esto hacia abajo. Podríamos modificar nuestro código de la siguiente manera:
# Get the user's input x = float(input("What's x? ")) y = float(input("What's y? ")) # Calculate the result and round z = round(x / y, 2) # Print the result print(z)
Como era de esperar, esto redondeará el resultado a los dos decimales más cercanos.
También podríamos usar
fstring
para formatear la salida de la siguiente manera:# Get the user's input x = float(input("What's x? ")) y = float(input("What's y? ")) # Calculate the result z = x / y # Print the result print(f"{z:.2f}")
Este
fstring
código críptico muestra lo mismo que nuestra estrategia de redondeo anterior.Puede obtener más información en la documentación de Python de
float
.
definición Def
¿No sería bueno crear nuestras propias funciones?
Recuperemos nuestro código final
hello.py
escribiendocode hello.py
en la ventana de la terminal. Su código inicial debería verse de la siguiente manera:# Ask the user for their name, remove whitespace from the str and capitalize the first letter of each word name = input("What's your name? ").strip().title() # Print the output print(f"hello, {name}")
¡Podemos mejorar nuestro código para crear nuestra propia función especial que diga "hola" por nosotros!
Borrando todo nuestro código en nuestro editor de texto, comencemos desde cero:
name = input("What's your name? ") hello() print(name)
Al intentar ejecutar este código, su compilador arrojará un error. Después de todo, no existe una función definida para
hello
.Podemos crear nuestra propia función llamada
hello
de la siguiente manera:def hello(): print("hello") name = input("What's your name? ") hello() print(name)
Observe que todo lo que aparece a continuación
def hello()
tiene sangría. Python es un lenguaje sangrado. Utiliza sangría para comprender qué es parte de la función anterior. Por lo tanto, todo lo que hay en lahello
función debe tener sangría. Cuando algo no tiene sangría, lo trata como si no estuviera dentro de lahello
función. Al ejecutarlopython hello.py
en la ventana de la terminal, verá que su resultado no es exactamente el que desea.Podemos mejorar aún más nuestro código:
# Create our own function def hello(to): print("hello,", to) # Output using our own function name = input("What's your name? ") hello(name)
Aquí, en las primeras líneas, estás creando tu
hello
función. Esta vez, sin embargo, le estás diciendo al compilador que esta función toma un único parámetro: una variable llamadato
. Por lo tanto, cuando llamashello(name)
a la computadora pasaname
a lahello
función comoto
. Así es como pasamos valores a funciones. ¡Muy útil! Al ejecutarlopython hello.py
en la ventana de la terminal, verá que el resultado está mucho más cerca de nuestro ideal presentado anteriormente en esta lección.Podemos cambiar nuestro código para agregar un valor predeterminado a
hello
:# Create our own function def hello(to="world"): print("hello,", to) # Output using our own function name = input("What's your name? ") hello(name) # Output without passing the expected arguments hello()
Pruebe su código usted mismo. Observe cómo el primero
hello
se comportará como era de esperar, y el segundo hello, al que no se le pasa un valor, generará, de forma predeterminada,hello, world
.No tenemos que tener nuestra función al inicio de nuestro programa. Podemos moverlo hacia abajo, pero debemos decirle al compilador que tenemos una
main
función y unahello
función separada.def main(): # Output using our own function name = input("What's your name? ") hello(name) # Output without passing the expected arguments hello() # Create our own function def hello(to="world"): print("hello,", to)
Sin embargo, esto por sí solo creará una especie de error. ¡Si corremos
python hello.py
no pasa nada! La razón de esto es que nada en este código llama realmente a lamain
función y da vida a nuestro programa.La siguiente modificación muy pequeña llamará a la
main
función y restaurará nuestro programa a su funcionamiento:def main(): # Output using our own function name = input("What's your name? ") hello(name) # Output without passing the expected arguments hello() # Create our own function def hello(to="world"): print("hello,", to) main()
Valores devueltos
Puede imaginar muchos escenarios en los que no solo desea que una función realice una acción sino que también devuelva un valor a la función principal. Por ejemplo, en lugar de simplemente imprimir el cálculo de
x + y
, es posible que desee que una función devuelva el valor de este cálculo a otra parte de su programa. A este “devolución” de un valor lo llamamosreturn
valor.Volviendo a nuestro
calculator.py
código escribiendocode calculator.py
. Borre todo el código allí. Vuelva a trabajar el código de la siguiente manera:def main(): x = int(input("What's x? ")) print("x squared is", square(x)) def square(n): return n * n main()
Efectivamente,
x
se pasa asquare
. Luego, el cálculo dex * x
se devuelve a la función principal.
Resumiendo
A través del trabajo de esta única conferencia, ha aprendido habilidades que utilizará innumerables veces en sus propios programas. Has aprendido sobre…
- Creando tus primeros programas en Python;
- Funciones;
- Insectos;
- variables;
- Comentarios;
- Pseudocódigo;
- Instrumentos de cuerda;
- Parámetros;
- Cadenas formateadas;
- Números enteros;
- Principios de legibilidad;
- Flotadores;
- Creando tus propias funciones; y
- Valores de retorno.