Python problem (enkelt!)
Senast redigerat
Senast redigerat
Hej,
Jag har ett litet problem med lite pythonkod (vet riktigt ful kod, men jag vill bara få det att funka).
Om någon dessutom vet hur jag kan byta ut "-5 or -4 or -3 or -2 or -1" mot något kortare så vore jag tacksam (typ från -5 till -1 istället för att skriva ut alla siffror där i mellan).
P = 17
N = P-5
S = P+5
W = P-1
E = P+1
if N == -5 or -4 or -3 or -2 or -1:
N +=20
if S == 20 or 21 or 22 or 23 or 24:
S -=20
if W == -1 or 4 or 9 or 14:
W +=5
if E == 5 or 10 or 15 or 20:
E -=5
print(" "+ str(N) +" "+ str(S) +" "+ str(W) +" "+ str(E))
programmet printar:
"32 2 21 13"
Jag vill att det ska printa:
"12 2 16 18"
tack på förhand
EDIT: Problemet löst
Enkla förändringar:
1) det går att skriva if N in [-5,-4, osv ] , hade det varit mer värden så hade det lönat sig med en list-comprehension a la: if N in [i for i in range(bla,blaha)]
2) Ett annat alternativ är, ex: N=(N+20) if N in [-5,-4 ...] else N . Om man vill kapa ner det till en rad
EDIT: 3) N=(N+20) if N in range(start_värde,stop_värde,steg) else N . Är också ett alternativ (ja, den klarar negativa värden)
4)Det går att skriva: if värde1<variabel<värde2: i python som ett annat tipps
Att det inte blir det resultatet du förväntade dig orkar inte min alkohol indränkta hjärna just nu
tack, det blev mycket snyggare
Copyright © 1999–2024 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.