Gå til innhold

[Python] Hjelp til nybegynner, enkel kalkulator


Anbefalte innlegg

Hei,

 

Driver og tester ut python etter å ha prøvd programmering i java for noen dager siden. Leste her på forumet bla. at python virket som et bedre nybegynner-språk. Til saken; Jeg har prøvd å lage en veldig enkel kalkulator med to regneoprasjoner (addisjon og subtraksjon) for å bli kjent med python, men har møtt på et problem. Kopierer inn programmet her;

import time

print "Kalkulator versjon 1."
time.sleep(2)
print ("Vil du addere eller subtrahere?")
print ("Skriv add for aa addere, og sub for aa subtrahere.")
metode = raw_input("add eller sub?")

if metode == add:
   fnum = input ("Skriv ditt foorste nummer : ")
   snum = input ("Skriv ditt andre nummer : ")
   print ("Vennligst vent...")
   time.sleep(1)
   print "."
   time.sleep(1)
   print "."
   answer = fnum + snum
   print answer
   time.sleep(3)
if metode == sub:
   fnum2 = input ("Skriv ditt foorste nummer : ")
   snum2 = input ("Skriv ditt andre nummer : ")
   print ("Vennligst vent")
   time.sleep(1)
   print "."
   time.sleep(1)
   print "."
   answer2 = fnum2 - snum2
   print answer2
   time.sleep(3)
else:
   print ("Proov på nytt")

Problemet: Det oppstår en feil når brukeren skal taste inn valget mellom addisjon og subtraksjon, og jeg lurer på hvordan man skal skrive denne funksjonen skikkelig? Altså; Brukeren skriver f.eks "add" i kommandolinjen, og dermed går datamaskinen til "if metode == add". Jeg prøvde å erstatte dette med input () istedenfor, og bruke tall (1 eller 2) for å bestemme regneoprasjon, men lurer altså på; Hva skal man altså skrive her for og kunne bruke tekst?

 

Og enda en ting til: Er det en syntaks jeg kan bruke for at ikke kommandolinje-boksen skal lukke seg umiddelbart etter at svaret er avgitt? (Bortsett frå time.sleep)

 

Om dere legger merke til uvaner i koden min er jeg glad for at dere gjør meg oppmerksom på det :) (Jeg brukte time.sleep og ".", "vennligst vent" osv. for at det skulle se litt gammelt ut :p )

 

Mvh. Pyls

Endret av Pyls
Lenke til kommentar
Videoannonse
Annonse

Tjaa du har nok litt mer lesing og gjøre ;)

Skrive alt på engelsk er en god vane og venne seg til når du programmerer.

time dropp den nå,har ikke mye for i denne koden

>>> metode = raw_input("add eller sub?")
add eller sub?add
>>> type(metode)
<type 'str'>
>>> if metode == add:
   fnum = input ("Skriv ditt foorste nummer : ")



Traceback (most recent call last):
 File "<pyshell#3>", line 1, in <module>
   if metode == add:
NameError: name 'add' is not defined

>>> #So this dont work add need to be defind or be a string('add')
>>> #raw_input return a string then you need to compare against string
>>> if metode == 'add':
   fnum = input ("Skriv ditt foorste nummer : ")

Skriv ditt foorste nummer : 5
>>>

Du kan se litt på float,les litt om datatyper i python.

Skriv ditt foorste nummer : 3.5
>>> fnum1 = float(raw_input("Skriv ditt foorste nummer : "))
Skriv ditt foorste nummer : 6.45
>>> fnum + fnum1
9.95
>>> #float so you can add decimal numbers

else:
   print ("Proov på nytt")

Vil aldrig skje for her slutter det.

Loop,lage funksjoner kan være stikkord går ikke så mye mere inn på det nå.

 

Kan vise en funksjon

def add_number():
   fnum = float(raw_input("Skriv ditt foorste nummer : "))
   fnum1 = float(raw_input("Skriv ditt foorste nummer : "))
   my_sum = fnum + fnum1
   print my_sum  #Or "return my_sum" then you can mix many function together

add_number()

Python har mange stryker,avslutter med noe du kan lure litt på.

>>> sum([float(raw_input('Enter number to add: ')) for i in range(2)])
Enter number to add: 5.5
Enter number to add: 3.75
9.25

>>> #eval can be fun,but can be unsafe to use.
>>> eval('2+4**5')
1026
>>> eval('3.5/5+4**5')
1024.7
>>> 

Endret av SNIPPSAT
Lenke til kommentar

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...