Permalänk
Medlem

Python problem (enkelt!)

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

Permalänk
Medlem

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

Permalänk
Medlem

tack, det blev mycket snyggare