Behöver hjälp med superenkel python programmering!

Permalänk
Medlem

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
Permalänk
Medlem

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

Permalänk
Medlem

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)

Visa signatur

Laptop: Dell Latitude E7270 | 12,5" FHD IPS | i5-6300U | 16GB RAM | 500GB SSD
Laptop: MacBook Air 13"
NUC: Intel i5-4250U | 8GB RAM | 250GB SSD

Permalänk
Medlem

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.

Permalänk
Medlem
Permalänk
Medlem

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

Permalänk
Medlem
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.

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Medlem

@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()

Permalänk
Medlem

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

Permalänk
Medlem

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

Visa signatur

Bara gammalt skräp...

Permalänk
Medlem
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()

Visa signatur

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

Permalänk
Medlem

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
Permalänk
Hedersmedlem

@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

Visa signatur

Danskjävel så krattar som en skrivare...