Nyckelord: print(), Variabler

Byt plats på variabler
Kod-Kalle skriver ett program där han skapar variablerna a = 1 och b = 4. Han vill sedan byta plats på variablerna så att b = 1 och a = 4. Han skriver följande program.
a = 1
b = 4
print(a)
print(b)
a = b
b = a
print(a) # Ska skriva ut 4
print(b) # Ska skriva ut 1
Vad gör Kod-Kalle för fel? Hur ska Kod-Kalle göra för att få programmet att fungera?
Ledtråd
När a = b körs byts värdet som namnet a refererar till från 1 till 4.
När b = a sedan körs får b också värdet 4. En tillfällig variabel kan bevara det gamla a-värdet.
Svar
Förklaring:
När variabelbytet görs så sätter Kod-Kalle a = b och b = a. Problemet är att när man gör tilldelningen a = b, så skrivs värdet på a över så att det inte längre finns. Utskriften blir alltså:
1
4
4
4
Lösningen är att använda sig av en tredje variabel som man temporärt sparar undan värdet i. Exempelvis:
a = 1
b = 4
print(a)
print(b)
c = a
a = b
b = c
print(a) # Ska skriva ut 4
print(b) # Ska skriva ut 1
Vilket ger:
1
4
4
1
Python har också en kortare lösning med samtidig tilldelning:
a = 1
b = 4
a, b = b, a
print(a) # 4
print(b) # 1