Introducción
Esta sección aborda la creación de tu primer programa, la ejecución del intérprete y algunos conceptos básicos de depuración.
This tutorial is from open-source community. Access the source code
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
Esta sección aborda la creación de tu primer programa, la ejecución del intérprete y algunos conceptos básicos de depuración.
Los programas de Python siempre se ejecutan dentro de un intérprete.
El intérprete es una aplicación "basada en consola" que normalmente se ejecuta desde una shell de comandos.
python3
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Los programadores expertos por lo general no tienen problemas al usar el intérprete de esta manera, pero no es tan amigable para los principiantes. Es posible que estés usando un entorno que proporciona una interfaz diferente para Python. Eso está bien, pero aprender a ejecutar la terminal de Python sigue siendo una habilidad útil de conocer.
Cuando se inicia Python, se obtiene un modo interactivo donde se puede experimentar.
Si se empieza a escribir declaraciones, se ejecutarán inmediatamente. No hay un ciclo de edición/compilación/ejecución/depuración.
>>> print('hello world')
hello world
>>> 37*42
1554
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>>
Este llamado read-eval-print-loop (o REPL) es muy útil para la depuración y la exploración.
PARA DEJAR DE HACER: Si no se puede entender cómo interactuar con Python, detenga lo que está haciendo y averigüe cómo hacerlo. Si se está usando un IDE, puede estar oculto detrás de una opción de menú u otra ventana. Muchas partes de este curso asumen que se puede interactuar con el intérprete.
Echemos un vistazo más detenido a los elementos del REPL:
>>>
es el indicador del intérprete para comenzar una nueva declaración....
es el indicador del intérprete para continuar una declaración. Presione Enter en una línea en blanco para terminar de escribir y ejecutar lo que ha introducido.El indicador ...
puede o no aparecer según el entorno. Para este curso, se muestra como espacios en blanco para facilitar la copia/pega de los ejemplos de código.
El subrayado _
guarda el último resultado.
>>> 37 * 42
1554
>>> _ * 2
3108
>>> _ + 50
3158
>>>
esto solo es cierto en el modo interactivo. Nunca se utiliza _
en un programa.
Los programas se guardan en archivos con extensión .py
.
## hello.py
print('hello world')
Puedes crear un archivo hello.py
en el directorio /home/labex/project
utilizando tu editor de texto favorito.
Para ejecutar un programa, ejecútalo en la terminal con el comando python
. Por ejemplo, en Unix de línea de comandos:
$ python hello.py
hello world
bash %
O desde la shell de Windows:
C:\SomeFolder>hello.py
hello world
C:\SomeFolder>c:\python36\python hello.py
hello world
Nota: En Windows, es posible que necesites especificar la ruta completa al intérprete de Python, como c:\python36\python
. Sin embargo, si Python se instala de la manera habitual, es posible que solo puedas escribir el nombre del programa, como hello.py
.
Vamos a resolver el siguiente problema:
Una mañana, sales y dejas un billete de dólar en la acera del Sears Tower en Chicago. A partir de entonces, cada día sales y dobles el número de billetes. ¿Cuánto tiempo tarda en que la pila de billetes supere la altura de la torre?
A continuación, se presenta una solución para crear un archivo sears.py
en el directorio /home/labex/project
:
## sears.py
bill_thickness = 0.11 * 0.001 ## Metros (0.11 mm)
sears_height = 442 ## Altura (metros)
num_bills = 1
day = 1
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Number of days', day)
print('Number of bills', num_bills)
print('Final height', num_bills * bill_thickness)
Cuando lo ejecutas, obtienes la siguiente salida:
$ python3 sears.py
1 1 0.00011
2 2 0.00022
3 4 0.00044
4 8 0.00088
5 16 0.00176
6 32 0.00352
...
21 1048576 115.34336
22 2097152 230.68672
Number of days 23
Number of bills 4194304
Final height 461.37344
Usando este programa como guía, puedes aprender una serie de conceptos básicos importantes sobre Python.
Un programa de Python es una secuencia de declaraciones:
a = 3 + 4
b = a * 2
print(b)
Cada declaración termina con un salto de línea. Las declaraciones se ejecutan una después de la otra hasta que el control llega al final del archivo.
Los comentarios son texto que no se ejecutará.
a = 3 + 4
## This is a comment
b = a * 2
print(b)
Los comentarios se marcan con #
y se extienden hasta el final de la línea.
Una variable es un nombre para un valor. Puedes usar letras (en minúsculas y mayúsculas) del a a la z. Además del carácter subrayado _
. Los números también pueden ser parte del nombre de una variable, excepto como primer carácter.
height = 442 ## válido
_height = 442 ## válido
height2 = 442 ## válido
2height = 442 ## inválido
Las variables no necesitan ser declaradas con el tipo del valor. El tipo está asociado con el valor del lado derecho, no con el nombre de la variable.
height = 442 ## Un entero
height = 442.0 ## Punto flotante
height = 'Really tall' ## Una cadena
Python es de tipado dinámico. El "tipo" percibido de una variable puede cambiar a medida que un programa se ejecuta, dependiendo del valor actual asignado a ella.
Python es sensible a mayúsculas y minúsculas. Las letras mayúsculas y minúsculas se consideran letras diferentes. Todas estas son variables diferentes:
name = 'Jake'
Name = 'Elwood'
NAME = 'Guido'
Las declaraciones de lenguaje siempre son en minúsculas.
while x < 0: ## OK
WHILE x < 0: ## ERROR
La instrucción while
ejecuta un bucle.
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Number of days', day)
Las instrucciones indentadas debajo de while
se ejecutarán siempre que la expresión después de while
sea true
.
La sangría se utiliza para denotar grupos de instrucciones que van juntas. Considere el ejemplo anterior:
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
print('Number of days', day)
La sangría agrupa las siguientes instrucciones juntas como las operaciones que se repiten:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1
num_bills = num_bills * 2
Debido a que la instrucción print()
al final no está sangrada, no pertenece al bucle. La línea en blanco es solo para la legibilidad. No afecta la ejecución.
La única exigencia de Python es que la sangría dentro del mismo bloque sea consistente. Por ejemplo, esto es un error:
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = day + 1 ## ERROR
num_bills = num_bills * 2
La instrucción if
se utiliza para ejecutar una condición:
if a > b:
print('Computer says no')
else:
print('Computer says yes')
Puede comprobar múltiples condiciones agregando comprobaciones adicionales usando elif
.
if a > b:
print('Computer says no')
elif a == b:
print('Computer says yes')
else:
print('Computer says maybe')
La función print
produce una sola línea de texto con los valores pasados.
print('Hello world!') ## Imprime el texto 'Hello world!'
Puedes usar variables. El texto impreso será el valor de la variable, no el nombre.
x = 100
print(x) ## Imprime el texto '100'
Si pasas más de un valor a print
, se separan por espacios.
name = 'Jake'
print('My name is', name) ## Imprime el texto 'My name is Jake'
print()
siempre coloca un salto de línea al final.
print('Hello')
print('My name is', 'Jake')
Esto imprime:
Hello
My name is Jake
El salto de línea extra se puede suprimir:
print('Hello', end=' ')
print('My name is', 'Jake')
Este código ahora imprimirá:
Hello My name is Jake
Para leer una línea de entrada de usuario tecleada, utiliza la función input()
:
name = input('Enter your name:')
print('Your name is', name)
input
imprime un mensaje de solicitud al usuario y devuelve su respuesta. Esto es útil para pequeños programas, ejercicios de aprendizaje o depuración simple. No se utiliza ampliamente en programas reales.
A veces necesitas especificar un bloque de código vacío. La palabra clave pass
se utiliza para ello.
if a > b:
pass
else:
print('Computer says false')
Esta también se llama una declaración "no-op". No hace nada. Sirve como un marcador de posición para declaraciones, posiblemente para agregarlas más adelante.
Este es el primer conjunto de ejercicios donde necesitas crear archivos de Python y ejecutarlos. A partir de este momento, se asume que estás editando archivos en el directorio ~/project/
. Para ayudarte a localizar el lugar adecuado, se han creado una serie de archivos de inicio vacíos con los nombres de archivo adecuados. Busca el archivo bounce.py
que se utiliza en el primer ejercicio.
Una pelota de goma se deja caer desde una altura de 100 metros y cada vez que golpea el suelo, rebota hasta 3/5 de la altura desde la que cayó. Escribe un programa bounce.py
que imprima una tabla mostrando la altura de las primeras 10 rebotes.
Aquí está una solución:
## bounce.py
height = 100
bounce = 1
while bounce <= 10:
height = height * (3 / 5)
print(bounce, round(height, 4))
bounce += 1
Tu programa debe crear una tabla que se vea más o menos así:
1 60.0
2 36.0
3 21.599999999999998
4 12.959999999999999
5 7.775999999999999
6 4.6655999999999995
7 2.7993599999999996
8 1.6796159999999998
9 1.0077695999999998
10 0.6046617599999998
Nota: Puedes limpiar un poco la salida si utilizas la función round(). Intenta usarlo para redondear la salida a 4 dígitos.
1 60.0
2 36.0
3 21.6
4 12.96
5 7.776
6 4.6656
7 2.7994
8 1.6796
9 1.0078
10 0.6047
El siguiente fragmento de código contiene código del problema de la torre Sears. También tiene un error en él.
## sears.py
bill_thickness = 0.11 * 0.001 ## Metros (0.11 mm)
sears_height = 442 ## Altura (metros)
num_bills = 1
day = 1
while num_bills * bill_thickness < sears_height:
print(day, num_bills, num_bills * bill_thickness)
day = days + 1
num_bills = num_bills * 2
print('Number of days', day)
print('Number of bills', num_bills)
print('Final height', num_bills * bill_thickness)
Copie y pegue el código que aparece arriba en un nuevo programa llamado sears.py
. Cuando ejecute el código, obtendrá un mensaje de error que hará que el programa se detenga así:
Traceback (most recent call last):
File "sears.py", line 10, in <module>
day = days + 1
NameError: name 'days' is not defined
Leer los mensajes de error es una parte importante del código de Python. Si su programa se detiene, la última línea del mensaje de seguimiento es la razón real por la que el programa se detuvo. Por encima de eso, debería ver un fragmento de código fuente y luego un nombre de archivo identificador y un número de línea.
¡Felicidades! Has completado el laboratorio de A First Program. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.