Gå til innhold

Hvordan få programmet til å starte forfra igjen?


Anbefalte innlegg

Jeg har laget meg ett lite program som tar ett tall og trekker fra momsen og viser hva tallet er uten moms og hvor mye momsen utgjør.

medmva = int(raw_input("Skriv tallet med moms:")) 
x = medmva/1.25 
print "Uten moms:"
print x 
print "______________________"
y = medmva-x 
print "momsen:"
print y
print "______________________"

Ikke mobb, det er mitt første program! :p

 

Hvis jeg trykker på fila jeg lagret så kommer det opp en rute også skiver jeg inn tallet også forsvinner ruta igjen. Jeg vet hvordan jeg kan få den til å ikke forsvinne, men jeg vil ha det slik at nå den viser svaret så starter det automatisk forfra igjen så jeg kan skrive inn ett nytt tall.

Eller at du får spørsmål f eks: trykk enter for å skriver nytt tall eller x for å avslutte.

 

Er det mulig?

Lenke til kommentar
Videoannonse
Annonse

Legg det i en loop, og kjør break for å avslutte loopen, ev. continue for å fortsette til neste iterasjon.

#!/usr/bin/env python
# -*- encoding: iso-8859-15 -*-
#variabel for skille av uten moms vs moms 
sep = '\n______________________\n'

#kjør loop, som vi kan kvele eller fortsette, basert på brukerdata
while 1:
   withVac = str(raw_input('Skriv tallet med moms eller X for å avslutte:')).strip().lower()
   
   if withVac == 'x':     
       break
   elif len(withVac) == 0 :
       #fortsett, ingenting tasta inn
       continue   
   else:
       #lag float viss string inneholder bare tall, ellers fortsett
       try:
           withVac = float(withVac)
       except ValueError:
           #inneholder ikke-numeriske tegn, fortsett
           continue #ev break for å avslutte
       
   noVac = float(withVac)/1.25
   vac = withVac-noVac 
   print 'Uten moms: %s%smomsen: %s%s' % (noVac, sep, vac, sep) 

Lenke til kommentar

Jeg har sett litt nermere på det nå og jeg forstår mesteparten nå, men det er noen ord og slik som står der jeg ikke forstår helt. f.eks strip().lower(), og elif...

 

Har aldri programert noe før og det var i går jeg begynte å lese noen guider på nettet, så jeg kan ikke akkurat så mye enda, men jeg forstår sikkert mer når jeg har lest litt mer.

Lenke til kommentar

.strip() fjerner whitespace (fks ' x ' blir til 'x') mens lower() gjør teksten som blir hente inn til lowercase. Alstså vil print 'Hei, jeg heter Bjørn'.lower() gi «hei, jeg heter bjørn».

 

en if-test består av if, 0 eller flere elif (=else if i andre språk, «viss ikke») og 0 eller 1 else (viss ikke). så:

 
if viss innput fra bruker er lik 'x':    
      stopp loop, avslutt
  elif lengde på det bruker er tasta inn er lik 0 :
      #fortsett, ingenting tasta inn
       ingenting annet enn enter er trykt, spør en gang til, ved å gå videre 
  else: #(viss ingenting slo til)
      #lag float viss string inneholder bare tall, ellers fortsett
      try:
          withVac = float(withVac)
      except ValueError:
          # ta imot feilkode som float-funksjonen vil gi dersom input inneholder annet
          #numeriske tegn. continue fortsetter loopen
         

Endret av dabear
Lenke til kommentar
  • 4 uker senere...

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