Aj na modernej lodi CNS Josef Verich sa prejavil nedostatok IT vývojárov. Vďaka tomu sa dostal vývoj generátora prístupových kódov pre satelitné pripojenie na plecia mačky hlavného dôstojníka. Máme zdroják v Pythone a úlohu dopátrať kód. Dostávame radu, že síce mačky sú veľmi milé, štúdie ale preukázali, že nie sú dobrými vývojármi.
Máme dva súbory používajúce okrem pythonu prevažne mačacie názvy:
- meow.py - knižnica s funkciami meow a meowmeow
- meowmeow.py - hlavný program
Moje začiatočnícke vedomosti jazyka Python sa aspoň rozšíria analýzou tohto kódu, ale bude to otravné pre vás, čo ho ovládate :-)
1. Hlavný program
najskôr zanalyzujem, čo robí meowmeow.py, zas ma prenasledujú tie mačky:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
meow meow meow
"""
from meow import meow, meowmeow
def meoow():
"""
meoow
"""
meoword = ''
while meoword != 'kittens':
meoword = input('Who rules the world? ')
if meoword in ['humans', 'dogs']:
print('MEOW MEOW!')
print(meowmeow(meow(sum([ord(meow) for meow in meoword]))))
if __name__ == '__main__':
meoow()
Po bežných komentároch (ozn. #) tu je blok medzi troma úvodzovkami, tzv docstrings , náhradné riešenie nepodporovaných viac-riadkových komentárov v Pythone.
from meow import meow, meowmeow - chce použiť funkcie z tejto knižnice (modulu)
Potom je tu funkcia a na konci je podmienka, ktorá túto funkciu zavolá:
if __name__ == '__main__' - táto podmienka sa používa na spúšťanie kódu, ak je zdrojový kód zavolaný priamo. Obsah tejto podmienky sa nevykoná, ak sa kód pripája ako modul k inému.
Púšťame teda funkciu meoow() zadefinovanú uprostred tohto kódu. Funkcia najskôr obsahuje kód, ktorý sa pýta odpoveď na otázku kto vládne svetu:
if meoword in ['humans', 'dogs']:
print('MEOW MEOW!')
Ďalší príkaz je ten, ktorý zoberie slovo "kittens" a mal by nám vrátiť kód (predpokladám), avšak okrem mňaukania zamrzne.
print(meowmeow(meow(sum([ord(meow) for meow in meoword]))))
2. Knižnica meow.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
meow
"""
UNITE = 1
UNITED = 2
meeow = [
[80, 81],
[-4, 13],
[55, 56],
[133, 134],
[-8, -7, -5],
[4, 5],
[5, 6],
[6, 7],
[7, 8],
[15, -1],
[11, 12],
[13, 14],
[17, 18],
[18, 19],
[15, 21],
[22, 23],
[26, 27],
[44, 45],
[48, 49],
[31, -29],
[50, 51],
[60, 61],
[72, 73],
[73, 74],
[19, 2, 20]]
def meow(kittens_of_the_world):
"""
meowwwwww meow
"""
print('meowwww ', end='')
if kittens_of_the_world < UNITED:
return kittens_of_the_world
return meow(kittens_of_the_world - UNITE) + meow(kittens_of_the_world - UNITED)
def meowmeow(meow):
"""
meow meow meow
"""
meeoww = ''
for meoww in meeow:
print('meowwww ', end='')
meeoww = f"{meeoww}{chr(int(''.join(str(meow)[m] for m in meoww)))}"
return meeoww
vystup = ''
for meoww in meeow:
vystup = f"{vystup}{chr(int(''.join(str(vstup)[m] for m in meoww)))}"
return vystup
3. Vlastný výpočet Fibonacciho
def meow(vstup):
n1 = 0
n2 = 1
vysledok = 0
while vstup > 1:
vysledok = n1 + n2
n1 = n2
n2 = vysledok
vstup -= 1
return vysledok
print(meow(770))
Žiadne komentáre:
Zverejnenie komentára