A Python programozási nyelv

Hasonló dokumentumok
A Python programozási nyelv

Imperatív programozás

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

Imperatív programozás

Python tanfolyam Python bevezető I. rész

Programozási nyelvek Python

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

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

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

Komputeralgebra Rendszerek

PYTHON. Avagy hosszú az út a BioPythonig

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

Apple Swift kurzus 3. gyakorlat

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

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

Python I. Vincze Dávid Miskolci Egyetem, IIT

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

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

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

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Imperatív programozás

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

A C# programozási nyelv alapjai

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

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

PyS60....avagy Python a mobilon

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

Szkriptnyelvek. 1. UNIX shell

A Python alapjainak áttekintése

Bevezetés a programozásba I.

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

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

2018, Diszkrét matematika

Szoftvertervezés és -fejlesztés I.

Gyakorló feladatok Gyakorló feladatok

Szoftvertechnológia alapjai Java előadások

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

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

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

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

Szkriptnyelvek II. Perl programok

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

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Informatika terméktervezőknek

Függvények Függvények

2016, Diszkrét matematika

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

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

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

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Java I. A Java programozási nyelv

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

3D-s technológiák a játékfejlesztésben UDK bevezetés

Komputeralgebra Rendszerek

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

2018, Diszkrét matematika

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Adatbázisok* tulajdonságai

Programozási nyelv Java

Java és web programozás

C programozás. 1 óra Bevezetés

Delphi programozás III.

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

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

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

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

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

Programozás. Programozás villamosmérnököknek

PHP. Adatbázisok gyakorlat

2019, Diszkrét matematika. 1. el adás

2018, Diszkrét matematika

Internet programozása. 3. előadás

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

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

Komputeralgebra Rendszerek

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

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

Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere

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

2016, Diszkrét matematika

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Algoritmizálás és adatmodellezés tanítása 1. előadás

2018, Diszkre t matematika. 8. elo ada s

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

AWK programozás Bevezetés

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

2018, Funkcionális programozás

Programok értelmezése

MATLAB alapismeretek II.

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

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

Számítógépes Hálózatok GY 2.hét

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Komputeralgebra Rendszerek

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

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

Átírás:

A Python programozási nyelv Takács Gábor <gtakacs@sze.hu> Széchenyi István Egyetem Matematika és Számítástudomány Tanszék 1 / 1

