Forum » Programiranje » [Python] Polja, matrike
[Python] Polja, matrike
Bela01 ::
Zopet se oglašam in imam zopet eno začetniško vprašanje.
Po dolgem času sem se spet spravla nazaj k Pythonu. Rada bi napisala program ki bi uredil polje naključno podanih števil (z metodo urejanje z mehurčki). Problem je v tem, ker ne vem kako to napisat v Pythonu. V C++ gre to vse tako lepo, tu pa hm ... (pojma nimam)
Polje mi je uspelo napolnit in izpisat (to je edino kar dela). Ne pa ga tudi uredit.
Problem je kako "prenest" lokalno spr. a (polje) iz ene funkcije (ki polje polni) v drugo funkcijo, ki polje ureja. Kako se sploh bere števila iz polja?! (zgleda da ni niti malo podobno c++ :) )
In primer mojega "programa":
[edit: Naslednjič najprej PREBERI ME: označevanje topicov v oddelku programiranje - snow]
Po dolgem času sem se spet spravla nazaj k Pythonu. Rada bi napisala program ki bi uredil polje naključno podanih števil (z metodo urejanje z mehurčki). Problem je v tem, ker ne vem kako to napisat v Pythonu. V C++ gre to vse tako lepo, tu pa hm ... (pojma nimam)
Polje mi je uspelo napolnit in izpisat (to je edino kar dela). Ne pa ga tudi uredit.
Problem je kako "prenest" lokalno spr. a (polje) iz ene funkcije (ki polje polni) v drugo funkcijo, ki polje ureja. Kako se sploh bere števila iz polja?! (zgleda da ni niti malo podobno c++ :) )
In primer mojega "programa":
"""Program izpise polje nakljucnih stevil. Nato ga uredi in ponovno izpise. """ def nakljucno(minimum, maximum=None, shape=[]): a= ((maximum-minimum)* random(shape)) a= a + minimum if isinstance(a, Numeric.ArrayType): return a.astype(Numeric.Int) else: return int(a) def uredi(polje=[]): i=1 j=2 a=20 for i in range(1,a+1): for j in range(1,a+1): if (polje[j-1] > polje[j]): x= polje[j-1] polje[j-1]= polje[j] polje[j]= x j=j+1 return polje print "Program uredi polje nakljucnih stevil in ga izpise." a= nakljucno(10, 25, shape=[20]) print a print "\n" print uredi(a)
[edit: Naslednjič najprej PREBERI ME: označevanje topicov v oddelku programiranje - snow]
- spremenilo: snow ()
NoComent! ::
def uredi(polje=[]): for i in range(len(polje)-1,1,-1): for j in range(i): if polje[j]>polje[j+1]: x=polje[j] polje[j]=polje[j+1] polje[j+1]=x return polje
Upam da to pomaga
snow ::
Python je ful lep ker lahko dva elementa zamenjaš tako(meni lepši način):
Drugače pa mislim, da ti ni treba vračati iz funkcij, če spreminjaš original, kot je to v tem primeru.
polje[j],polje[j+1]=polje[j+1],polje[j]
Drugače pa mislim, da ti ni treba vračati iz funkcij, če spreminjaš original, kot je to v tem primeru.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
OwcA ::
Doda fleksibilnost, čeprav ni čisto v skladu s Python konvencijami.
Otroška radovednost - gonilo napredka.
kihc ::
polje[j],polje[j+1]=polje[j+1],polje[j]
Ok, tole je meni rahlo nerazumljivo. Se pravi, da če narediš a,b,c = c,b,a ti vrednosti obrne okrog?
x
OwcA ::
Ja, ker je to ena sama izjava, se najprej ovrednoti cela desna stran, šele potem pride do prirejanja vrednosti.
Otroška radovednost - gonilo napredka.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18009 (8757) | black ice |
» | [JAVA] Izpis imen vseh datotek iz direktorija in poddirektorijevOddelek: Programiranje | 4929 (2958) | Slovenet |
» | Python iskanje podvojenih vrednostiOddelek: Programiranje | 1488 (1201) | BlueRunner |
» | [Java] Preverjanje polja za iste stringeOddelek: Programiranje | 1138 (1016) | infiniteLoop |
» | [C++] urejanje nizov po velikostiOddelek: Programiranje | 2274 (2055) | Matako |