Gå til innhold

Anbefalte innlegg

Skrevet

Hei !

 

Jeg lager en liten kalkulator som gjør om fra pounds til kilo. Matten er jo slik at 1 pound = 0,4535 kilo. Jeg får opp en feilmelding om float. Noen som vet hvordan jeg kan bruke nummer med decimaler i python ?

 

Takker for alle svar :)

Videoannonse
Annonse
Skrevet

Hva sier feilmeldingen? Pass på at du konverterer alle verdiene du jobber med til float før du bruker dem. Det oppnår du ved float(variabel).

Skrevet

det skal fungere helt fint, er du sikker på at variabelen din P er numerisk? Ut i fra feilmeldingen ser det ut som P er en tekst-streng (kanskje fordi du leste input fra brukeren?)

 

I så fall prøv: k = float(p) * 0.453

Skrevet (endret)

aldri bruk input(), da det åpner opp for mye som kan skje som du ikke ønsker. raw_input er det du skal bruke, og så kaster du det heller opp til float om du forventer desimaltall.

 

Noe slikt som dette bruker jeg for å lese input fra brukeren:

 

while 1:
  user_input = raw_input("No: ")
   try:
	   number = float(user_input)
	   break # stop while-loop
   except ValueError:
	   print "that was no number: " + user_input
	   # implicite remain in while loop

Endret av etse
  • Liker 1
Skrevet (endret)
aldri bruk input(), da det åpner opp for mye som kan skje som du ikke ønsker

Grunn til dette er at input() bruker eval() for og konvertere til integer.

Et eksempel viss jeg gir kommadoen som input eval('__import__("os").remove(somefile)') til input().

Ville den slettet somefile viss navet var korrekt.

 

Nå er det vanlig og skrive raw_input() som dette for integer/float return int(raw_input('')) eller float(raw_input('')).

På denne måten trenger man aldrig og bruke input() i python 2.x,

 

Python 3.x har bare input(),denne er ikke likt input() i python 2.x.

input() i python 3 returnerer string,så den er helt like raw_input i python 2.x.

Endret av SNIPPSAT
  • Liker 1

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...