Jellemzők + értelmezett nyelv + típusai dinamikusak + szintaxisa tömör, elegáns + többparadigmás nyelv + könnyen tanulható ("brain-friendly") + több 10 ezer külső modul érhető el hozzá (https://pypi.python.org/pypi) + erős közösség áll mögötte + szabadon használható + platformfüggetlen bizonyos feladatokhoz lassú lehet többszálú lehetőségei korlátozottak 2 / 1

Guido van Rossum (BDFL) 3 / 1

Mérföldkövek 1994 Python 1.0 2000 Python 2.0 2001 Python Software Foundation (http://www.python.org/psf/) 2008 Python 3.0 4 / 1

Python 2 vagy Python 3? 5 / 1

Python Enhancement Proposal (PEP) 6 / 1

Prominens alkalmazások Youtube Python has been an important part of Google since the beginning, and remains so as the system grows and evolve (Peter Norvig, Google) Dropbox Python became my favorite programming language because it had a balance of simplicity, flexibility, and elegance. (Drew Houston, CEO, Dropbox) 7 / 1

Implementációk CPython (http://python.org/), v3.4.2 / v2.7.9 PyPy (http://pypy.org/), v3.2.5 / v2.7.8 Jython (http://www.jython.org/), v2.7b3 IronPython (http://ironpython.net/), v2.7.5... 8 / 1

Telepítés Linux - értelmező telepítése: triviális - külső modulok telepítése: pip-pel Windows - 1. lehetőség: telepítőcsomagokkal telepítés - 2. lehetőség: Linux-szerű környezet beállítása - 3. lehetőség: Python disztibúció használata - Anaconda (https://store.continuum.io/cshop/anaconda/) - WinPython (http://winpython.sourceforge.net/) - Enthought (https://www.enthought.com/products/epd/) 9 / 1

Fejlesztőkörnyezetek nehézsúlyú - PyCharm (http://www.jetbrains.com/pycharm/) - Eclipse + PyDev plugin - Spyder (https://code.google.com/p/spyderlib/) - Wing IDE (http://www.wingware.com/), $245 - Komodo (http://www.activestate.com/komodo-ide), $295 könnyűsúlyú - Emacs / Vim /... - Sublime Text (http://www.sublimetext.com/), $70 10 / 1

11 / 1

Az értelmező python file [arg]... python -c command [arg]... ipython ipython console qtconsole notebook #!/usr/bin/env python print('hello, World!') 12 / 1

Adattípusok / 1 None True, False számok i = 10 # egész szám (int) f = 3.14 # lebegőpontos szám (float) c = 2-5j # komplex szám (complex) sztringek s1 = 'alma' # a határoló jel lehet ' s2 = "szilva" #...és " is s3 = '"alma" "szilva"' # <= ilyenkor nem kell levédeni # a sztringben a " karaktert! # többsoros sztringállandó s4 = """alma szilva""" 13 / 1

Adattípusok / 2 Aritmetikai műveletek: +, -, *, /, **, %, //. Összehasonlítás: <, <=, ==,!=, >, >=. Logikai műveletek: and, or, not. Bitenkénti logikai műveletek: &,, ˆ,, «,». Halmazműveletek: &,, -. Tartalmazásvizsgálat: in, not in. Azonosságvizsgálat: is, is not. Értékadás: =, +=, -=, *=, /=, **=, %=, //=,... 14 / 1

Adattípusok / 3 szekvencia típusok t = (1, 2, 3) # tuple l = [1, 2, 3] # lista halmazok, szótárak s = set([1, 2, 3]) # halmaz (Python 2) s = {1, 2, 3} # halmaz (Python 3) d = {'x': 1, 'y': 2, 'z': 3} # szótár d['x'] # az 'x' kulcshoz rendelt érték lekérdezése d['x'] = 9 # az 'x' kulcshoz érték módosítása d['w'] = 0 # új kulcs-érték pár hozzáadása 1 in s # eleme 1 az s halmaznak? 'x' in d # van a d szótárban 'x' kulcs? 15 / 1

Adattípusok / 4 konverzió int(2.3) # float => int float('10') # str => float str(20) # int => str tuple([1, 2, 3]) # list => tuple list((4, 5, 6)) # tuple => list set((7, 8, 9)) # tuple => set dict([('a', 1), ('b', 2)]) # pairs => dict {'a': 1, 'b': 2}.items() # dict => pairs 16 / 1

Vezérlési szerkezetek if 2 * 2 == 4: # Pythonban a vezérlési szerezetek print('alma') # belseje indentálással különül el. elif 2 * 2 == 5: # a kód többi részétől. print('szilva') else: # Emiatt garantált, hogy a program print('barack') # vizuális megjelenése és logikai # jelentése összhangban van. # végtelen ciklus while True: pass # Ha csak 1 végrehajtandó utasítás van, # akkor írhatjuk a while-lal 1 sorba. # a 0-tól 9-ig terjedő egész számok négyzetének kiírása for i in range(10): print(i**2) range vs. xrange break, continue 17 / 1

Szabványos be- és kimenet # Python 2 print 'hello' sys.stdout.write('hello') sys.stdout.write('hello'); sys.stdout.flush() # Python 3 print('hello') print('hello', end='') print('hello', flush=true) # Python 2 x = input('kérek egy egész számot: ') # VESZÉLYES! x = int(raw_input('kérek egy egész számot: ')) # Python 3 x = int(input('kérek egy egész számot: ')) 18 / 1

Gyakorlás: Számkitalálós játék > Találd ki, hogy melyik számra gondoltam 1 és 100 között! > 50 > Kisebb számra gondoltam. > 25 > Nagyobb számra gondoltam. >... 19 / 1

Comprehensions a = [x**2 for x in range(10)] # 2.7-es verziótól kezdve: b = {x**2 for x in range(10)} c = {x: x**2 for x in range(10)} a = [x**2 for x in range(10) if x % 2 == 0] # 2.7-es verziótól kezdve: b = {x**2 for x in range(10) if x % 2 == 0} c = {x: x**2 for x in range(10) if x % 2 == 0} 20 / 1

Rendezés # lista rendezése helyben l = [2, 4, 1, 3] l.sort() # kollekció rendezése listába l1 = sorted((2, 4, 1, 3)) l2 = sorted([2, 4, 1, 3]) l3 = sorted({2: 'b', 4: 'd', 1: 'a', 3: 'c'}) # párok listájának rendezése l1 = [('alma', 20), ('szilva', 30), ('barack', 10)] l2 = sorted(l1, key=lambda x: x[1]) 21 / 1

Fájlkezelés content = open('myfile.txt').read() lines = open('myfile.txt').readlines() f = open('myfile.txt') f.readline() # 1. sor átugrása for line in f: # további sorok tokenizálása print(line.split(',')) f.close() # Pascal-háromszög kiszámítása és fájlba írása f = open('pascal.txt', 'w') p = [1] for n in range(10): f.write(str(p) + '\n') q = [p[i] + p[i + 1] for i in range(len(p) - 1)] p = [1] + q + [1] f.close() 22 / 1

Gyakorlás: Szóstatisztika A leggyakoribb szavak a Hamletben: ('the' 1145) ('and' 973) ('to' 736)... 23 / 1