Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 25.11.13
Príspevky: 6
Témy: 3
Príspevok NapísalOffline : 12.10.2013 14:19

Zdravím, som v Pythone začiatočník a potreboval by som radu.

Kód:
def zadanie_cisla(cislo):
    pass   

def spravny(cislo):
    if cislo<1:
        print('nie je spravne')
    else:
        print('spravne')


zadanie_cisla(int(input('zadaj cislo: ')))
spravny(cislo)

Popíšem to: mám 2 funkcie - zadanie_cisla (do ktorého musím zadať číslo) a funkciu spravny(), ktorá to číslo musí vyhodnotiť. Problém mám s tým ako použiť to zadané číslo v druhej funkcii. Upozorňujem, že to takto musí byť rozdelné - nemôžem to dať do 1 funkcie. Dá sa to vôbec nejako ? Alebo ako zadať parametre tak, aby to šlapalo ako má.

Ak by mi niekto vedel pomôcť budem vďačný, trápim sa s tým už asi 4 hodiny..


Naposledy upravil Ďuri dňa 12.10.2013 14:50, celkovo upravené 1
[code]


Offline

Užívateľ
Užívateľ
[Python]Ako spraviť z lokálnej premennej globálnu

Registrovaný: 27.12.08
Prihlásený: 13.12.22
Príspevky: 1874
Témy: 96
Bydlisko: Bratislava,...
Príspevok NapísalOffline : 12.10.2013 14:41

Č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 :)







_________________
~Listen to your brain, not your heart~
NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot)
NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 25.11.13
Príspevky: 6
Témy: 3
Príspevok Napísal autor témyOffline : 12.10.2013 18:31

Ďakujem Ti, že si sa hneď pokúsil pomôcť ale ja som sa nevyjadril celkom presne čo plánujem robiť ...

Dúfal som, že sa vyhneš return -u, pretože cez tento príkaz to asi nepôjde.

Problém je v tom, že ja pri zadaní čísel nebudem zadávať iba 1 číslo ale 2 čísla a neskôr v programe budem musieť s týmito číslami pracovať. Problém číslo 2 - funkcia sa musí dať spustiť cez shell ručne - tak že zadám zadanie_čísla(20, 189) a program začne hneď porovnávať čísla 20 a 189 podľa tej podmienky if.

Skúsim to ešte raz zhrnúť - potrebujem 2 funkcie (zadaj_cisla, spravny). Funkcia zadaj_cisla sa bude spúšťať cez shell s 2 ľubovoľnými parametrami - takže do shellu zadám napr. zadaj_cisla(15,84) a potom pomocou funkcie spravny porovnám tieto čísla s podmienkou (teda či sú väčšie ako 0).

Vieš mi prosím ešte nejako pomôcť ?


Offline

Užívateľ
Užívateľ
[Python]Ako spraviť z lokálnej premennej globálnu

Registrovaný: 27.12.08
Prihlásený: 13.12.22
Príspevky: 1874
Témy: 96
Bydlisko: Bratislava,...
Príspevok NapísalOffline : 12.10.2013 19:20

Cize ak to spravne chapem tak funkcia zadanie_cisla dostane variabilny pocet parametrov a na kazdy z nich spusti funkciu spravny?

Kód:
def zadaj_cisla(*args):
    for arg in args:
        spravny(arg)

def spravny(cislo):
    if cislo < 1:
        print('nie je spravne')
    else:
        print('spravne')

>>>zadaj_cisla(0,1,2,-1)
nie je spravne
spravne
spravne
nie je spravne







_________________
~Listen to your brain, not your heart~
NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot)
NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 25.11.13
Príspevky: 6
Témy: 3
Príspevok Napísal autor témyOffline : 12.10.2013 20:08

nBXXL - Ďakujem Ti veľmi pekne, nie je to presne čo som chcel, ale z tohto si to už veľmi ľahko vyvodím. Ani nevieš ako veľmi si mi pomohol..


Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Návod: Ako si spravit doma zmrzlinu original ako z obchodu?

v Jedlo, pitie a varenie

7

4077

22.08.2009 15:55

david3504 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako to spravit ?

v Siete

1

534

18.08.2008 22:32

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako odoslat hodnotu premennej pomocou formulara?

v PHP, ASP

3

1040

12.10.2011 17:12

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako spravit nieco taketo???

v JavaScript, VBScript, Ajax

7

963

06.02.2009 14:31

max-m Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako to mam spravit??

v Počítačové hry

9

944

08.07.2007 14:07

rado1121 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako spraviť editovateľný footer?

v Redakčné systémy

7

726

04.07.2012 23:47

m1roslav Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako spraviť diskusné forum

v Redakčné systémy

1

678

28.05.2007 20:14

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako spraviť web server

v Ostatné

10

2699

16.09.2017 22:40

ejv Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako si to spraviť?

v Redakčné systémy

1

540

13.06.2007 17:23

Flety Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako spravit www - FAQ...

v HTML, XHTML, XML, CSS

2

1189

20.11.2006 19:58

Kcnk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako spravit galeriu obrazkov

v JavaScript, VBScript, Ajax

0

492

27.02.2010 15:47

Pades Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako spravit fake index ?

v PHP, ASP

6

909

04.09.2008 22:58

matto71 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako najrýchlejšie spraviť komentáre?

v Ostatné

1

696

09.12.2009 20:07

tomxi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako spravit preklikavaci obsah

v JavaScript, VBScript, Ajax

1

430

04.09.2012 22:13

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako uložiť JS hodnotu do PHP premennej?

v JavaScript, VBScript, Ajax

1

469

21.11.2013 22:10

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako spravit doma dusikove chladenie?

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Chladiče a všetky druhy chladenia

32

4469

05.08.2007 17:44

borec Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra