python zádrhel #2 Vyřešeno

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

funnyman
nováček
Příspěvky: 33
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

python zádrhel #2

Příspěvekod funnyman » 07 srp 2013 14:40

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.

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: python zádrhel #2

Příspěvekod CZechBoY » 07 srp 2013 15:08

č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: březen 13
Pohlaví: Muž
Stav:
Offline

Re: python zádrhel #2  Vyřešeno

Příspěvekod funnyman » 07 srp 2013 15:13

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


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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti