A következő címkéjű bejegyzések mutatása: Ajánló. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: Ajánló. Összes bejegyzés megjelenítése

2012. augusztus 30.

Python 3 alapok

Gyakori kérdés hogy milyen programnyelvet érdemes tanulni. Minden nyelvnek vannak előnyei és hátrányai. Vannak megrögzött hívei a Logónak, Pascalnak, Basicnek, és talán még az Assemblynek is, miközben sokkal menőbb inkább PHP-t vagy éppen Java-t tanulni. Ezek viszont sokkal kevésbé hasonlítanak a klasszikus programozásra. Persze nekem is van a saját kedvencem, én Python ajánlok mindenkinek, és ennek a használatához szeretnék kedvet csinálni...

Miért pont Python?

A 3-as változat hivatalosan is használható az érettségin, és a behúzásos szintaktika egyszerű és könnyen tanulható, követhető. A karakteres felülettel a klasszikus nyelvekhez hasonlóan lehet dolgozni, az interaktív Python pedig mindent megad amit egy Logó tudna. Lehetőség van fordított kód készítésére de a forráskód közvetlenül is futtatható. A képességeihez még a gazdag funkciókészlet is hozzájárul, mindezek ellenére a nyelv nem számít igazán lassúnak sem. (v.ő.: Java, PHP) Végezetül pedig a nyelvet megtanulóknak szinte korlátlan fejlődési lehetőségeik vannak mind a web mind az asztali alkalmazások irányába tetszőleges rendszeren. (Django, Gtk, ... )

Miért ne?

A Python teljesen objektum orientált nyelv, ami a későbbiekben nagyon hasznos lesz de kezdetben vannak hátrányai is. Találkozni lehet olyan dolgokkal is a forráskódban amiket elsőre nem is olyan egyszerű megérteni. Tipikusan ilyenek a névvel és pozícióval vegyesen átadható paraméterek, vagy az alaptípusok érdekesebb metódusai a vegyesen megvalósított referencia és érték szerinti átadás.

A Python telepítése

Egy Windows rendszeren valószínűleg nincs még telepítve Python, vagy ha van is nincsen hozzá programozó felület. A Python hivatalos felülettel az IDLE-vel együtt letölthető a python.org letöltés szekciójából. Mindenképpen a 3.x változatot javaslom, ez az újabb és az érettségin is ez használható.

Szomorúan jegyzem meg hogy érettségizni Python programozási nyelvben csak Windows alatt lehet, ennek ellenére a leírást Ubuntu alatt fogom folytatni. Egyrészt remélhetőleg az érettségi kiírás is változni fog, másrészt nem jelent valódi nagy különbséget, az alternatív operációs rendszer sem.

Ubuntu alatt a hivatalos tárolókból elérhető a Python 2-es és 3-as verziója is, valamint szükség szerint az IDLE is telepíthető, de Linux alatti programozáshoz ezt nem javaslom használatra. A telepítőparancsok:

# A python3 telepítése (kötelező):
sudo apt-get install python3
#Az IDLE telepítése (Windowshoz javaslottal megyező felület):
sudo apt-get install idle3
Ezek után további lépések nélkül, megkezdhető a Python használata:

Interaktív Python

Elsőként néhány szót a python interaktív módjáról. Az interaktív Python egy olyan felület, ahová parancsok gépelhetőek be, soronként egyesével, amik azonnal végrehajtásra kerülnek és a végeredményt (visszatérési értéket) a Python kiírja. A felület elérése terminálban: python3 (Windows alatt az IDLE megnyitása ugyan ide vezet.)

Először egy üdvözlő szöveg fogadja a felhasználót, ami elmondja hogy milyen verziót használ és hol kaphat további információt róla:

Python 3.2.3 (default, May  3 2012, 15:51:42)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Ezek után egy >>> jelző (prompt) várja a következő sor elején, ide írhatóak a parancsok.

Kipróbálhatóak például a következők:
>>> 3+5
8
>>> 'alma' + ' ' + 'körte'
'alma körte'
>>> 3 + 'alma'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Jól látható hogy az első két parancsom gond nélkül lefutott, de amikor számot és szöveget akartam összeadni akkor már hibát kaptam. Ez pont így történne akkor is ha a programkódba írtam volna. Ne felejtsük el hogy az interaktív módhoz bármikor vissza lehet térni ha valami gond akadna.

Az első program

A Python programok futtathatóak rögtön forráskódból is, ami sok kellemetlenségtől kíméli meg a programozót kezdetben, ezért a példában is így fogok tenni. Az első programhoz csak egy sima szöveges fájl szükséges (elkészíthető pl. gedit segítségével) demo.py néven elmentve. (Windows alatt használható az IDLE Fájl->Új parancsa)
A fájl tartalma legyen a következő:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
print("Helló világ!")
Az első sor azt jelenti hogy ezt a fájlt a python3 programmal kell futtatni. Ennek a megadása nem kötelező, de erősen ajánlott.

