Hálózatok építése és üzemeltetése

Hasonló dokumentumok
Python tanfolyam Python bevezető I. rész

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Imperatív programozás

A Python programozási nyelv

Programozási nyelvek Python

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

PYTHON. Avagy hosszú az út a BioPythonig

Szkriptnyelvek. 1. UNIX shell

Imperatív programozás

BASH script programozás II. Vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek

A Python programozási nyelv

AWK programozás, minták, vezérlési szerkezetek

A JavaScript főbb tulajdonságai

A C# programozási nyelv alapjai

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Szoftvertechnológia alapjai Java előadások

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Komputeralgebra Rendszerek

Smalltalk 2. Készítette: Szabó Éva

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Apple Swift kurzus 3. gyakorlat

Python bevezető foglalkozás Python bevezető foglalkozás

1. Egyszerű (primitív) típusok. 2. Referencia típusok

és az instanceof operátor

Programozás II. 2. Dr. Iványi Péter

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Programozási nyelvek JAVA EA+GY 1. gyakolat

Java II. I A Java programozási nyelv alapelemei

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek gyakorlat

Gyakorló feladatok Gyakorló feladatok

Számítógépes Hálózatok. 1. Gyakorlat

AWK programozás Bevezetés

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Szkriptnyelvek II. Perl programok

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Bevezetés a Python programozási nyelvbe

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Python I. Vincze Dávid Miskolci Egyetem, IIT

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Programozási nyelvek (ADA)

Java II. I A Java programozási nyelv alapelemei

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

S z á m í t ó g é p e s a l a p i s m e r e t e k

A programozás alapjai

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Programozási nyelvek Java

Occam 1. Készítette: Szabó Éva

Java és web programozás

Operációs Rendszerek II. labor. 2. alkalom

Java programozási nyelv

Imperatív programozás

JAVA PROGRAMOZÁS 2.ELŐADÁS

Java I. A Java programozási nyelv

Programozás I. Első ZH segédlet

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

OOP: Java 8.Gy: Abstract osztályok, interfészek

Programozás C és C++ -ban

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Számítógépes Hálózatok. 1. gyakorlat

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Informatika terméktervezőknek

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Változók és adattípusok Változók és adattípusok

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

1. Alapok. #!/bin/bash

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Webprogramozás szakkör

Oktatási segédlet 2014

Komputeralgebra rendszerek

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Komputeralgebra rendszerek

Osztályok. 4. gyakorlat

Mintavételes szabályozás mikrovezérlő segítségével

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

.Net adatstruktúrák. Készítette: Major Péter

OOP #14 (referencia-elv)

C++ programozási nyelv Konstruktorok-destruktorok

Programozás módszertan

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Szoftvertervezés és -fejlesztés I.

1. Jelölje meg az összes igaz állítást a következők közül!

A C programozási nyelv I. Bevezetés

Forráskód formázási szabályok

PyS60....avagy Python a mobilon

Listák, szótárak, fájlok Listák, szótárak, fájlok

Programozási nyelvek Java

Vezérlési szerkezetek Vezérlési szerkezetek: feltételes elágazás és ciklusok

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Átírás:

Hálózatok építése és üzemeltetése Python 1

Python nyelv Alapok 2

Általános jellemzők A Python programozási nyelv egy általános célú magas szintű nagyon széles körben elterjedt ingyenes program nyelv, amely lehetővé teszi a programozás moduláris és objektív megközelítését Megalkotója Guido van Rossum (1989) azóta számos önkéntessel együtt fejleszti A név Monty Python csoportról Cél olvashatóság programozói munka megkönnyítése akár a futási sebesség árán is 3

Általános jellemzők Interpretált nincs különválasztva a forrás- és tárgykód, a megírt programot sorról-sorra értelmezi és futtatja a Python értelmező (interpreter), pl. CPython Portábilis több (minden?) operációs rendszer és géptípus által támogatott Sokoldalú széles körben alkalmazható a néhányszor tíz soros szkriptektől a több tízezer soros komplex programokig például: prototípus fejlesztés Nagyon egyszerű szintaxis nagyon tömör, mégis jól olvasható programok írhatóak vele (azonos funkciójú C/C++/Java program hosszának gyakran csak harmada-ötöde az egyenértékű Python kód) Dinamikus az interpreter ki tud értékelni Python kifejezéseket és utasításokat tartalmazó karakterláncokat 4

