Forum » Programiranje » [Python] pregled programa
[Python] pregled programa
Vanhelsing ::
Živjo,
prosil bi, če bi kdo lahko pregledal tole kodo, ker imam problem, in sicer, seznam m se mi "samodejno" spreminja
koda:
from numpy.linalg import det
m=[[4,2],[3,5]]
n=[6,9]
a=det(m)
print "osnovna determinanta",a
def zamenjava(m,n,f):
k=m
for i in range(len(m)):
k[i][f]=n[i]
c= det(k)
return c
for f in range(len(m)):
print "m",m
c=zamenjava(m,n,f)
c=int(c)
x=c/a
print "x", x
Gre za to, da se, ko gre drugič skozi for zanko m kar naenkrat postane k, čeprav nisem nikjer tega določil...
hvala
P.S: Je program za računanje sistema linearnih enačb po cramerjevem pravilu
prosil bi, če bi kdo lahko pregledal tole kodo, ker imam problem, in sicer, seznam m se mi "samodejno" spreminja
koda:
from numpy.linalg import det
m=[[4,2],[3,5]]
n=[6,9]
a=det(m)
print "osnovna determinanta",a
def zamenjava(m,n,f):
k=m
for i in range(len(m)):
k[i][f]=n[i]
c= det(k)
return c
for f in range(len(m)):
print "m",m
c=zamenjava(m,n,f)
c=int(c)
x=c/a
print "x", x
Gre za to, da se, ko gre drugič skozi for zanko m kar naenkrat postane k, čeprav nisem nikjer tega določil...
hvala
P.S: Je program za računanje sistema linearnih enačb po cramerjevem pravilu
Rokm ::
Operacija k = m kopira samo kazalec na seznam, torej nato ko spreminjaš k spreminjaš tudi m. Uporabiti moraš funkcijo deepcopy() iz modula copy da se seznam kopira po elementih ne samo pointer na seznam, več na http://docs.python.org/library/copy.html.
Vanhelsing ::
hvala, deepcopy reši problem :) Zanimivo kako podatek, da spreminjaš le kazalec prišpara cca. 2h premetavanja kode :)
brodul ::
Jst sem mel nekaj časa tudi tak problem.
V večini ljudje napišejo.
k = m[:]
V večini ljudje napišejo.
k = m[:]
Pretending to be a mature adult is so exhausting.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18167 (8915) | black ice |
» | Programiranje v pythonuOddelek: Programiranje | 2070 (1428) | Sony-Tech |
» | Predstavitev dvojiškega drevesa z seznamomOddelek: Programiranje | 1958 (1558) | ktka |
» | [Python] učenjeOddelek: Programiranje | 2679 (1976) | Isotropic |
» | Python - nalogaOddelek: Programiranje | 2811 (2495) | jype |