flotador de rango de Python

Funciones y métodos de Python

Python tiene dos tipos de datos que representan números: flotantes y enteros. Estos tipos de datos tienen propiedades distintas.

Si intenta utilizar un flotante con una función que solo admite números enteros, como la función range () , encontrará el & ldquo; TypeError: & lsquo; flotar & rsquo; el objeto no se puede interpretar como un número entero & rdquo; error.

En esta guía explicamos qué significa este mensaje de error y qué lo causa. Veremos un ejemplo de este error para que pueda averiguar cómo resolverlo en su programa.




TypeError: & lsquo; float & rsquo; el objeto no se puede interpretar como un número entero

Los números de coma flotante son valores que pueden contener un punto decimal. Los enteros son números enteros. Es común en la programación que estos dos tipos de datos sean distintos.

En la programación de Python, algunas funciones como range () solo puede interpretar valores enteros. Esto se debe a que no están capacitados para convertir automáticamente valores de punto flotante en un número entero.

Este error suele aparecer cuando se utiliza range () con un punto flotante number para crear una lista de números en un rango determinado.

Python no puede procesar esto porque Python no puede crear una lista de números entre un número entero y un número decimal. El intérprete de Python no sabría cómo incrementar cada número en la lista si este comportamiento estuviera permitido.




Un escenario de ejemplo

Vamos a crear un programa que calcule las ventas totales de quesos en una quesería en los últimos tres meses. Le preguntaremos al usuario para cuántos quesos quiere calcular las ventas totales. Luego, realizaremos el cálculo.

El 81% de los participantes afirmaron que se sentían más seguros acerca de sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asóciese a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Comience por definir un lista de diccionarios con información sobre ventas de queso:

 quesos = [{"name": "Edam", "sales": [200, 179, 210]}, {"name": "Brie", "sales": [142, 133, 135]}, {"name": "English Cheddar", "sales": [220, 239, 257]}] 

A continuación, le preguntamos al usuario cuántas cifras de ventas totales desea calcular:

 total_sales = float (input ("¿Cuántas cifras de ventas totales desea calcular?" )) 

Convertimos el valor que el usuario inserta en un punto flotante. Esto se debe a que el método input () devuelve una cadena y no podemos usar una cadena en una instrucción range () .


A continuación, iteramos sobre los primeros quesos de nuestra lista en función de la cantidad de cifras que el vendedor de quesos quiere calcular. Hacemos esto usando un for loop y una instrucción range () :

 para c in range (0, total_sales): sold = sum (quesos [c] ["ventas"]) print ("{} se ha vendido {} veces durante los últimos tres meses.". formato (quesos [c] [ "nombre"], vendido)) 

Nuestro código utiliza el método sum () para calcular el número total de quesos vendidos en las listas de & ldquo; ventas & rdquo; de nuestros diccionarios.

Imprima cuántas veces se ha vendido cada queso a la consola. Nuestro ciclo se ejecuta un número de veces igual al número de cifras de ventas Cheesemonger ha indicado que quieren calcular.

Ejecute nuestro código y vea qué Ocurre lo siguiente:

Nuestro código nos pregunta cuántas cifras queremos calcular. Después de enviar un número, nuestro código deja de funcionar.




La solución

El problema en nuestro código es que estamos intentando crear un rango usando un número de punto flotante. En nuestro código, convertimos & ldquo; total_sales & rdquo; a un flotador. Esto se debe a que necesitamos un número para crear un rango usando la declaración range () .

La declaración range () solo acepta enteros . Esto significa que no debemos convertir total_sales en un float. En su lugar, deberíamos convertir total_sales a un número entero.

Para resolver este problema, cambie la línea de código donde le preguntamos al usuario cuántas cifras de ventas quiere calcular:

 total_sales = int (input ("¿Cuántas cifras de ventas totales desea calcular?")) 

Ahora convertimos total_sales a un número entero en lugar de un valor de punto flotante. Realizamos esta conversión utilizando el método int () .


Ejecutemos nuestro código:

 ¿Cuántas cifras de ventas totales? ¿Quieres calcular? 2 Edam se vendió 589 veces en los últimos tres meses. Brie se vendió 410 veces en los últimos tres meses. 

Nuestro código calcula con éxito cuántos de los se vendieron los dos primeros quesos de nuestra lista.




Conclusión

El error & ldquo; TypeError: & lsquo; float & rsquo; no se puede interpretar como un número entero & rdquo; aparece cuando intenta utilizar un número de punto flotante en un lugar donde solo se acepta un número entero.

Este error es común cuando intenta utilizar un número de punto flotante en un range () declaración. Para resolver este error, asegúrese de utilizar valores enteros en una declaración range () , o cualquier otra declaración incorporada que parezca estar causando th e error.

¡Ahora tiene las habilidades y los conocimientos necesarios para resolver este error como un profesional!





flotador de rango de Python: StackOverflow Questions

Tutorials