» »

[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

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.

Isotropic ::

alpa das
k = []
k.extend([i for i in m])

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[:]
Pretending to be a mature adult is so exhausting.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317315 (8063) black ice
»

Programiranje v pythonu

Oddelek: Programiranje
141893 (1251) Sony-Tech
»

Predstavitev dvojiškega drevesa z seznamom

Oddelek: Programiranje
141803 (1403) ktka
»

[Python] učenje

Oddelek: Programiranje
372612 (1909) Isotropic
»

Python - naloga

Oddelek: Programiranje
122647 (2331) jype

Več podobnih tem