python zádrhel #2

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Zamčeno
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

python zádrhel #2

Příspěvek od funnyman »

Ahoj, poraďte mi prosím kde je tady chyba:

Kód: Vybrat vše

from sys import argv

def createListFromZeroTo():
    script, MaxNumber = argv
    i = 0
    numbers = []
    while i < MaxNumber:
       print "at the top i is", i
       numbers.append(i)
        
       i += 1
       print "numbers now", numbers
       print "at the bottom i is", i
        
    print "the numbers:"

    for num in numbers:
        print num
        
createListFromZeroTo()
když nastavím nejvyšší číslo, do kterého má smyčka čísla jedno po druhém do seznamu přidávat napevno, např. 5, funguje to. Když nechávám číslo zjistit pomocí argv, tak to běží do nekonečna. Přitom když si před while-loop zkusím vytisknout to číslo (print MaxNumber), normálně ho to vypíše.
Je to určitě nějaké hloupé přehlédnutí. Díky za pomoc
Naposledy upravil(a) funnyman dne 07 srp 2013 15:08, celkem upraveno 1 x.
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: python zádrhel #2

Příspěvek od CZechBoY »

čau,
není argv náhodou pole?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: python zádrhel #2

Příspěvek od funnyman »

argv vezme parametr, který napíšeš za jméno souboru při jeho spouštění. v tomhle případě jej spouštím jako "python CestaKSouboru/jmenoSouboru.py 5". argv pak funguje tak, že "script" bývá název souboru (to tam, myslím, musí vždycky být, i když ho pak nevyužiješ), a pak si nastavíš proměnnou, která bere tu informaci z parametru při spouštění souboru, v tomhle případě MaxNumber.
Argv v tomhle případě funguje, když udělám jednoduchý soubor takto:

Kód: Vybrat vše

from sys import argv

def NapisCislo():
    script, MaxNumber = argv
    print MaxNumber

NapisCislo()
...vypíše to cokoliv, co je do MaxNumber zadané. Což mě teď připomíná, že možná bych mohl pythonu říct, že se jedná o číslo...

--- Doplnění předchozího příspěvku (07 Srp 2013 15:15) ---

aha, ano, bylo to tím. stačilo doplnit "MaxNumber = int(MaxNumber)"
tak je to vyřešené. díky za pomoc :)
Zamčeno

Zpět na „Programování a tvorba webu“