Portál AbcLinuxu, 1. června 2025 02:55


Dotaz: Variabilné v Pythone

17.7.2009 00:15 Peto2
Variabilné v Pythone
Přečteno: 186×
Odpovědět | Admin
Zdravím, neviem si rady ako sa v Pythone môže zapísať takéto dačo:
i=0
while i!=5
   tmp(i)=10
   i +=1
Tým pádom mi vznikne tmp0, tmp1, tmp2, tmp3, tmp4 kde každému bude priradená hodnota 10. Problémom je, že mi to nechce tú variabilnú neznámu spraviť. Dopátral som sa iba k tomu, že niekdo to rieši cez slovník, ale chcem sa uistiť že či to nejde aj ľahšie.

Vďaka
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.7.2009 01:08 martin
Rozbalit Rozbalit vše Re: Variabilné v Pythone
Odpovědět | | Sbalit | Link | Blokovat | Admin

tmp ma byt pole(seznam)?

Python pouziva pro pole hranate zavorky []

Pokud jde jen o inicializaci pole tmp na pet polozek a kazda polozka ma obsahovat 10, tak staci tento vyraz v Pythonu:

 

tmp = [10] * 5

17.7.2009 01:10 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Variabilné v Pythone
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takže ty chceš dynamicky vytvářet proměnné? Proč? Právě od tohohle pole a slovníky jsou.

Ale jestli chceš doopravdy vytvářet proměnné... Existují lokální a globální proměnné. Také existují atributy objektů (i modul je objekt). Globální proměnné jsou atributy modulu, ve kterém se daný kód nachází. Lokální proměnné jsou proměnné uvnitř funkce. Slovník s lokálními proměnnými lze získat funkcí locals, ale tento slovník by se neměl zvenčí měnit. Pomocí funkce globals můžeš získat slovník s globálními proměnnými, ten můžeš měnit:
>>> i = 3
>>> globals()["tmp%d" % i] = 10
>>> print tmp3
10
Takové prasárny ale prosím nedělej. Pokud to jde vyřešit polem nebo slovníkem, vyřeš to polem nebo slovníkem. I seznam lokálních nebo globálních proměnných je v podstatě slovník.

Atributy objektů lze nastavovat pomocí setattr. Také můžeš v případě opravdu nejvyšší nouze použít eval.
17.7.2009 09:24 l4m4
Rozbalit Rozbalit vše Re: Variabilné v Pythone
Odpovědět | | Sbalit | Link | Blokovat | Admin
Stejná otázka tu byla předevčírem:

http://www.abclinuxu.cz/poradna/programovani/show/271391

Ani jsi nemusel používat hledání, abys ji našel, stačilo se podívat na posledních pět dotazů v programovacím fóru.

Jinak lehčeji to samozřejmě jde, a to použít obyčejný seznam. Proč bys měl vyrábět blbosti jako tmp(i) když téměř stejně funguje tmp[i].
17.7.2009 15:02 Peto2
Rozbalit Rozbalit vše Re: Variabilné v Pythone
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ďakujem za rady, pochopil som. Ospravedlňujem sa, nevšimol som si ten dotaz v diskusií.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.