A második sor a karakterkódolást jelzi. Ha nem ASCII tehát pl. ékezetes karakterek vannak a fájlban (öüóőúéáűí) akkor kötelező megadni. Pythonhoz mindig az UTF-8 kódolás használata javasolt, ez linux alatt, és az IDLE-ben is alapbeállítás. Ha valami mégsem működne, érdemes a szövegszerkesztő UTF-8 Bom nélkül üzemmódba állításával próbálkozni.

Ezek után következik maga a programkód, ami itt összesen annyit tesz hogy kiírja Helló világ!

Próbáljuk ki!. (Windows alatt futtatás menüpontot.)
Linux alatt terminálban:
python3 demo.py

Ha minden program helyesen lefutott, a terminál következő sorában megjelenik a Helló világ! üzenet. Összesen tehát ennyi volt szükséges egy Python program elkészítéséhez és futtatásához.

Tanuljunk meg Python nyelven

A Python nyelv megtanítása jócskán túlmutat egy blogbejegyzés terjedelmén, de az első lépések után nagyon egyszerűen, és gyorsan tanulható nyelv.

Segédanyagnak magyar nyelven Gérard Swinnen: Tanuljunk meg programozni Python nyelven című, ingyenesen elérhető könyvét javaslom. Ez a könyv a Python2-ről szól, én viszont eddig a Python3-al foglalkoztam. A Python3-hoz még nem tudok elérhető tananyagról. Ugyanezekből a forrásokból a Python 2 is telepíthető, de alternatívaként próbálkozhatunk Python2 kód Python 3 alatti futtatásával is.

A verziók között első ránézésre csak néhány formai különbség van: Az újabb változatban kötelező kitenni a zárójelet a print utasítás köré tehát print "Szöveg" helyett kötelezően print("Szöveg") írandó. Ezen kívül a % jellel készített szövegformázások sem működnek majd. Ezeket érdemes kezdetben kihagyni.

A változások pontos listája angol nyelven a Python3 manuálban tekinthető meg. Ezt  érdemes egyébként bármilyen egyéb leírásért is felkeresni.

2012. augusztus 5.

Ajánló

Régen terveztem a webről a számítástechnikáról és úgy általában a kapcsolódó érdekességekről szóló hasznos, érdekes weboldalak összegyűjtését. Ez a lista éppen ideális lesz bemutatkozásként, és biztos hogy hasznosabb is, mint ha magamról írnék sorokat.

Buhera blog

A számítástechnikában mindig érdemes otthon lenni az aktuális biztonsági témákban, buherátor pedig magyar nyelven, színvonalasan foglalja össze az aktuális tudnivalókat.

Weblabor

A "fejlesztői forrás"-t talán mindenki ismeri. Független szakmai lapként a legszínvonalasabb magyar nyelvű cikkek otthona, és az érdekes blogbejegyzések gyűjtőhelye. Sajnos a friss tartalom egyre ritkább, de ami megjelenik, azt biztosan érdemes elolvasni. Nem árthat egy pillantást vetni a mindmáig működő levelezőlistákra sem.

CSS Tricks

Rengeteg hasznos és divatos "Web 2.0"-ás trükk, sajnos csak angol nyelven. Szép koncepciókat és kidolgozott aprólékos megoldásokat egyaránt találni, ráadásul rengeteg a friss és érdekes cikk. Az oldal kifejezetten a weblapfejlesztéssel foglalkozik, elsősorban HTML és CSS, de érintőleges JavaScript irányból is.

Code Net

A kezdőket felkaroló, egykor szebb napokat is megélt oldalból sajnos csak a fórum és a lelkes felhasználók egy kis része maradt. Programozási problémákkal viszont máig érdemes benézni a fórumba, biztos segítségre és barátságos hozzáállásra találunk.

Magyar Ubuntu Planet

Az Ubuntu linux köré összegyűjtött összeállítás, de rengeteg blog, és bejegyzés található itt összegyűjtve, amit ha mindet végigolvasni nem is, de átfutni érdemes, emellett érdekes lehet egy-egy pillantást vetni az eredeti blogokra is, akik hasonló, informatikai témákban posztolnak.

Hungarian Unix Portal

Magyar (linux)rendszergazdák és fejlesztők fórumaként működő oldal, bár a webhez csak lazán kapcsolódik, rengeteg hasznos dolgot lehet kihámozni a (szintén rengeteg) szemét közül. A fórum csak (túl)sok szabadidővel rendelkező, megszállott informatikusoknak ajánlott!

Futottak még

Az interneten még számos, hasznos oldal van, ami szorosan vagy éppen lazán kapcsolódik, de sajnos nem lehet mindenkiről néhány soros bemutatót írni. Előfordulhat hogy a jövőben még külön kiemelek egy-egy oldalt, de most csak felsorolásként: