VIM pradmenys

Pirmoji (ir didžiausia) problema naudojant VIM - žmonės neturi žalio supratimo kaip jį išjungti. Tą puikiai iliustruoja StackOverflow statistika

Užbėgsiu įvykiams už akių, ir pasakysiu, kad norint išeiti reikia įvesti :q. Norint tuo pačiu išsaugot pakeitimus :wq. Norint atversti kitą failą :e <failas> arba :o <failas>.

Grįžtant prie pačių ištakų, tai VIM pasižymi tuo, kad turi rėžimus. Rėžimų yra pakankamai daug, bet svarbiausi turbūt: Normal, Insert ir Visual.

Normal yra skirtas navigavimui po kodą ir tuo ...

pradmenys vim


Neįtikėtinai paprastas deploymentas

Intro

Deploymentas - procesas kurio metu progresas kurį atlikote savo kompiuteryje, galiausiai atsiduria serveryje. Dažnai žmonės (įskaitant ir mane) ignoruoja jį iki pat lemiamo momento.

Žinoma, galima viską atlikti rankomis... Bet taip sukuriame daugiau galimybių klaidoms atsirasti, priedo procesas ilgainiui gali tapti ilgas ir sudėtingas.

Pasiruošimas

Rekomenduotina, jog būtų paruoštas prisijungimas be slaptažodio - tai gerokai supaprastins procesą.

Sekantis žingsnis - instaliuoti nuostabų įrankį: PyInvoke. Jeigu turite pip, tai galite atlikti tiek visoje sistemoje, tiek virtualenv: pip install ...

pradmenys python unix


Django ir AngularJS sąjunga

Kodėl ši sąjunga reikalinga?

Ankščiau ar vėliau susiduriame su situacija, kai norime atlikti veiksmą neperkraunant puslapio. Priežasčių tam gali būti įvairių, tačiau norint atitikti vartotojų lūkesčius, seni geri formų metodai jau nebėra veiksmingi.

Problematika

Tiek Django tiek AngularJS turi labai panašų tikslą - sukurti lengvai prižiūrimą, aiškiai strukturizuotą kodą kuris leis deramai kontroliuoti puslapio vystymąsi. Netgi idealogija panaši - MVC (Model View Controller). Natūralu, jog bandant sulieti du( nors technologiškai skirtingus, bet to paties siekiančius) frameworkus, iškyla ...

python web django javascript angular


Paprasti rikiavimo algoritmai

Šie algoritmai nėra labai praktiški, nes didžioji dalis kalbų turi realizavus savo, optimizuotus algoritmus, taigi prasmės kurti savo - mažai. Bet žinoti jų veikimo principą pravartu, todėl jie yra dažnai naudojami kaip po egzaminių, atsiskaitymų, mokomosios užduotys. Keturi populiariausi algoritmai yra Bubble sort, selection sort, quick sort ir merge sort. Pirmi du algoritmai dažniausiai naudojami pradmenims išdėstyti, o quickir mergetinkamai realizuoti gali būti pakankamai efektyvūs netgi pritaikant rimtiems uždaviniams :) Ši pamoka aprašys pirmus du ...

pradmenys python rikiavimas


Minimalistinis Web Puslapis: Flask

Platesnė dokumentacija: Flask

Kodėl Flask?

Flask yra minimalistinė biblioteka. Tai yra tuo pačiu gerai, ir blogai.

Geroji pusė - lengva suvokti kaip tai veikia, iškilusias problemas lengva spręsti. Taip pat, paprastumas leidžia tapti puikiu pagrindu mikroservisų architektūrai vystyti. Greita, lengva biblioteka.

Blogoji - mažai padaro "už tave", padengia esminį funkcionalumą, visa kita - reikia daryti sava galva.

Iš esmės, tai Flask rekomenduočiau pradedantiesiems. Nors ir kažką veikiančio sukurti užtrunka šiek tiek ilgiau, tačiau tokioje mažoje bibliotekoje pasiklysti kur ...

python web flask


SpriteSheet generavimas

Taigi susidūriau su viena, gan dažna problema: reikia vadinamo sprite sheet'o, o gavau krūvą paveikslėlių. Kas yra sprite sheet? į vieną paveikslėlį sutalpinta krūva kitų paveikslėlių (dažniausiai pagal kažkokią prasmę).

Sprendimas ganėtinai paprastas, taigi pasidalinsiu.

Pirmas žingsnis - įsirašyti Pillow biblioteką:

pip install pillow

Dabar mes jau galime užkrauti paveikslėlį ir jį peržiūrėti:

from PIL import Image

def load_img(src):
    return Image.open(src)

img = load_img("img/test.png")
img.show()

Taip pat lengvai galime ...

žaidimai python generavimas generatorius paveikslėliai


Paprasto puslapio sukūrimas

Taigi, šį kartą pabūsiu šiknius, ir pareklamuosiu savo kuriamą frameworką :) Tikiuosi už tai nieks nepyks.

Reikalavimai

  • Python 3.4+ versija
  • pip

Pasiruošimas

Instaliuojame wutu: pip install wutu

Sukuriame bazinį htmlfailą:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    Hello, world!
</body>
</html>

WebServeris

Na va, pagaliau galim pradėti kodinti. Pirmas žingsnis - paleisti servuką:

from wutu import Wutu

app = Wutu(index="index ...

pradmenys python wutu web


Paprasta userio teisių tikrinimo sistema - Python Decorator

Šis straipsnis pusiau skirtas supažindinti su galingu Pythonkalbos įrankiu vadinamu decorator, tuo pačiu parodyt vieną naudingą dizaino sprendimą.

Pradedam palengva - susikuriam primityvią vartotojo klasę, kuri viso labo sugeba pasakyti ar tai administratorius

class User(object):
    admin = false

    def is_admin(self):
        return self.admin

Toliau sukuriame įsivaizduojamą servisą

class Service(object):
    session = User()

    def home(self):
        return "Hello!"

    def restricted(self):
        return "Only admin should be here. Please go away"

Kaip matome, į vieną metodą ...

python decorator


Dockeris

Kas tai?

Sparčiai populiarėjanti technologija, taigi vis dažniau tenka girdėti šitą buzzword'ądarbo vietoje, ar draugų tarpe, bet kas per velnias tai yra? Jeigu teko dirbti su virtualiom mašinom, vadinasi su dalim to teko susidurti.

Dockeris spręndžia šias problemas:

  • "Veikia ant mano kompo" - Jūs sukuriate virtualią aplinką nurodydami konkrečias programas, jų versijas ir garantuojate, kad atitinkant visas šias griežtas sąlygas - viskas veiks. Projekto paleidimas gali būti gan sudėtingas, bet šitaip bent jau yra instrukcija ...

pradmenys unix docker


Žodžių išrinkimas iš teksto

Reiktų pradėti nuo to, kad ši problema nėra lengvai išspręndžiama, nėra jokio tikslaus algoritmo kuris tai atliktų. Tačiau yra gan neblogų bandymų :)

Pirmas žingsnis - skaldyti tekstą per tarpus

def get_words(raw):
    return raw.split(" ")

Duodam "Labas rytas", rezultatas => ['labas', 'rytas']. Puiku! Atrodo, kad nieko daugiau daryti nebereikia :) Bet pabandome kiek įdomesnį variantą: "Labas rytas, gerbiamas prof.!" ir gauname => ['labas', 'rytas,', 'gerbiamas', 'prof.!'].

Pašalinti šiems pertekliniams simboliams naudojamas metodas strip (kitose kalbose dažnai vadinamas ...

pradmenys python nlp