| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 06.05.13 Prihlásený: 25.11.13 Príspevky: 6 Témy: 3 | Napísal freeze: 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] |
|
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 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) |
|
Registrovaný: 06.05.13 Prihlásený: 25.11.13 Príspevky: 6 Témy: 3 | Napísal autor témy freeze: 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ť ?
|
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 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) |
|
Registrovaný: 06.05.13 Prihlásený: 25.11.13 Príspevky: 6 Témy: 3 | Napísal autor témy freeze: 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..
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Návod: Ako si spravit doma zmrzlinu original ako z obchodu? v Jedlo, pitie a varenie | 7 | 4077 | 22.08.2009 15:55 david3504 | | Ako to spravit ? v Siete | 1 | 534 | 18.08.2008 22:32 shiro | | Ako odoslat hodnotu premennej pomocou formulara? v PHP, ASP | 3 | 1040 | 12.10.2011 17:12 Blackshadow | | ako spravit nieco taketo??? v JavaScript, VBScript, Ajax | 7 | 963 | 06.02.2009 14:31 max-m | | ako to mam spravit?? v Počítačové hry | 9 | 944 | 08.07.2007 14:07 rado1121 | | Ako spraviť editovateľný footer? v Redakčné systémy | 7 | 726 | 04.07.2012 23:47 m1roslav | | ako spraviť diskusné forum v Redakčné systémy | 1 | 678 | 28.05.2007 20:14 JanoF | | Ako spraviť web server v Ostatné | 10 | 2699 | 16.09.2017 22:40 ejv | | ako si to spraviť? v Redakčné systémy | 1 | 540 | 13.06.2007 17:23 Flety | | ako spravit www - FAQ... v HTML, XHTML, XML, CSS | 2 | 1189 | 20.11.2006 19:58 Kcnk | | Ako spravit galeriu obrazkov v JavaScript, VBScript, Ajax | 0 | 492 | 27.02.2010 15:47 Pades | | Ako spravit fake index ? v PHP, ASP | 6 | 909 | 04.09.2008 22:58 matto71 | | Ako najrýchlejšie spraviť komentáre? v Ostatné | 1 | 696 | 09.12.2009 20:07 tomxi | | Ako spravit preklikavaci obsah v JavaScript, VBScript, Ajax | 1 | 430 | 04.09.2012 22:13 emer | | Ako uložiť JS hodnotu do PHP premennej? v JavaScript, VBScript, Ajax | 1 | 469 | 21.11.2013 22:10 BX | | Ako spravit doma dusikove chladenie? [ Choď na stránku: 1, 2 ] v Chladiče a všetky druhy chladenia | 32 | 4469 | 05.08.2007 17:44 borec |
| 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
|
|