Open dz0 opened 9 years ago
Gal galėtum nurodyti konkrečią vietą? Būtų lengviau aptarti.
Tuo tarpu, štai du pavyzdžiai iš kurių pirmasis naudoja generatorius, antrasis nenaudoja generatorių:
def sąrašas():
for i in range(3):
yield i
a, b, c = sąrašas()
def sąrašas():
rezultatas = []
for i in range(3):
rezultatas.append(i)
return rezultatas
a, b, c = sąrašas()
Pirmasis variantas man atrodo labiau skaitomas ir švaresnis. Generatoriai Python kalboje yra vienas iš tų dalykų, kurie daro Python tokia gera kalba.
yield pastebėjau , bei "next()" nebuvau anksčiau susidūręs.. keistai pasirodė: return list(map(int, next(lines).split()))
Mokymo programa yra gal 15m senumo, tai mokyloj akcentas - struktūrinis programavimas, masyvų tvarkymo algoritmai.
nors su C++ leidžia naudot STL'o "sort(..)", bet dažniausiai ciklus suka "rankiniu" būdu...
siūlyčiau bent kol kas to prisilaikyti :) ir list comprehension kol kas gal reiktų vengti, nes kodo struktūra neįprastai atrodo (apsukta)... ir be "map" (funkcinis programavimas) gal kol kas (arba komentare paminėt, ką jis padaro)..
4tad gal C++ sprendimų parinkčiau (kaip tik 12tokai sprendžia) -- kur juos geriausia dėti?
4tad gal C++ sprendimų parinkčiau (kaip tik 12tokai sprendžia) -- kur juos geriausia dėti?
Ar tie sprendimai bus būtent egzaminų užduočių sprendimai? Gal kur nors, kas nors yra paskelbęs C++ arba Pascal pavyzdžius egzaminų užduočių? Šioje repozitorijoje siūlau koncentruotis tik į egzaminų užduočių sprendimus išspręstus naudojant Python. Kitomis programavimo kalbomis atliktus sprendimus galim laikyti kur nors kitur ir juos naudoti kaip pavyzdį, tobulinant Python sprendimus.
Dėl tavo minėtų pastabų, bandysiu patobulinti kurį nors vieną sprendimą, atsisakant generatorių, sąrašo užklausų ir funkcinio programavimo elementų.
@dz0 iškėliau atskirus klausimus į atskiras užduotis. Dėl failų skaitymo, žiūrėk #3 .
galima daryti po 2 sprendimo versijas: tradicinę (be Py patogumų) ir modernią, pvz: u1.oldschool.py u1.modern.py
@dz0 pritariu, aš taip pat esu galvojęs, kad būtų visai gerai pateikti kelis sprendimo variantus.
Šis projektas praverstų demonstruojant Python informatikos mokytojų bendruomenei. Bet, kad būtų lengviau suprasti, siūlau nenaudoti keistesnių Python savybių (generatorių ar pan..).. Na nebent lengvai suprantamas, kaip a, b = b, a.
Kaip tik esu padaręs orientacinę Paskalio, mokyklinės C++, Python palyginimo lentelę -- gal praverstų :) https://drive.google.com/open?id=1MvrsRaYLX-230yb7WoF_E-Wwj5kKcHLLWjhkTsyyob8&authuser=0