Čo sa snažíš spraviť? Funkciu na zadanie čísla a overenie? Lebo momentálne tvoja funkcia "zadanie_cisla" nerobi nič (pass).. A navyše v otázke sa pýtaš ako z lokálnej premennej spraviť globálnu, no nikde si tam nevytvoril ani len lokálnu premennú...
Takže, skúsim tvoj kód upraviť, nech sa tvári trocha rozumnejšie.. Začnem s funkciou zadanie_cisla.. Upravim to tak, nech ta funkcia skutocne vyhodnocuje zadanie cisla a jej navratovou hodnotou bude zadane cislo..
Kód:
def zadanie_cisla():
return int(input('Zadaj cislo: '))
Funkcia spravny je potom v principe v pohode.... Ten kus kodu dole potom mozes prepisat napr. takto:
Kód:
spravny(zadanie_cisla())
Alebo ked chces pouzit lokalne premenne, tak:
Kód:
cislo = zadanie_cisla()
spravny(cislo)
Ani pri tomto pristupe vsak nepotrebujes globalnu premennu, kedze premennu cislo si posuvas ako parameter funkcie spravny.. Kebyze je funkcia spravny() bez-parametrova (teda zapisana ako "def spravny():"), tak by premenna cislo musela byt globalna... Prepis funkcie spravny na pouzivanie globalnej premennej by vyzeral takto:
Kód:
def spravny():
global cislo
if cislo < 1:
print('nie je spravne')
else:
print('spravne')
Cely kod by potom bez pouzitia premennych vyzeral takto:
Kód:
def zadanie_cisla():
return int(input('zadaj cislo: '))
def spravny(cislo):
if cislo < 1:
print('nie je spravne')
else:
print('spravne')
spravny(zadanie_cisla())
s pouzitim globalnej premennej by vyzeral napr. takto:
Kód:
cislo = -1
def zadanie_cisla():
global cislo
cislo = int(input('zadaj cislo: '))
def spravny():
global cislo
if cislo < 1:
print('nie je spravne')
else:
print('spravne')
zadanie_cisla()
spravny()
Podla mna zapis bez globalnych premennych je krajsi, a pokial nemam nejaky explicitny dovod preco pouzit globalnu premenne, snazim sa im vyhybat...
A este jedna taka mala rada do buducnosti: Kod na tomto fore pis do tagov
Kód:
[code][/code]
, potom v nom mozes aj zachovat odsadenie a lahsie sa cita