Általános jellemzők Introspektív támogatja a futás közbeni típus és kód ellenőrzést (code/type introspection), emellett számos fejlesztőeszköz pl.:debugger, profiler is magában a Pythonban van implementálva Dinamikusan és erősen típusos Nem használ explicit adattípust változók definiálásánál (szemben a statikusan típusos nyelvekkel), viszont egy változó értékadása után már számít az adott változó típusa Támogatja a komplex struktúrákat nyelvi szinten, a többszálú programozást (multithreading), az objektum orientált programozást, a többszörös öröklést (multiple inheritance), operátor túlterhelést (operator overloading) és virtuális függvényeket (virtual methods) Bővíthető könnyen fejleszthető vagy illeszthető hozzá külső könyvtár (C könyvtár CPython vagy meglévő Java csomagok Jython esetében) Sokoldalúan támogatott számtalan kiegészítő csomag, például stringek, reguláris kifejezések, UNIX szolgáltatások (csővezeték, socket, ), internet protokollok (FTP, CGI, HTML, JSON, XML, ), perzisztencia, adatbázisok, grafikus interfészek 5

Különbségek más nyelvektől Utasításblokkkok szeparálása behúzással (indentation) olvashatóság a jó programok más nyelven is így néznek ki azonos blokkba tartozó elemek, azonos behúzás (space/tab) ajánlás: 4db space Üres blokk kell egy külön kulcsszó: pass nem csinál semmit, placeholder pl: egy függvényt majd később írunk meg, de hívni már szeretnénk máshonnan 6

Különbségek más nyelvektől Sorzárás nincs külön karakter, helyette: \n többsoros kódnál sortörés: \ karakterrel utasítások elválaszthatók: ; karakterrel Értékadás <név> = <érték> típus csak futás közben kerül meghatározásra utána már számít, hogy mit tárol (erős típusosság) többszörös értékadás pl. változók cseréje: x, y = y, x 7

Különbségek más nyelvektől Kommentek # karakter után hivatalosan egy soros kommentek Változók lokális érvényesség globális: ha függvényen kívül definiáljuk elérhető bárhonnan de írás esetén kell a global kulcsszó Láthatóság, hozzáférhetőség nincs külön nyelvi elem (mint private, protected) helyette: általános névkonvenció belső használatú függvények, privát metódusok: _ (aláhúzás) karakterrel kezdődnek nem illik kívülről hozzáférni de nincs tiltva 8

Különbségek más nyelvektől Minden objektum (mint UNIX esetében: minden fájl) egységes kezelés minden referálható, azaz változóban tárolható elem egy objektum, aminek vannak meghívható metódusai és amelyekben tetszőleges attribútumokat tárolhatunk el Mik ezek? osztálypéldányoktól és string változóktól kezdve az egyszerű és komplex típusokon keresztül a különálló függvények és osztálymetódusok, a modulok és a csomagok is! 9

Python nyelv Hello world 10

Hello world Első python script futtatás python test.py vagy futtatható Python script import def külső csomagok beimportálása lehet csak megadott részeket is függvény definiálása egy összetett utasítás : jelzi, hogy új utasításblokk kezdődik nagyobb behúzás kell itt a függvény törzsének 11

Hello world Első python script értékadás r változó kap egy string értéket string asdf vagy asdf (egyenértékűek) függvényhívás print beimportált random csomag randint függvényét hívjuk r változó most egy int értéket kap stdout-ra ír, paraméterként kapott stringeket összefűzve r változót stringgé konvertálja 12

Hello world Első python script utolsó blokk: biztonsági ellenőrzés if feltétel vizsgálat interpreter futtatja-e az aktuális modult/fájlt mire jó? ha igen, akkor a modulban alapból megtalálható name paraméter a main stringet tartalmazza egyébként a Python fájl nevét my_main függvény csak akkor fut le automatikusan, ha közvetlenül futtatjuk a modult modul importálásánál nem! 13

Python nyelv Adattípusok 14

Adattípusok 15 None nem definiált értékű változó Numerikus típusok immutable objektumok integer long, float complex String karakterek sorfolytonos tömbje asdf, asdf tripla idézőjel (dokumentációhoz) egyszerű műveletek [:] rész-string kinyerése + konkatenáció * ismétlés [i] adott indexre hivatkozás Logikai típus (bool) True, False nagybetűvel!! műveletek and, or, not más típusú változó is kiértékelhető mint logikai érték hasonlóan a C-hez

Összetett/Kollekció típusok tetszőleges típusú értékek! szekvenciatípusok tárolás sorfolytonos számít a pozíció list (lista) tuple konténertípusok sorrend nélküli tárolás dictionary (szótár) set (halmaz) 16

Összetett/Kollekció típusok List (lista) más nyelvek tömbjéhez hasonló elemek sorfolytonos tárolása műveletek [a, b] definiálás [i] adott indexre hivatkozás [-j] negatív index a végéről kezdi műveletek [:] rész-lista kinyerése + konkatenáció * ismétlés del elem törlése (hol láttuk ezeket?) 17

Összetett/Kollekció típusok Dictionary (szótár) key-value (kulcs-érték) alapú adattárolás ~ asszociatív tömb, hash tábla értékek tárolása a kulcs hash-e alapján gyors kinyerés DE a sorrend nem definiált!! fontos műveletek szótár iterálása dict.keys() dict.iteritems() 18

Összetett/Kollekció típusok Tuple kb. csak olvasható lista elemei, mérete nem változtatható használata gyorsabb a listáénál például Set (halmaz) hasonló, mint a lista, de egy elemet csak egyszer tartalmazhat sorrend nélküli tárolás műveletek halmazműveletek my_tuple = ('abcd', 786, 2.23, 'john', 70.2) 19

Python nyelv Vezérlési szerkezetek 20

Feltétel vizsgálat Két érték összehasonlítása operátorok C-ből ismert operátorok <, >, ==,!=, <=, >= logikai operátorok and, or, not is kulcsszó két változó által mutatott objektum megegyezik-e reference equality None mindig ugyanarra az objektumra mutat in kulcsszó tartalmazás vizsgálat 21

Elágazás, while ciklus Elágazás if-elif-else szerkezet feltétel ellenőrzéshez nem kell () minden blokk előtt : while ciklus iterál amíg a megadott feltétel igaz 22

For ciklus Különbözik a megszokottól igazáből ~ foreach iterálható objektumon mehetünk vele végig leggyakrabban összetett típus bejárására enumerate() list, tuple esetén (index, érték) párost ad vissza automatikus felbontás (I, value) iteritems() dict esetében minden iterációban (kulcs, érték) párost kapunk 23

For ciklus Hagyományos for ciklus megvalósítása xrange() xrange(30, 100, 3) else ág lépésköz is megadható ciklusoknál is van legutolsó szabályos ciklusmag futása után hajtódik végre egyszer ha break-kel lépünk ki nem fut le 24

Python nyelv Függvények 25

Függvények definiálása, hívása def kulcsszó függvény név paraméter lista docstring kódblokk visszatérési érték tetszőleges típus 26

Paraméterek átadása Sajátos, vegyes mechanizmus immutable objektumok: érték szerint mutable objektumok: objektum-referencia szerint ha a függvényen belül megváltozttajuk, MEGVÁLTOZIK kívül is! 27

Függvényargumentumok kötelező argumentumok kulcsszó argumentumok alapértelmezett argumentumok változó számú argumentumok ezek vegyíthetők is 28

Függvényargumentumok plusz paraméterek név nélkül *args lista argumentumba csomagolódnak névvel **kwargs szótár argumentumba csomagolódnak 29