nilsso Skrevet 21. juli 2006 Del Skrevet 21. juli 2006 vist jeg skal lage et program med mer enn en input/funksjon, hva gjør jeg da? takk for hjelpen Lenke til kommentar
areffhaug Skrevet 21. juli 2006 Del Skrevet 21. juli 2006 vist jeg skal lage et program med mer enn en input/funksjon, hva gjør jeg da? takk for hjelpen 6533506[/snapback] Det kommer an på hva det er du spør om, i grunn. Vil du ha flere funksjoner som du kjører? Python har et velkjent grep for å sjekke om den fila du kjører er "hovedfila", ala: if __name__ == "__main__": funksjon1() funksjon2() Besvarer dette spørsmålet? Lenke til kommentar
nilsso Skrevet 21. juli 2006 Forfatter Del Skrevet 21. juli 2006 (endret) hmm, nei , men se her: import time print "1=circle" print "2=square" Q1=raw_input("choose figure 1 or 2: ") her kommer problemet, jeg skal ha enda en fks. raw_input videre på den over: if Q1 == "1": Q1-r=?("enter radius: ") Areal = Q1-r*Q1-r*3,14 print Areal osv. men kommer jo ikke videre :S, "sikkert en del feil i den over" Endret 21. juli 2006 av nilsso Lenke til kommentar
areffhaug Skrevet 21. juli 2006 Del Skrevet 21. juli 2006 hmm, nei , men se her: import time print "1=circle" print "2=square" Q1=raw_input("choose figure 1 or 2: ") her kommer problemet, jeg skal ha enda en fks. raw_input videre på den over: if Q1 == "1": Q1-r=?("enter radius: ") Areal = Q1-r*Q1-r*3,14 print Areal osv. men kommer jo ikke videre :S, "sikkert en del feil i den over" 6533756[/snapback] http://it.metr.ou.edu/byteofpython/while-statement.html Det der er en link for deg. Du trenger en loop som går igjen og igjen til den avbrytes på noe vis. Lenke til kommentar
nilsso Skrevet 21. juli 2006 Forfatter Del Skrevet 21. juli 2006 takk skal se hva jeg for til Lenke til kommentar
nilsso Skrevet 21. juli 2006 Forfatter Del Skrevet 21. juli 2006 (endret) hmm skjønte ikke helt det der :S, men kanskje du kan hjelpe meg med denne? hva må jeg gjøre for at denne skal gå opp? import time print "1=circle" print "2=square" quest=raw_input("choose between figure 1 or 2: ") if quest == "1": print "you have selected to find the areal of a circle" Q1=input("enter the radius of the object you want to calculate: ") circle-areal = Q1*Q1*3,14 print circle-areal time.sleep(5) if quest == "2": print "you have selected to find the areal of a square" Q2=input("enter the length of the object you want to calculate: ") Q3=input("enter the width of the object you want to calculate: ") square-areal = Q2*Q3 print areal time.sleep(5) Endret 21. juli 2006 av nilsso Lenke til kommentar
Gjest Slettet-8fx0y6VV Skrevet 22. juli 2006 Del Skrevet 22. juli 2006 Er det noe slik som dette du er ute etter? quit = False while not quit: print "1=circle" print "2=square" quest=raw_input("choose between figure 1 or 2: [1/2]") if quest == '1': noe else: annet skal_mere = raw_input('Flere ganger? [y/n]') if skal_mere == 'n': quit = True Lenke til kommentar
nilsso Skrevet 22. juli 2006 Forfatter Del Skrevet 22. juli 2006 (endret) inviklet:P , skjønner ingenting av det der :S, en ting til : hva er feilen her? : import time print "1=circle" print "2=square" quest=raw_input("choose between figure 1 or 2: ") if quest == '1': --- print "you have selected to find the areal of a circle" --- Q1 = raw_input("enter the radius of the object you want to calculate: ") --- circle-areal = Q1*Q1*3,14 --- print circle-areal --- time.sleep(5) --- else: --- print "you have selected to find the areal of a square" --- Q2=raw_input("enter the length of the object you want to calculate: ") --- Q3=input("enter the width of the object you want to calculate: ") --- square-areal = Q2*Q3 --- print square-areal --- time.sleep(5) print "n=no" print "y=yes" mer = raw_input("do you want to try again?: [n\y]") if mer == 'n': --- print "alright, have a good day!" --- time.sleep(5) --- else: --- print "please restart this program!" --- time.sleep(5) EDIT: nei beklager nå roter jeg ... Endret 22. juli 2006 av nilsso Lenke til kommentar
hulahulag Skrevet 22. juli 2006 Del Skrevet 22. juli 2006 inviklet:P , skjønner ingenting av det der :S, en ting til : hva er feilen her? : Det er flere feil (uthevet): import timeprint "1=circle" print "2=square" quest=raw_input("choose between figure 1 or 2: ") if quest == '1': --- print "you have selected to find the areal of a circle" --- Q1 = raw_input("enter the radius of the object you want to calculate: ") --- circle-areal = Q1*Q1*3,14 --- print circle-areal --- time.sleep(5) --- else: --- print "you have selected to find the areal of a square" --- Q2=raw_input("enter the length of the object you want to calculate: ") --- Q3=input("enter the width of the object you want to calculate: ") --- square-areal = Q2*Q3 --- print square-areal --- time.sleep(5) print "n=no" print "y=yes" mer = raw_input("do you want to try again?: [n\y]") if mer == 'n': --- print "alright, have a good day!" --- time.sleep(5) --- else: --- print "please restart this program!" --- time.sleep(5) 6534974[/snapback] 1. Du kan ikke ha variabelnavn med '-' (bindestrek) i. Det er vanlig å bruke '_' (understrek) for å skille flere ord i et variabelnavn. Så i steden for circle-areal, kan du bruke circle_areal. Det samme gjelder for square-areal. 2. Når du får input fra brukeren med raw_input metoden, får du dette som en string. Hvis du vil regne på denne (som i ditt tilfelle), må du konvertere det om til et tall med int eller float metoden. Siden du regner på reelle tall, er det greit med float her. Altså du bytter ut Q1 = raw_input("enter the radius of the object you want to calculate: ") med Q1 = float(raw_input("enter the radius of the object you want to calculate: ")) 3. Beregningen Q1*Q1*3,14 blir feil. Dette vil returnere et tuple siden du bruker ',' og ikke '.' i tallet 3.14. Sist, men ikke minst: Prøv og se litt mer på while-løkken som rapt0r postet. Det er best å slippe og restarte programmet hver gang man vil prøve på nytt. Lenke til kommentar
nilsso Skrevet 22. juli 2006 Forfatter Del Skrevet 22. juli 2006 hmm... takk klarte det , nå skal jeg bare prøve å gjøre enda mer, adde litt volum osv. takk alle til alle folka Lenke til kommentar
Paull Skrevet 22. juli 2006 Del Skrevet 22. juli 2006 Lagde en liten sak selv. Moro og sitte med python og syssle litt igjen Trikset her er at menyen lagres i en liste (meny) med menyelementer, der først navnet på formelen spesifiseres, deretter parameterene som trengs, og til slutt selve formelen. Deretter tar "menysystemet" seg av resten. menu = [["Area of circle",["radius"],"int(radius)*2*3.14"], ["Area of square",["sidelength"],"int(sidelength)**2"], ["Area of rectangle",["height","width"],"int(height)*int(width)"] ] while(1): print "\nSuperprogram..\nMenu:" for menuitem in menu: print str(menu.index(menuitem))+": "+menuitem[0] print str(len(menu))+": Quit" menuchoice = raw_input("Please enter number for function: ") imc = int(menuchoice) if(imc>=0 and imc<len(menu)): args={} for param in menu[imc][1]: args[param]=raw_input("Please enter the "+param+": ") print menu[imc][0]+": "+str(eval(menu[imc][2],args)) elif(imc==len(menu)): print "Have a nice day!" break else: print "Invalid choice; try again\n" Lenke til kommentar
nilsso Skrevet 22. juli 2006 Forfatter Del Skrevet 22. juli 2006 Lagde en liten sak selv. Moro og sitte med python og syssle litt igjen Trikset her er at menyen lagres i en liste (meny) med menyelementer, der først navnet på formelen spesifiseres, deretter parameterene som trengs, og til slutt selve formelen. Deretter tar "menysystemet" seg av resten. menu = [["Area of circle",["radius"],"int(radius)*2*3.14"], ["Area of square",["sidelength"],"int(sidelength)**2"], ["Area of rectangle",["height","width"],"int(height)*int(width)"] ] while(1): print "\nSuperprogram..\nMenu:" for menuitem in menu: print str(menu.index(menuitem))+": "+menuitem[0] print str(len(menu))+": Quit" menuchoice = raw_input("Please enter number for function: ") imc = int(menuchoice) if(imc>=0 and imc<len(menu)): args={} for param in menu[imc][1]: args[param]=raw_input("Please enter the "+param+": ") print menu[imc][0]+": "+str(eval(menu[imc][2],args)) elif(imc==len(menu)): print "Have a nice day!" break else: print "Invalid choice; try again\n" 6537278[/snapback] nei det der skjønte jeg ingeeeeenting av men enig i det jah, morsomt å sitte å putle med det ( jeg får vel lese litt mer python ) Lenke til kommentar
dabear Skrevet 28. juli 2006 Del Skrevet 28. juli 2006 Hm, prøv å gjøre deg så lite som mulig avhengig av eval, i 99% av tilfellene kan du unngå å bruk exec/eval Lenke til kommentar
Paull Skrevet 28. juli 2006 Del Skrevet 28. juli 2006 Jojo, egentlig ville man sikkert brukt objekter, ala circle, square etc, men det var mest bare for lekens skyld. Lenke til kommentar
dabear Skrevet 28. juli 2006 Del Skrevet 28. juli 2006 (endret) Prøvde å lage ei alternativ løsning her: https://www.diskusjon.no/index.php?showtopi...dpost&p=6574823 menu = [['Area of circle',lambda radius: int(radius)*2*3.14], ['Area of square',lambda sidelength:int(sidelength)**2], ['Area of rectangle',lambda height,width: int(height)*int(width)] ] try: while 1: print "\nSuperprogram..\nMenu:" print '\n'.join('%d: %s' % \ (menu.index(menuitem), menuitem[0]) for menuitem in menu) try: choice = int(raw_input('Please enter number for function, ctrl+c to quit: ')) index = menu[choice] except ValueError, IndexError: print 'No such option %s, try again' %(choice) continue answers = [] try: for param in index[1].func_code.co_varnames: answers.append(float(raw_input('Please specify the %s:' %param))) except ValueError: #print 'Invalid choice; try again' print "Starting from the beginning, sigh, why didn't you specify a mathematical value?" continue print index[0], ':', index[1](*answers) except KeyboardInterrupt: print 'Have a nice day!' og btw: (nesten?) alt i python er objekter Endret 28. juli 2006 av dabear Lenke til kommentar
Paull Skrevet 29. juli 2006 Del Skrevet 29. juli 2006 (endret) Fint, det. Du er flink. Endret 29. juli 2006 av Paull Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå