Behöver hjälp med superenkel python programmering!

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

Behöver hjälp med superenkel python programmering!

Hej! Det skulle vara till stor hjälp om det finns någon här som vet hur jag ska gå tillväga.

Jag fick som kommentar att koden ska vara uppdelad i mer än en funktion. Så här ser koden ut just nu:

def main(): try: fahrenheit = float(input('Hur många fahrenheit är det? ')) celsius = (fahrenheit - 32)*5/9 celsius = round(celsius,2) print ('Hej igen, temperaturen i Celsius är ', celsius ,'grader') except ValueError: print ("\nfyll i ett korrekt värde!") return main() main()

Code-taggar samt trådflytt /mod
Trädvy Permalänk
Medlem
Plats
Lappland
Registrerad
Feb 2008

Använd [ code ] [/ code ] taggarna fast utan mellanslag så blir det enklare att upptäcka fel

Trädvy Permalänk
Medlem
Plats
/dev/null
Registrerad
Aug 2008

Låt omvandligen ske i en egen funktion.

def f2c(fahrenheit):
...
return celsius

Programstrukturen blir då
1. Fråga användaren om ett värde (i fahrenheit)
2. Anropa f2c med detta värde
3. Få tillbaks ett värde (i celsius) från f2c
4. Skriv ut värdet (i celsius)

NUC: Intel i5-4250U | 8GB RAM | 250GB SSD
Laptop: Dell Latitude E7270
Laptop: MacBook Air 13"

Trädvy Permalänk
Medlem
Registrerad
Nov 2016

Jag misstänker att de tycker att input och utskrift ska vara kvar i main och att du ska ha en ny funktion som tar hand om konverteringen till celsius och alltså returnerar svaret till main som du sedan skriver ut.

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

@Chibariku: Tack!

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

@PeCe: Tack! Tror du att du skulle kunna visa hur det skulle kunna se ut

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2009
Skrivet av lillasan:

@PeCe: Tack! Tror du att du skulle kunna visa hur det skulle kunna se ut

PeCe gav dig ett exempel redan.

def f2c(fahrenheit) #din kod för att konvertera fahrenheit till celsius return celsius

Sen i din main metod så anropar du din f2c metod.

7900x @ 4,7ghz - 1080ti @ 2100

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

@celoz:

Är jag ens i närheten? Jag är nybörjare på python om det inte märks

def main(): try: #programmet frågar frågan 'Hur många fahrenheit är det? '(float = decimaltal) fahrenheit = float(input('Hur många fahrenheit är det? ')) def f2c(fahrenheit) #formeln för att räkna fram graderna från fahrenheight till celsius celsius = (fahrenheit - 32)*5/9 #svaret i celsius att avrundas till två decimaler celsius = round(celsius,2) return celsius #svaret visas som celsius print ('Hej igen, temeraturen i Celsius är ', celsius ,'grader') #om värdet är felaktigt kommer man meddelas "fyll i ett korrekt värde!" except ValueError: print ("\nfyll i ett korrekt värde!") #Här går den tillbaks till start return main() main()

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

@furbel: Tack! Skulle du kunna visa hur man skulle kunna lösa det på

Trädvy Permalänk
Medlem
Plats
~/Karlstad
Registrerad
Dec 2005

Tror du är ute efter detta(ger dig ett tankesätt bara):

#Definierar funktion för att konvertera f till c def dinFunktion(inData): #Här converterar du med hjälp av inData return celsius #Här börjar huvudprogrammet #Anropa funktionen ovan med följande, skickaMedEttVärde kan exempelvis vara din input svarFrånFunktion = dinFunktion(skickaMedEttVärde) #Hantera svaret från funktion på lämpligt sätt

Bara gammalt skräp...

Trädvy Permalänk
Medlem
Plats
Rättvik
Registrerad
Maj 2011
Skrivet av lillasan:

@furbel: Tack! Skulle du kunna visa hur man skulle kunna lösa det på

Något sånt här kanske

def convert(fahrenheit): celsius = (fahrenheit - 32)*5/9 celsius = round(celsius,2) print (celsius) def main(): try: fahrenheit = float(input('Hur manga fahrenheit ar det? ')) convert(fahrenheit) except ValueError: print ("fyll i ett korrekt varde") return main() main()

CPU -->I7-3820
GPU -->2 x Nvidia680 GTX
OS --> Fedora

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2006

Du har flera förslag. Skapa en separat funktion som tex Sandia föreslår, sen kallar du på den från ditt vanliga flöde.

§5 /screamin-daemon, moderator
Trädvy Permalänk
Forumledare
Kent
Registrerad
Jan 2005

@lillasan *Trådar sammanfogade i enlighet med §3.3*

Observera att vi ej tillåter korspostning (flera trådar om samma ämne). Råkar man att posta i fel forumdel går det bra att antingen PM:a en moderator eller anmäla sin egen tråd.

Citat:

§3.2 Trådar ska placeras i den forumdel som bäst passar det behandlade ämnet. Om man är osäker på var en tråd ska placeras kan man skapa den i en forumdel som verkar lämplig och sedan anmäla sitt eget inlägg till moderatorerna för att få placeringen kontrollerad.
§3.3 Det är inte tillåtet att skapa flera trådar om samma ämne (så kallad korspostning). Detta gäller oavsett om trådarna placeras i samma forumdel eller i olika forumdelar. Om en moderator har låst en tråd är det inte tillåtet att skapa en ny tråd om samma ämne. Regeln finns för att alla ska få samma chans att få sina trådar uppmärksammade och för att forumet ska bli så överskådligt som möjligt.

Välkommen till Sweclockers btw!
/moderator

Synpunkter eller frågor gällande modereringen? Då kan du kontakta mig eller moderatorerna.
Ursäkta min stavning, jag är dansk