Diskuze: Pomoc -- Vysvětlení kódu
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>


Zero = ["  ***  ",
        " *   * ",
        "*     *",
        "*     *",
        "*     *",
        " *   * ",
        "  ***  "]
One = [" * ", "** ", " * ", " * ", " * ", " * ", "***"]
Two = [" *** ", "*   *", "*  * ", "  *  ", " *   ", "*    ", "*****"]
Three = [" *** ", "*   *", "    *", "  ** ", "    *", "*   *", " *** "]
Four = ["   *  ", "  **  ", " * *  ", "*  *  ", "******", "   *  ",
        "   *  "]
Five = ["*****", "*    ", "*    ", " *** ", "    *", "*   *", " *** "]
Six = [" *** ", "*    ", "*    ", "**** ", "*   *", "*   *", " *** "]
Seven = ["*****", "    *", "   * ", "  *  ", " *   ", "*    ", "*    "]
Eight = [" *** ", "*   *", "*   *", " *** ", "*   *", "*   *", " *** "]
Nine = [" ****", "*   *", "*   *", " ****", "    *", "    *", "    *"]
Digits = [Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine]
try:
    digits = sys.argv[1]
    row = 0
    while row < 7:
        line = ""
        column = 0
        while column < len(digits):
            number = int(digits[column])
            digit = Digits[number]
            line += digit[row] + " "
            column += 1
        print(line)
        row += 1
except IndexError:
    print("použití: bigdigits.py <číslo>")
except ValueError as err:
    print(err, "v", digits)Ahoj,
knihu nemám, ale z kódu je partné, že jde o převod Tebou zadaných
čísel na jejich grafické zobrazení pomocí hvězdiček a mezer.
Každé číslo má definovanou grafiku, uloženou v seznamech Zero,
One,....., které jsou uloženy do seznamu Digits.
Tebou zapsané číslo (argument při spouštění skriptu) se uloží do
proměnné digits.
Cyklus
while column < len(digits):je určen délkou argumentu, tj. počtu číslic tebou zadaného čísla. V
něm se zadaný argument (proměnná digits, která je pythonem
uložena jako String) převeden na int => proměnná number. Ta pak
slouží pro výběr ekvivalentní položky ze seznamu Digits (číslo
0 = Zero, 1 = One,...) => proměnná digit.
Grafika každého čísla je daná sedmi položkami (řádky), které je
potřeba projít a vykreslit (
while row < 7:), v něm se vždy vypíše grafika řádku daného čísla print(line).
Když zadáš do argumentu jednu číslici (např. 0), projdou cykly pouze
seznam Zero a do každého řádku se vypíše jedna položka tohoto
seznamu.
Když zadáš dvě číslice (např. číslo 12), začnou se do prvního řádku
vypisovat první položky položky ze seznamů One a Two, do
druhého řádku druhé položky z těchto seznamů,.... až do konce (tj.
sedmých položek).
Doufám, že je Ti to jasnější a že jsem Ti nezamotal hlavu ještě
více.
Možná napiš, co konkrétně Ti na kódu není jasné.
 
						Zobrazeno 4 zpráv z 4.
