stepking2 Skrevet 16. juni 2012 Del Skrevet 16. juni 2012 Har begynt å lære meg Python, og har gjort "ferdig" en kalkulator. number=input("Enter your math problem here: ") print number choice = raw_input("Do you want to solve anonther one? Y or N.") while choice =="Y" or choice =="y" : numer = input("Enter your math problem here: ") print numer if choice == "N" or choice == "n" : print "Goodbye!" Jeg vil gjøre det slik at, der det står while, så skal den spørre hver gang "Do you want to solve another one? Y or N.", og det skal den gjøre uten at jeg må skrive tusenhvis av if statements etter hverandre, for å spørre. Slik som det er nå, hvis du skriver Y, så fortsetter den å løse stykker, uten å spørre "Do you want to solve another one? Y or N." Lenke til kommentar
etse Skrevet 16. juni 2012 Del Skrevet 16. juni 2012 (endret) du kan gjøre noe lignende dette: running = True while running: number=input("Enter your math problem") print "The answe is:", number choice = "" while choice.lower() not in ["y", "n"]: choice = raw_input("Do you want me to solve anonther one? Y or N.") if choice.lower() == "n": running = False print "Goodbye!" Endret 16. juni 2012 av etse Lenke til kommentar
stepking2 Skrevet 16. juni 2012 Forfatter Del Skrevet 16. juni 2012 (endret) du kan gjøre noe lignende dette: running = True while running: number=input("Enter your math problem") print "The answe is:", number choice = "" while choice.lower() not in ["y", "n"]: choice = raw_input("Do you want me to solve anonther one? Y or N.") if choice.lower() == "n": running = False print "Goodbye!" Det funket akkurat slik jeg ville ha det til, men siden jeg er nybegynner så har jeg to "spørsmål": - Kunne du forklart funksjonene du har brukt? - Hva syns du om koden min? # -*- coding: utf-8 -*- #!/usr/bin/python #Colorexample: bcolours.OKBLUE + "" + bcolors.ENDC class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' STOP = '\033[0m' def disable(self): self.HEADER = '' self.OKBLUE = '' self.OKGREEN = '' self.WARNING = '' self.FAIL = '' self.STOP = '' from time import sleep from math import sqrt print bcolors.OKBLUE + " __ __ __ ___________ _ " print bcolors.OKBLUE + " | \ / | / \ |____ ____| |_| " print bcolors.OKBLUE + " | \ / | / __ \ | | __ __ _ ____ " print bcolors.OKBLUE + " | |\ \ / /| | / /__\ \ | || | | || || __|" print bcolors.OKBLUE + " | | \ \/ / | || | | || |__| || || |__ " print bcolors.OKBLUE + " | | \__/ | || ____ | | || __ || || __|" print bcolors.OKBLUE + " | | | || | | | | || | | || || |__ " print bcolors.OKBLUE + " |_| |_||_| |_| |_||__| |__||_||____| " + bcolors.STOP print " By Stepking2" sleep(2) print bcolors.OKBLUE + "Formula is: " print bcolors.OKBLUE + "- Subtraction = -" print bcolors.OKBLUE + "- Addition = +" print bcolors.OKBLUE + "- Multiplication = * " print bcolors.OKBLUE + "- Exponent = **Exponent " print bcolors.OKBLUE + "- Squareroot = sqrt(Number) " + bcolors.STOP raw_input("Understood? Press enter to continue. ") sleep(1) number=input("Enter your math problem: ") print number running = True while running: number=input("Enter your math problem: ") print "The answer is:", number choice = "" while choice.lower() not in ["y", "n"]: choice = raw_input("Do you want me to solve anonther one? Y or N.") if choice.lower() == "n": running = False print "Goodbye!" Utenom det du har bidratt med, og fargekoding som jeg fant på StackOverflow, begynt igår å skrive for fullt, og skrev resten på ca. 2 timer. Endret 16. juni 2012 av stepking2 Lenke til kommentar
etse Skrevet 16. juni 2012 Del Skrevet 16. juni 2012 running = True while running: Her setter jeg verdien til variabelen "running" til true og har en while-løkke som vil kjøre helt til running er false. Dette gjør at programmet vil kjøre helt til jeg setter running til false (noe jeg gjør senere når brukeren sier han ikke vil mer) number=input("Enter your math problem") print "The answe is:", number Dette er din kode såregner med du forstår dette choice = "" while choice.lower() not in ["y", "n"]: choice = raw_input("Do you want me to solve anonther one? Y or N.") Her kjører jeg en løkke som sjekker om brukeren taster inn Y eller N, så lenge input er noe annet enn Y eller N så vil programmet fortsette å spørre. Grunnen til at jeg sier .lower() er at dette gjør at det brukeren skrev inn blir til små bokstaver. Så da trenger jeg ikke sjekke både Y og y. if choice.lower() == "n": running = False Her sjekker jeg om brukeren tastet inn N eller n (husk det jeg sa om lower() over). Hvis det sette jeg running til false, noe som vil så den ytterse while-løkken til å ikke fortsette. Og programmet vil da avslutte. print "Goodbye!"[/code] 1 Lenke til kommentar
stepking2 Skrevet 16. juni 2012 Forfatter Del Skrevet 16. juni 2012 Tusen, tusen takk :-D Det hjalp utrolig mye! 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å