🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by "Pawe�" Mon, 27 Dec 2010 11:11
[Python] problem z odczytaniem warto�ci zmiennych
#12262
Author: "Pawe�"
Date: Mon, 27 Dec 2010 11:11
40 lines
1298 bytes
Witam

Chcia�bym si� zapyta� czy kto� wie jak mo�na uzyska� (odczyta�) warto��
zmiennych u�ytych jako parametr dla narz�dzia Arcgis ? Poni�szy skrypt
wyszukuje w tabelce atrybut�w,  duplikaty. Zmienne n0 i n1 zwracaj� po
zako�czeniu skryptu warto�� 0 zamiast np. 15 w zwi�zku z tym ostatnia
instrukcja if nie dzia�a prawid�owo ? Co robi� �le lub czego brakuje w tym
kodzie ? Na grupie Pythona nie bardzo potrafiono mi pom�c gdy� sztuczki z
u�yciem deklaracji global niestety nie dzia�aj� ?

n0 = 0
n1 = 0 #liczba znalezionych duplikat�w

codeblock = "uniqueList = []\n\
def isDuplicate(inValue):\n\
  if inValue in uniqueList:\n\
      return 1\n\
      n1=n1+1\n\
  else:\n\
    uniqueList.append(inValue)\n\
    return 0\n\
    n0=n0+1"

expressi

gp.CalculateField_management(Output_Dataset, name_dfield, expression1,
"PYTHON", codeblock)

if n1 > 0:
    gp.AddMessage ("Znaleziono " +str(n1)+ " duplikat(-�w).")
    gp.AddMessage ("Dodano informacj� o duplikatach(1) lub ich braku(0) w
nowym polu: "+str(name_dfield)+".")
    print gp.getmessages(3)
else:
    gp.AddMessage ("Brak obiekt�w o zduplikowanych atrybutach we wskazanej
warstwie."+" n1="+str(n1)+", n0="+str(n0))
    print gp.getmessages(4)



Re: [Python] problem z odczytaniem warto ci zmiennych
#12268
Author: "Mateusz Loskot"
Date: Thu, 06 Jan 2011 18:41
30 lines
823 bytes
"Pawe" <gamacdur@op.pl> wrote in message
news:4d18675a$0$2499$65785112@news.neostrada.pl...
> n0 = 0
> n1 = 0 #liczba znalezionych duplikat�w
>
> codeblock = "uniqueList = []\n\
> def isDuplicate(inValue):\n\
>  if inValue in uniqueList:\n\
>      return 1\n\
>      n1=n1+1\n\
>  else:\n\
>    uniqueList.append(inValue)\n\
>    return 0\n\
>    n0=n0+1"


Podejrzane jest to, że funkcja isDuplicate kończy
wykonanie (return 1 lub return 0) przed jakąkolwiek inkrementacją
liczników n1 lub n0. Inaczej, n1 i n0 są zawsze równe Zero.

Nigdy nie używałem skryptów w Pythonie wraz z ArcGIS, więc być
może problem jest specyficzny dla tego środowiska.

Pozdrawiam
--
Mateusz Loskot, http://mateusz.loskot.net
pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
C++ FAQ: http://parashift.com/c++-faq-lite


Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads