validar try sirve sintaxis que por para invalid imprimir excepciones errores error ejemplos comunes python

python - try - ¿Por qué obtengo TypeError: no puedo multiplicar secuencia por non-int de tipo ''float''?



python excepciones ejemplos (3)

Estoy escribiendo para obtener un monto de venta (por entrada) para multiplicarlo por un impuesto de ventas definido (0.08) y luego imprimir el monto total (impuesto a las ventas multiplicado por el monto de la venta).

Me encuentro con este error. ¿Alguien sabe qué podría estar mal o tiene alguna sugerencia?

salesAmount = raw_input (["Insert sale amount here /n"]) [''Insert sale amount here /n'']20.99 >>> salesTax = 0.08 >>> totalAmount = salesAmount * salesTax Traceback (most recent call last): File "<pyshell#57>", line 1, in <module> totalAmount = salesAmount * salesTax TypeError: can''t multiply sequence by non-int of type ''float''


El problema es que salesAmount se está configurando en una cadena. Si ingresa la variable en el intérprete de Python y pulsa enter, verá el valor ingresado rodeado de comillas. Por ejemplo, si ingresó 56.95, verá:

>>> sales_amount = raw_input("[Insert sale amount]: ") [Insert sale amount]: 56.95 >>> sales_amount ''56.95''

Querrá convertir la cadena en un flotante antes de multiplicarlo por el impuesto a las ventas. Lo dejo para que lo descubras. ¡Buena suerte!


Tal vez esto ayude a otros en el futuro. Tuve el mismo error al intentar multiplicar un flotador y una lista de carrozas. El caso es que todos aquí hablaron de multiplicar un flotador con una cadena (pero aquí todos mis elementos fueron flotantes), así que el problema fue utilizar el operador * en una lista.

Por ejemplo:

import math import numpy as np alpha = 0.2 beta=1-alpha C = (-math.log(1-beta))/alpha coff = [0.0,0.01,0.0,0.35,0.98,0.001,0.0] coff *= C

El error:

coff *= C TypeError: can''t multiply sequence by non-int of type ''float''

La solución: convierta la lista a numpy array:

coff = np.asarray(coff) * C


raw_input devuelve una cadena (una secuencia de caracteres). En Python, multiplicar una cuerda y un flotador no tiene un significado definido (mientras que multiplicar una cuerda y un entero tiene un significado: "AB" * 3 es "ABABAB" , ¿cuánto es "L" * 3.14 ? No responda "LLL|" ). Necesita analizar la cadena a un valor numérico.

Es posible que desee intentar:

salesAmount = float(raw_input("Insert sale amount here/n"))