Introducción
En este laboratorio (lab), exploraremos cómo verificar si un número es cero en Python. El laboratorio cubre conceptos fundamentales del cero, comparación directa con cero y manejo de la precisión de punto flotante.
Comenzaremos creando un script de Python para demostrar las propiedades básicas del cero, incluyendo suma, resta y multiplicación. También exploraremos el comportamiento de la división por cero, que genera un error en Python.
Explora el concepto de cero
En este paso, exploraremos el concepto de cero en Python. El cero es un valor numérico fundamental que representa la ausencia de cantidad. Comprender cómo se comporta el cero en diferentes contextos es crucial para escribir código Python preciso y confiable.
Primero, creemos un sencillo script de Python para demostrar las propiedades básicas del cero.
Abra el editor de VS Code en el entorno de LabEx.
Cree un nuevo archivo llamado
zero_example.pyen el directorio~/project.~/project/zero_example.pyAgregue el siguiente código a
zero_example.py:## Assigning zero to a variable x = 0 ## Printing the value of the variable print("The value of x is:", x) ## Adding a number to zero y = x + 5 print("x + 5 =", y) ## Subtracting a number from zero z = x - 3 print("x - 3 =", z) ## Multiplying a number by zero result = 10 * x print("10 * x =", result)Este script demuestra operaciones aritméticas básicas que involucran el cero.
Guarde el archivo.
Ejecute el script utilizando el comando
pythonen la terminal:python zero_example.pyDebería ver la siguiente salida:
The value of x is: 0 x + 5 = 5 x - 3 = -3 10 * x = 0Como puede ver, sumar o restar un número al cero da como resultado ese número (o su negativo), y multiplicar cualquier número por cero da como resultado cero.
Ahora, exploremos la división por cero. La división por cero está indefinida en matemáticas y generará un error en Python.
Modifique el archivo
zero_example.pypara incluir una división por cero:## Assigning zero to a variable x = 0 ## Printing the value of the variable print("The value of x is:", x) ## Adding a number to zero y = x + 5 print("x + 5 =", y) ## Subtracting a number from zero z = x - 3 print("x - 3 =", z) ## Multiplying a number by zero result = 10 * x print("10 * x =", result) ## Division by zero (will cause an error) try: division_result = 10 / x print("10 / x =", division_result) except ZeroDivisionError as e: print("Error:", e)Utilizamos un bloque
try-exceptpara manejar el posibleZeroDivisionError.Guarde el archivo.
Ejecute el script nuevamente:
python zero_example.pyDebería ver la siguiente salida:
The value of x is: 0 x + 5 = 5 x - 3 = -3 10 * x = 0 Error: division by zeroEl script ahora captura el
ZeroDivisionErrory muestra un mensaje de error informativo en lugar de fallar.
Comprender cómo manejar el cero en su código es esencial para prevenir errores inesperados y garantizar que sus programas se comporten correctamente.
Comparar directamente con cero
En este paso, aprenderemos cómo comparar números directamente con cero en Python. La comparación directa es una forma sencilla de verificar si un número es igual a, mayor que o menor que cero. Esta es una operación común en muchas tareas de programación, como validar entradas, controlar el flujo del programa e implementar funciones matemáticas.
Creemos un script de Python para demostrar la comparación directa con cero.
Abra el editor de VS Code en el entorno de LabEx.
Cree un nuevo archivo llamado
compare_zero.pyen el directorio~/project.~/project/compare_zero.pyAgregue el siguiente código a
compare_zero.py:## Assigning a number to a variable number = 5 ## Comparing the number with zero if number > 0: print(number, "is greater than zero") elif number < 0: print(number, "is less than zero") else: print(number, "is equal to zero") ## Changing the value of the number to zero number = 0 ## Comparing the number with zero again if number > 0: print(number, "is greater than zero") elif number < 0: print(number, "is less than zero") else: print(number, "is equal to zero") ## Changing the value of the number to a negative number number = -3 ## Comparing the number with zero one more time if number > 0: print(number, "is greater than zero") elif number < 0: print(number, "is less than zero") else: print(number, "is equal to zero")Este script compara diferentes números con cero utilizando declaraciones
if,elifyelse.Guarde el archivo.
Ejecute el script utilizando el comando
pythonen la terminal:python compare_zero.pyDebería ver la siguiente salida:
5 is greater than zero 0 is equal to zero -3 is less than zeroEl script identifica correctamente si el número es mayor que, menor que o igual a cero.
La comparación directa con cero es simple y eficiente para valores enteros. Sin embargo, cuando se trabaja con números de punto flotante, se debe tener precaución debido a posibles problemas de precisión, que exploraremos en el siguiente paso.
Manejar la precisión de punto flotante
En este paso, discutiremos cómo manejar la precisión de punto flotante cuando se comparan números de punto flotante con cero. Debido a la forma en que se representan los números de punto flotante en las computadoras, a menudo están sujetos a pequeños errores de redondeo. Esto puede llevar a resultados inesperados cuando se los compara directamente con cero.
Por ejemplo, un cálculo que teóricamente debería dar como resultado cero en realidad podría producir un número no nulo muy pequeño como 1e-16 (0.0000000000000001). Comparar directamente este número con cero utilizando == devolverá False, lo cual podría no ser el resultado deseado.
Para manejar esto, normalmente se utiliza un valor de tolerancia (también conocido como épsilon) para verificar si un número de punto flotante está "lo suficientemente cerca" de cero.
Creemos un script de Python para demostrar esto.
Abra el editor de VS Code en el entorno de LabEx.
Cree un nuevo archivo llamado
float_precision.pyen el directorio~/project.~/project/float_precision.pyAgregue el siguiente código a
float_precision.py:## Import the math module import math ## Define a tolerance value (epsilon) tolerance = 1e-9 ## A small value like 0.000000001 ## A floating-point number that is very close to zero due to calculation number = 1e-10 ## Direct comparison with zero (may fail) if number == 0: print("Direct comparison: number is zero") else: print("Direct comparison: number is not zero") ## Using tolerance to compare with zero if math.isclose(number, 0, abs_tol=tolerance): print("Comparison with tolerance: number is close to zero") else: print("Comparison with tolerance: number is not close to zero") ## Another example with a slightly larger number number = 1e-7 ## Direct comparison with zero (will fail) if number == 0: print("Direct comparison: number is zero") else: print("Direct comparison: number is not zero") ## Using tolerance to compare with zero if math.isclose(number, 0, abs_tol=tolerance): print("Comparison with tolerance: number is close to zero") else: print("Comparison with tolerance: number is not close to zero")Este script demuestra cómo usar la función
math.isclose()con un valor de tolerancia para comparar números de punto flotante con cero.Guarde el archivo.
Ejecute el script utilizando el comando
pythonen la terminal:python float_precision.pyDebería ver la siguiente salida:
Direct comparison: number is not zero Comparison with tolerance: number is close to zero Direct comparison: number is not zero Comparison with tolerance: number is not close to zeroComo puede ver, la comparación directa falla porque el número no es exactamente cero. Sin embargo, cuando se utiliza un valor de tolerancia con
math.isclose(), la comparación identifica correctamente que el número está cerca de cero.
La función math.isclose() verifica si dos valores de punto flotante están cerca el uno del otro dentro de una tolerancia especificada. El argumento abs_tol especifica la tolerancia absoluta. Si la diferencia absoluta entre los dos números es menor o igual a la tolerancia, la función devuelve True.
Al utilizar un valor de tolerancia, se pueden evitar los problemas causados por la precisión de punto flotante y garantizar que las comparaciones con cero sean precisas y confiables.
Resumen
En este laboratorio, comenzamos explorando el concepto fundamental de cero en Python, comprendiendo su comportamiento en operaciones aritméticas básicas. Creamos un script zero_example.py para demostrar que sumar o restar un número a cero da como resultado ese número (o su negativo), y multiplicar cualquier número por cero da como resultado cero.
Se ejecutó el script para observar estas propiedades, lo que sentó las bases para una mayor exploración del cero en Python, incluyendo las implicaciones de la división por cero.



