webForumDet fria alternativet

Problem men programering i Python

2 svar · 1 044 visningar · startad av ErknutS

ErknutSMedlem sedan aug. 20131 inlägg
#1

Hej det är så att jag gör en förberedande kurs i programmering på 3 hp. Det jag ska göra är det här:

När vi väl vet temperaturen kan vi kolla om den är för låg genom att skriva:
Python

temperatur = int(input("Ge utetemperatur: "))
if temperatur < 5:
print("Burr, idag är det kallt!")

Detta program kommer att se ut så här på skärmen:

Detta program kommer alltså att skriva ut texten "Burr, idag är det kallt!" endast om (svaret på frågan om) utetemperaturen är mindre än 5. Strukturen på en if-sats är:

if <BOOLESKT UTTRYCK>:
<EN ELLER FLERA SATSER SOM SKA EXEKVERAS>
---------------------------------------------------------------------

Men när jag gör det så skriver jag in samma kod i python, såhär ser det ut:

temperatur = int(input("Ge utetemperatur: ")) sedan trycker jag ENTER.
Då står det Ge utetemperatur: (Jag väljer då 17 grader)
Sedan skriver jag: if temperatur <20: sedan trycker jag ENTER.
Till sist skriver jag print("Burr, i dag är det kallt!").

Men jag får inte samma resultat som de har i instruktionen? För jag kan inte skriva in ett tal som är lägre en 20 och att den säger Brr, i dag är....?
Har jag gjort ngt fel?
Mvh Eri

metalboyMedlem sedan jan. 2005953 inlägg
#2

Vad händer? Får du något felmeddelande?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Tänk på att Python är indenteringskänsligt, dvs till skillnad från de flesta andra språk så spelar det roll om du placerar mellanslag före kommandon eller inte.
Exempel:

if temperatur < 5:
    print("Burr, idag är det kallt!")
else:
    print("Det är dräglig temperatur ute!")
print("Slut på väderrapporten!")

Här vet Python alltså att den sista raden inte tilhör if-satsen och ska köras oavsett. Det spelar ingen roll hur många mellanslag du använder, bara alla rader som ligger på samma "nivå" har samma avstånd, och undernivåer har större avstånd. Du kan även använda tabb (tangenten till vänster om Q) för att infoga ett större avstånd.

Eftersom du verkar köra via konsolen, så körs kommandona vartefter du skriver in dem. För att komma runt detta kan du spara allt i en fil, som du sedan kör med ett kommando som python fil.py

Men du kan också skapa funktioner som sparas tills du avslutar Python. Detta gör du med def, som så:

def vader():
    temperatur = int(input("Ge utetemperatur: "))
    if temperatur < 5:
        print("Burr, idag är det kallt!")
    else:
        print("Det är dräglig temperatur ute!")
    print("Slut på väderrapporten!")

Notera att allt nu är flyttat ett steg åt höger, och du kan enkelt se att allt som står där tillhör funktionen vader(). Och nu kan du köra hela funktionen genom att bara skriva vader() till konsolen.

124 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)