Javascript Math Pow versus vermenigvuldiging

| | | | | | |

Hoewel strings kunnen worden vermenigvuldigd met gehele getallen om een herhalende reeks te creëren, kunnen strings niet worden vermenigvuldigd met getallen met drijvende komma. Anders retourneert Python een fout.

In dit artikel gaan we het hebben over de fout " typeerror: kan de reeks niet vermenigvuldigen met niet-int van het type `float`" en waarom deze wordt geactiveerd . We gaan een voorbeeldscenario onderzoeken waarin deze fout aanwezig is, zodat we deze kunnen oplossen.

typefout: kan de reeks niet vermenigvuldigen met niet-geheel getal van het type `float`

Laten we een poging wagen bekijk onze foutmelding en kijk wat het ons vertelt:

Onze fout is een TypeError. Dit betekent dat we een bewerking proberen uit te voeren op een waarde waarvan het gegevenstype deze bewerking niet ondersteunt. Als u bijvoorbeeld een geheel getal en een tekenreeks probeert samen te voegen, wordt een typefout geretourneerd.

De fout vertelt ons dat we een reeks vermenigvuldigen, ook wel string , van een floating point getal . Dit wordt niet ondersteund door Python.

Er zijn twee soorten getallen in Python: gehele getallen en getallen met drijvende komma. Gehele getallen zijn gehele getallen, terwijl getallen met drijvende komma decimaal zijn.

Strings kunnen worden vermenigvuldigd met gehele getallen. Beschouw dit voorbeeld:

Onze code retourneert: SconeSconeScone. Wanneer u een tekenreeks vermenigvuldigt met een geheel getal , wordt een herhalende reeks van die tekenreeks gemaakt.

Strings kunnen niet worden vermenigvuldigd met drijvende-kommagetallen. Als je onze "scone"-reeks met 3,3 zou proberen te vermenigvuldigen, wat zou Python dan doen? U kunt geen 0.3 van een string hebben. Vervolgens wordt een fout geretourneerd.

Een voorbeeldscenario

Deze fout wordt vaak aangetroffen bij het gebruik van input ()-declaraties . Laten we eens kijken naar een programma dat 5% korting berekent op een aankoop in een winkel.

We hebben verklaarde een variabele genaamd een waarde die opslaat hoeveel de klant aan een aankoop heeft uitgegeven. Deze waarde wordt van de gebruiker verzameld met behulp van de methode input () .

Vervolgens moet ik een variabele met de naam korting declareren. Hiermee wordt de 5% korting opgeslagen die we op aankopen toepassen als een decimaal getal. Vervolgens berekenen we het kortingspercentage door "waarde" en "korting" met elkaar te vermenigvuldigen. Vervolgens trekken we dat getal af van de totale kosten van het product.

We gebruiken round () methode om de waarde van "final_cost" af te ronden op twee decimalen. Vervolgens printen we deze waarde naar de console.

Laten we probeer onze code uit te voeren:

Oh nee. Er was een fout geretourneerd. Laten we deze fout oplossen.

De fout " Typefout: kan de reeks voor niet-geheel getal van het type `float` niet vermenigvuldigen " wordt veroorzaakt door de vermenigvuldiging van een tekenreeks en een getal met drijvende komma.

Deze fout deed zich voor in ons vorige programma omdat in put () een tekenreeks retourneert. Dit betekent dat zelfs als we een getal in ons programma invoegen, het als een tekenreeks wordt opgeslagen.

Om dit probleem op te lossen, kunnen we de waarde die de gebruiker invoert in het programma omzetten in een variabel puntwaardegetal. We kunnen dit doen met behulp van de float () methode :

De vlotter () methode wordt omgeven door de methode input (). De methode float () converteert de tekenreekswaarde die wordt geretourneerd door invoer () naar een getal met drijvende komma. Hierdoor kunnen we de "waarde" en de "korting" vermenigvuldigen omdat het twee getallen zijn.

Laten we proberen onze code opnieuw uit te voeren:

Onze code werkt! Ons programma vertelt ons dat een korting van 5% op de waarde van een aankoop van $ 12,99 ervoor zorgt dat het eindproduct $ 12,34 kost.



Conclusie

Strings kunnen niet worden vermenigvuldigd met drijvende-kommagetallen. Dit komt omdat het vermenigvuldigen van strings met hele getallen een herhalende reeks van de tekenreeks. Dit is niet mogelijk als u een drijvende komma gebruikt, omdat hierdoor een tekenreeks wordt vermenigvuldigd met decimale waarden.

Om " typefout op te lossen: kan de reeks niet vermenigvuldigen voor niet-int van het type `float `" fout , zorg ervoor dat alle tekenreekswaarden ‚Äã‚Äãworden geconverteerd naar float met drijvende komma als ze worden gebruikt als onderdeel van een berekening.

U bent nu klaar om deze fout op te lossen als Python-expert !

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method