blender3d.cz http://forum.blender3d.cz/ |
|
vyber a porovnani hodnot http://forum.blender3d.cz/viewtopic.php?f=11&t=1490 |
Stránka 1 z 1 |
Autor: | jm [ stř srp 17, 2005 9:39 pm ] |
Předmět příspěvku: | vyber a porovnani hodnot |
Kód: vsechny = [own3, own4, own5]
for x in vsechny: posx = x.getPosition()[0]# vybere X souradnici for y in vsechny: posy = y.getPosition()[0] if posy == posx: print "nasel" v tomhle prikladu se porovnaji hodnoty mezi sebou navzajem a na pokud jsou stejne napise "nasel" problem je v tom ze samozrejme najde protoze porovnava kazdy objekt s kazdym, tudis i prvni s prvnim, atd. takze prvni s prvnim sou samozrejme stejny. co bych, ale ja potreboval. potreboval bych aby se mezi sebou objekty porovnali, vyjma totoznych. potom aby mi to vypsalo ktere byli stejne. takova klasicka hracka, ja nato snad prijdu, ale kdyby jste nahodou nekdo vedel reseni ![]() dodatek..jen mi nerikejte ze na to budu muset pouzit matici ![]() jeste jedna podotazecka. jak udelat aby vysledek z for mel globalni ucinek a ne jen v urovni for. ![]() jm |
Autor: | jm [ sob srp 20, 2005 5:53 pm ] |
Předmět příspěvku: | |
ok no tak na tohle pecem, kdyby nahodou nekdo vedel reseni urcite ho sem dejte, v budoucnu se to hodi. mam dalsi blbost. dostavam z jednoho externiho softu informace v teto podobe. Kód: Oops, typetag lacks the magic ,
['1.2 -1119740533 0: 0, 0, "" (-1.000000, -1.000000) [0.000000, 0.000000]\r\n', '2 -1119709002 0: 0, 0, "" (-1.000000, -1.000000) [0.000000, 0.000000]\r\n'] kde veta "Oops, typetag lacks the magic ," znamena ze code kterej prisel nema kouzelne sluvko "," no a zbytek je strasne divne napsanej seznam a jedne velke hodnote ASCI. vsechny ty zavorku a jiny znaky co by clovek normalne predpokladal ze bude treba podseznam, tak sou string. otazka zni jak ze seznamu vybrat string aby z nej byl string a ja ho potom mohl rozkuchat pomoci split.string. jm |
Autor: | Ash [ pon srp 22, 2005 9:39 am ] |
Předmět příspěvku: | |
K prvej otázke: Rýchly hack - namiesto pôvodnej porovnávacej podmienky tam dať: Kód: if x != y and posx == posy: - problém je, že porovnanie každej dvojice sa robí 2-krát. Preto by bolo vhodnejšie to urobiť cez indexy:Kód: for x in range(1, len(vsechny)):
posx = vsechny[x].getPosition()[0]# vybere X souradnici for y in range(x): posy = vsechny[y].getPosition()[0] if posy == posx: print "nasel" Vyniesť výsledok mimo for sa dá tým, že pred for si vytvoríš premennú s počiatočnou hodnotou, do ktorej vo vnútri for priradíš požadovanú hodnotu. K druhej otázke: Ten citovaný text je hláška Pythonu, že nedokáže vyhodnotiť uvedený výraz - chyba by teda mala byť niekde pred tým, kde je tento výraz vytváraný. Ale nerozumiem okolnostiam, takže neviem povedať nič bližšie. |
Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |