Diskuze: Funkce-rada pro nováčka
Zobrazeno 6 zpráv z 6.
Python moc neznam. Takze neco vim a neco je s pomoci google. S trochou stesti to bude fungovat.
def utok(hrac1, hrac1):
neco_proved()
return hrac1
hrac1 = utok (hrac1, hrac2)
Nebo to uloz do pole a predavej indexy. Tady mas 2 moznosti, jak by to v Py mohlo fungovat.
class Hrac:
def __init__(self, x, y):
self.x = x
self.y = y
def utok(a, b):
global pole
pole[a] = neco_proved()
pole[b] = neco_proved()
def obrana(pole, a, b):
pole[a] = neco_proved()
pole[b] = neco_proved()
return pole
pole = array()
pole.insert(Hrac(1, 2))
pole.insert(Hrac(3, 4))
utok(0, 1)
pole = obrana(pole, 0, 1)
Jo, a bylo by fajn, kdybys kod psal do code bloku, tlacitko editoru </>
díky, ale asi to úplně není řešení, které jsem hledal
Obavam se, ze mimo ty 2 zpusoby, neni dalsi, jak pracovat s globalni promenou
mimo funkci. Bud ji funkci predas a nebo tam mas global. A je mozne, ze to mam
ze starych stranek, stary python. Ze se ani to 'global' tam nemusi psat.
Ale necham se prekvapit, treba nekdo s necim prijde
Zkus použít třeba slovník.
příklad:
hrac = {
"utok": 15,
"obrana": 10,
"zivoty": 100
}
print(hrac)
print(hrac["utok"])
Nebo se podívej tady na OOP (objektové programování) vytvoříš třídu, kde budeš mít jak proměnné, tak funkce pro práci s proměnnými.
Chybu ti to vyhodí preto, že každá premenná má svoj tzv. scope. Niečo ako životný priestor, v rámci ktorého táto premenná existuje a dokážeme s ňou v programe pracovať. Ako ale program pokračuje a dostane sa postupne von z toho scopu, tak premenná stráca svoju platnosť, zaniká, nie je prístupná, čáry máry fuč.
def foo():
prem = "foo"
print("Fungujem: ", prem)
if True:
print("Aj tu fungujem: ", prem)
druhaPrem = "bar"
print("Fungujem: ", druhaPrem)
print("Vyhodím chybu: ", druhaPrem)
print("Vyhodím chybu: ", prem)
Pokiaľ chceš mať zatiaľ oddelenú premennú na všetko, môžeš to spraviť takto:
bar = "bar"
def foo():
global bar
bar = "foo"
foo()
print("Vypíše foo: ", bar)
Pogoogli a pohraj sa s tým, aby si sám zistil, ako to zhruba funguje.
Odporúčam ti ale použiť skôr slovníky, ako ti napísal možná zítra a postupne prejsť na objekty.
Zobrazeno 6 zpráv z 6.