Avatar billede yakazaki Nybegynder
28. august 2005 - 09:13 Der er 10 kommentarer og
1 løsning

python - if, else, elif øvelse går galt

Det går galt når den kommer til else x < y: invalid syntaks
Jeg har svært ved at se hvorfor.

def compare(x,y):
    if x == y:
        if x < 10:
            print x, "and", y, "are equal" "and", x, "are a single digit"
        else:
            print x, "and", y, "are equal" "and", x, "are not a single digit"
    else x < y:
        print x, "are smaller then", y
    elif x > y:
        print x, "are larger then", y

compare(3,4)
compare(5,5)
compare(7,2)
Avatar billede erikjacobsen Ekspert
28. august 2005 - 09:18 #1
Måske erstat
      else x < y:
        print x, "are smaller then", y
    elif x > y:
        print x, "are larger then", y
med
    elif x < y:
        print x, "are smaller then", y
    else:
        print x, "are larger then", y
Avatar billede yakazaki Nybegynder
28. august 2005 - 09:22 #2
Den melder fejl ved hver else ja, så nu sat jeg begge til elif og nu virker det sjovt nok.
Avatar billede erikjacobsen Ekspert
28. august 2005 - 09:29 #3
Det er ikke fordi du prøver at have noget mellem "else" og ":" - vel?
Avatar billede simonvalter Praktikant
28. august 2005 - 09:35 #4
http://www.python.org/doc/current/tut/node6.html#SECTION006100000000000000000

"else x < y:" er ikke korrekt syntax. "else" gør den hvis de andre conditions ikke blev brugt og derfor skal du ikke give "else:" en condition den skal teste på.

"elif x > y:" efter en "else:" er heller ikke korrekt synatax, den skal komme imellem "if" og "else".
Avatar billede yakazaki Nybegynder
28. august 2005 - 09:38 #5
Det hjælper ikke at skrive
else:
  if x < y:
elif:
  if x > y:

men noget andet så kan jeg ikke finde ud af at give point herinde?
Kan ikke se nogen knap hvor der står godkend svar.
Avatar billede yakazaki Nybegynder
28. august 2005 - 09:42 #6
ja ok. Det er altså ikke nødvendig at afslutte med else, kan bare nøjes med elif hele vejen. Jeg troede man skulle afslutte med else.
Avatar billede erikjacobsen Ekspert
28. august 2005 - 09:44 #7
Det er da meget rimeligt at slutte med en "else:" - så er du sikker på at een af mulighederne bliver udført. Hvordan ser din kode ud nu?
Avatar billede simonvalter Praktikant
28. august 2005 - 09:45 #8
Nej else og elif er optional.

Du kan ikke give point fordi der ikke er lagt et svar, når du har fået svar på dit spørgsmål kan du bede dem som har besvaret det om at ligget et... men du kan godt opgive at få erik til at tage imod dem ;)
Avatar billede yakazaki Nybegynder
28. august 2005 - 12:36 #9
simonvalter oki he he. Jeg har ikke fået et "svar" på nogen af dem jeg har oprettet. Og point'ene er jo brugt når man opretter...
Avatar billede simonvalter Praktikant
28. august 2005 - 12:56 #10
Bed folk om at ligge et svar hvis du kunne bruge det hvis ikke og spørgsmålet ikke er relevant mere eller du selv fandt ud af det så lig selv et svar og luk. Men hvis du selv finder løsningen så er det pænt hvis du skriver hvad du gjorde for at løse problemet så ingen føler sig snydt eller folk der senere har samme problem kan finde svaret i en søgning.

Jeg ligger ihvertfald et svar her hvis du kunne bruge hvad jeg havde at tilføje.
Avatar billede yakazaki Nybegynder
28. august 2005 - 13:18 #11
Tak det skal jeg huske på.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester