Python I. Vincze Dávid Miskolci Egyetem, IIT



Hasonló dokumentumok
Imperatív programozás

Python tanfolyam Python bevezető I. rész

PYTHON. Avagy hosszú az út a BioPythonig

Imperatív programozás

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

A Python programozási nyelv

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

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

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

Programozási nyelvek Python

Java II. I A Java programozási nyelv alapelemei

A C# programozási nyelv alapjai

Imperatív programozás

Szoftvertechnológia alapjai Java előadások

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

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

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

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

A Python programozási nyelv

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

Gyakorló feladatok Gyakorló feladatok

Kifejezések. Kozsik Tamás. December 11, 2016

A Python alapjainak áttekintése

Apple Swift kurzus 3. gyakorlat

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Szkriptnyelvek. 1. UNIX shell

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

A JavaScript főbb tulajdonságai

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

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás

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

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

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Python nyelv. Helló Világ. Karakterkódolás. Interpreter. < Python

Bevezetés a programozásba I.

PyS60....avagy Python a mobilon

Java II. I A Java programozási nyelv alapelemei

Szkriptnyelvek II. Perl programok

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

Készítette: Nagy Tibor István

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

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

A C programozási nyelv I. Bevezetés

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

A C programozási nyelv I. Bevezetés

Programozás I. Első ZH segédlet

Programozás alapjai. 5. előadás

2018, Diszkrét matematika

Informatika terméktervezőknek

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

2016, Diszkrét matematika

2018, Diszkrét matematika

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Bevezetés a Python programozási nyelvbe

2016, Funkcionális programozás

Bevezetés a Python programozási nyelvbe

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

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)

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Webprogramozás szakkör

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

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

AWK programozás Bevezetés

Kifejezések. Kozsik Tamás. December 11, 2016

Szoftvertervezés és -fejlesztés I.

Bevezetés a programozásba I.

2018, Diszkrét matematika

2018, Funkcionális programozás

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

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

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

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás

LibreOffice Makró Basic

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Java és web programozás

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

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

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

2018, Diszkrét matematika

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

Komputeralgebra Rendszerek

2018, Diszkre t matematika. 8. elo ada s

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

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

C# gyorstalpaló. Készítette: Major Péter

Vezérlési szerkezetek

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

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

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

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

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

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

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

Maximum kiválasztás tömbben

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Átírás:

Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu http://users.iit.uni-miskolc.hu/~vinczed/

Általános célú szkriptnyelv A név Monthy Python után De ettől még kígyókat is láthatunk :) Platformfüggetlen Az értelmezője nyílt forrású Jól olvasható kód (Kényszerített) Hatékony, gyors fejlesztést tesz lehetővé Sikeres nyelv: Google, NASA, Facebook, stb. http://www.python.org/

A szkriptfileokat.py végződéssel szokás ellátni Bytekódot generál és ezt futtatja El is menti.pyc végződésű filenévvel Automatikusan generálja Alapból interaktív interpreter Lássuk! Változók értékeit kiírja ha hivatkozunk rá Egyébként szkriptfileokat futtat, és sorrol sorra halad...

Hi World! >>> 'Hello World!' 'Hello World!' >>> print "Hello World!" Hello World! Látjuk a különbséget?

Nézzünk scriptet! Megadjuk a betöltő programot: Shebang + interpreter: #!/usr/bin/python #! Utána kezdhetjük magát a scriptet #!/usr/bin/python print "elso python szkriptem"

Változók / Típusok Nem kell deklarálni, memóriát foglalni (automatikus) Sztring: 'spa"m' "spa'm" '''... spam ''' """... spam """ (több sorra is átterjedhet) "s\tp\na\0m" r"c:\new\test.spm" u'eggs\u0020spam'

Automatikus összefűzés (nincs külön operátor) >>> print 'beton' "kevero" """KAMAZ""" betonkeverokamaz Indexelni lehet a karaktereket: sz='beton' print sz[2] print 'beton'[2] Minden sztring is objektum!

Indexelés lehet cifrább: sz='beton' sz[2:4] 'to' sz[2:] 'ton' sz[:4] 'beto' sz[:] 'beton' sz[:-3] 'be' sz[-3:] 'ton' sz[-3:-2] 't'

Integer, long i=5, i=5l Float - lebegőpontos f=5.0 Boolean b=true, b=false (nagy kezdőbetű!) List l=[ 0, 15, 'beton', i ] (index!) Tuple t=( 0, 15, 'beton', i ) (nem lehet frissíteni) Dictionary (asszoc. tömb) {'beton': 5, 'teherauto': 'KAMAZ'}

Frozenset, mint az előbb Python I. Ritkábban használtak: Komplex szám: 5+4j Bytes: b'akarmi' (sztring) bytes('talicska') (sztring) Bytearray: ua. mint bytes, csak módosítható bytearray([66, 67, 68]) bytearray(b'bcd') Set: s={5, 9.9, 'beton'} Halmazműveletek (intersect, union, stb.) 1 elem csak 1x lehet tag! s.add(4) {4, 5, 9.9, 'beton'} s.add(5) {4, 5, 9.9, 'beton'}

Névkonvenciók 0-9 A-Z a-z Csak betűvel kezdődhet Case-sensitive! True!= true Beton!= beton Vannak fenntartott nevek, kulcsszavak: pl. for, if, and, or, stb.

Utasítások közé tehetünk pontosvesszőket, de alapvetően a sortörés miatt nem muszáj Karakterkészlet Pszeudó-komment a file elején # -*- coding: ISO-8859-1 -*- # -*- coding: ISO-8859-2 -*- # -*- coding: UTF-8 -*-

Típuskonverzió int(), float(), str() vagy grave-accent `i` i=303 print str(i) " - " `i` Komment # bla bla

Vezérlési szerkezetek if elif else for x in sorozat while Kettőspontok a kifejezés után Indent-elés! Kötelező! Meghatározza a blokkot.

Vezérlési szerkezetek if akarmi:... elif akarmi2: else:......

Vezérlési szerkezetek if i>0: elif i<0: print 'pozitiv' else: print 'negativ' print 'nulla'

Vezérlési szerkezetek for x in lista: Lista elemei kerülnek x-be for x in tuple: Tuple elemei kerülnek x-be for x in sztring: String karakterei kerülnek x-be Szekvencia generálás listaként: range() fgv. range(5) [0, 1, 2, 3, 4]

Vezérlési szerkezetek while True: print 'Ez bizony vegtelen ciklus' print 'Ezt nem irom mar ki soha'

# -*- coding: UTF-8 -*- szam = 2**3 # ** hatvanyozas paros = [] # ures lista (miert is kell ez?) paratlan = [] while (szam!= 0): szam = int(raw_input("szám? ")) if (szam!= 0): if (szam % 2 == 0): paros.append(szam) else: paratlan.append(szam) print "Párosak: ",paros print "Páratlanok: ",paratlan

Objektum objnev.metodusev() objnev.adattag Minden objektum. Természetesen definiálhatunk saját osztályokat.

Objektum pl. string objektum >>> 'beton'.replace('b','p').replace('e','i') 'piton' >>> 'beton'.find('t') 2 >>> 'beton'.split('t') ['be', 'on'] >>> list('beton') ['b', 'e', 't', 'o', 'n'] >>> 'x'.join(['b', 'e', 't', 'o', 'n']) 'bxextxoxn'

Modulok import modulnev pl. import sys, os, base64 Olvassunk be valamit a konzolról!

Modulok >>> import sys >>> sys.stdin.readline() beton 'beton\n' >>> from sys import * >>> stdin.readline() >>> raw_input('kerek szoveget: ') kerek szoveget: beton 'beton'

Függvények def fuggveny(parameter,parameter2): a=4+parameter return a * 5 - parameter2 print fuggveny(-4,0) Nem kötelező értéket visszaadani (return elhagyható)

# -*- coding: UTF-8 -*- from math import * # eleg lenne az sqrt is def kerulet(a,b,c): return a+b+c def terulet(a,b,c): s = kerulet(a,b,c)/2 return sqrt(s*(s-a)*(s-b)*(s-c)) x = float(raw_input("a: ")) y = float(raw_input("b: ")) z = float(raw_input("c: ")) print "Kerület: ",round(kerulet(x,y,z),2) print "Terület: ",round(terulet(x,y,z),2)

Osztály class Osztalyom: "Egy egyszeru pelda osztaly" i = 12345 def f(self): return 'hello vilag' Példányosítás nélkül is lehet az elemeire hivatkozni print Osztalyom.i print Osztalyom.f()

Osztály def f(self): A self név nem speciális! (Csak szokás. Tartsuk meg.) A saját objektumunkat jelenti, amit automatikusan átpasszol a py interpreter. Viszont fogadni nekünk kell. Példányosítás: o=osztalyom() print o.i print o.f()

Kivételek Mi a helyzet a hibákkal? Pl. >>> 3 + 'a' TypeError >>> 5/0 ZeroDivisionError >>> nemletezovaltozo NameError >>> a=[237,11]; a[3] IndexError stb. Hiba esetén kivétel keletkezik Alaphelyzetben a script futása megszakad és a kivétel jelzésre kerül

Kivételek Hogyan kapjuk el ezeket? try except try: valamiamikiveteltdobhat() except: print 'kivetelt dobott' Lehet saját kivételünk is, és dobhatunk magunk is kivételt.