Hjälp sökes - enkel python programmering

Permalänk
Medlem

Hjälp sökes - enkel python programmering

hej, uppgiften går ut på att man ska flytta det minsta elementet i en lista till plats i ,som är 0 i början, och sedan göra samma sak med det minsta elementet från 1 till len(lista).
Dessvärre har jag stöt på problem, närmare bestämt, NameError: name 'p' is not defined.

Har säkert begått någon/några stora synder i följande kod och skulle vara väldigt tacksam om ni berättade vad jag har gjort fel och förklara hur man ska lösa den istället.

Tusen tack

"""Sök minsta och byt""" l=[8,2,3,34,4,55,22,11,44] def minsta(l,i): for a in range(i,len(l)): if l[i]>=l[a]: p=l[a] c=a #vilket element som är minst return p def bytPlats(l,i,p): d=l[i] l[i]=p l[c]=d for i in range(0,len(l)): minsta(l,i) bytPlats(l,i,p) print(l)

Visa signatur

Spelburk: Intel i5 750 @ ≈3,8ghz I 12GB Ram Radeon 7970 I SSD 120 gb Corsair Force GT I HX650W Corsair I P7P55 LX I Antec three hundred I Noctua NF-12 3x I Antec KÜLER H2O 620 P&P w/ Scythe Gentle Typhoon I Logitech mx518.

http://e-sim.org/lan.97056/

Permalänk
Medlem

deklarera p utanför for-loopen så kommer det fungera friskare.

Visa signatur

AMD Phenom II X6 1055T 2.8GHz | Asus Geforce GTX 660 2GB | Kingston ValueR DDR3 1333MHz 8GB | WD Caviar® Blue? 1TB 3,5", SATA 6 Gb/s | MSI 870A-G54, Socket-AM3

Permalänk
Medlem

Ja, du skicka in p i bytPlats-metoden, men du har inte satt något värde på den?

Permalänk
Medlem

Känner mig riktigt kass att behöva fråga detta men hur gör jag det? får ju värdet på p från for loop:en och tycker därför det känns väldigt logiskt att deklarera den där!
sorry att jag håller halva sweclockers vakna med dessa fråger!:)

Visa signatur

Spelburk: Intel i5 750 @ ≈3,8ghz I 12GB Ram Radeon 7970 I SSD 120 gb Corsair Force GT I HX650W Corsair I P7P55 LX I Antec three hundred I Noctua NF-12 3x I Antec KÜLER H2O 620 P&P w/ Scythe Gentle Typhoon I Logitech mx518.

http://e-sim.org/lan.97056/

Permalänk
Medlem
Skrivet av Saitek:

Känner mig riktigt kass att behöva fråga detta men hur gör jag det? får ju värdet på p från for loop:en och tycker därför det känns väldigt logiskt att deklarera den där!
sorry att jag håller halva sweclockers vakna med dessa fråger!:)

p=minsta(l,i)