Imperatív programozás

Hasonló dokumentumok
Imperatív programozás

PYTHON. Avagy hosszú az út a BioPythonig

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

Imperatív programozás

A Python programozási nyelv

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

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

Python tanfolyam Python bevezető I. rész

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

A Python programozási nyelv

Programozási nyelvek Python

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

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

Komputeralgebra Rendszerek

A C# programozási nyelv alapjai

Python I. Vincze Dávid Miskolci Egyetem, IIT

2018, Diszkrét matematika

2018, Diszkrét matematika

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

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

Szkriptnyelvek. 1. UNIX shell

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

A Python alapjainak áttekintése

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

Szoftvertervezés és -fejlesztés I.

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

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

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

Programozási nyelv Java

Algoritmizálás + kódolás C++ nyelven és Pascalban

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

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

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

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

Imperatív és procedurális programozás a Javában

Programozási nyelvek (ADA)

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

2016, Diszkrét matematika

Gyakorló feladatok Gyakorló feladatok

PyS60....avagy Python a mobilon

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

Apple Swift kurzus 3. gyakorlat

Python 1 mogyoróhéjban Összeállította: Siki Zoltán

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

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

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

A JavaScript főbb tulajdonságai

Java programozási nyelv

Szkriptnyelvek II. Perl programok

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

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

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Bevezetés a programozásba Előadás: A const

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Szoftvertechnológia alapjai Java előadások

1. Alapok. #!/bin/bash

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

A C programozási nyelv I. Bevezetés

2018, Diszkrét matematika

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

Python GDAL/OGR programozás Készítette: dr. Siki Zoltán

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

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

A C# PROGRAMOZÁSI NYELV

2018, Diszkre t matematika. 8. elo ada s

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

2018, Diszkrét matematika

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

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

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

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

15. Programok fordítása és végrehajtása

Informatika terméktervezőknek

A C programozási nyelv I. Bevezetés

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

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Webprogramozás szakkör

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamá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)

Adatbázis és szoftverfejlesztés elmélet

Objektumorientált Programozás III.

Bevezetés a programozásba. 6. Előadás: C++ bevezető

A C programozási nyelv II. Utasítások. A függvény.

Hardver leíró nyelvek (HDL)

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

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

Bevezetés a programozásba I.

2016, Diszkrét matematika

C programozás. 1 óra Bevezeté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

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

Operációs rendszerek gyak.

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

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Átírás:

Imperatív programozás 2. Előadás Python alapok

Elérhetőség Tejfel Máté Déli épület, 2.616 matej@elte.hu http://matej.web.elte.hu

Python Script nyelv Értelmezett (interpretált) Dinamikus típusrendszer Gyors alkalmazásfejlesztés Hordozhatóság Rövidebb és érthetőbb kód Kevesebb ellenőrzés, programozó felelőssége nagyobb

Python Guido van Rossum tervezte (1990) Monthy Python's Flying Circus Ős: Amoeba (1990) operációs rendszer scriptnyelve Objektumorientált Egyszerű szintaxis Margó szabály

Python Két főág Python 2.x <---> Python 3.x Előadáson Python 3

Futtatás Interaktívan matej@matej-laptop:~$ python3 Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> print("hello World!") Hello World!

Futtatás Interpretáltan hello.py print("hello World!") ------------------------------------------------------------ matej@matej-laptop:~$ python3 hello.py Hello World!

Megjegyzések hello.py # Ez a sor megjegyzes. print("hello World!") # Innen kezdve ez is... matej@matej-laptop:~$ python hello.py Hello World!

Futtatás script-ként hello.py (Linuxon) #! /usr/bin/python3 print("hello World!") ------------------------------------------------------------ matej@matej-laptop:~$ type -a python3 python3 egy /usr/bin/python3 matej@matej-laptop:~$ chmod +x hello.py matej@matej-laptop:~$./hello.py Hello World!

Paraméterátadás Futtatás hello_arg.py import sys print ("Hello", sys.argv[1] + "!") ----------------------------------------------- matej@matej-laptop:~$ python hello_arg.py "Hallgató" Hello Hallgató! sys.argv[0] sys.argv[1] forrásfájl neve első argumentum

Kiíratás >>> x = 4 >>> print(x) 4 >>> y = "abc" >>> print(x,y) 4 abc >>> print(y + 'de') abcde >>> print("formázva: %d és %s" % (x,y)) Formázva: 4 és abc

Értékadás Implicit deklaráció, dinamikus típusrendszer >>> x = 1 >>> print(x) 1 >>> x = "abc" >>> print(x) abc

Értékadás Többszörös értékadás Szimultán értékadás >>> x = y = 7 >>> print(x) 7 >>> print(y) 7 >>> x,y = 10, "abc" >>> print(x) 10 >>> print(y) abc

Relációk, logikai értékek x == y x!= y x > y x < y x >= y x <= y # x egyenlő y -nal # x nem egyenlő y -nal # x nagyobb, mint y # x kisebb, mint y # x nagyobb, vagy egyenlő mint y # x kisebb, vagy egyenlő mint y Szekvenciák (stringek, listák es tuple-k) összehasonlítása a lexikografikus sorrendjük alapján történik. Hamis: Igaz: False, 0, "", [ ], { }, (), None ami nem hamis Logikai műveletek: and, or, not

Vezérlési szerkezetek Szekvencia Elágazás Ciklus

Vezérlési szerkezetek Elágazás if feltétel: utasítások... elif feltétel: utasítások... elif feltétel: utasítások...... else: utasítások... >>> x = 5 >>> if x < 5:... print("kisebb!")... elif x>5:... print("nagyobb!")... else:... print("x==5")... x==5

Vezérlési szerkezetek Elágazás >>> x = 5 >>> if x <= 5:... print("kisebbegyenl ő!")... elif x>4:... print("nagyobb négynél!") Kisebbegyenl ő!

Vezérlési szerkezetek Elágazás >>> if "abc" < 'abd':... print("az 'abc' kisebb!")... Az 'abc' kisebb! >>> if [1,2,3,4,5] < [3,4,5]:... print("az elso kisebb!")... Az elso kisebb!

Vezérlési szerkezetek Ciklus >>> x = 0 >>> while x<4:... print(x)... x += 1... 0 1 2 3 >>> for x in [1,2,3,4]:... print(x)... 1 2 3 4

Vezérlési szerkezetek Ciklus >>> for x in "abcde":... print(x)... a b c d e >>> x 'e' >>> for x in range(4,8):... print(x) 4 5 6 7 >>> range(11,15) [11, 12, 13, 14] >>> range(4) [0, 1, 2, 3] >>> range(2,10,3) [2, 5, 8]

Függvények def sum(x,y): z = x+y return z def sum2(x,y): z = x+y print z >>> x = sum(3,4) >>> print(x) 7 >>> x = sum2(3,4) 7 >>> print(x) None

Típusok + műveleteik Számok - immutable (nem változtatható) értékek - fajtái - egész 5, -6, +4 - valós 0.1, 2.1e-10, 5E21 - komplex 2+3j, 6.5+3.4j, 7J - oktális, hexa, bináris 0o234, 0x7AE, 0b101 - fixpontos valós >>> from decimal import Decimal >>> Decimal('0.1') - racionális >>> from fractions import Fraction >>> Fraction(1,3)

Típusok + műveleteik Egész számok >>> 3+2 5 >>> 5-7 -2 >>> 2*3 6 >>> 10/3 # python3!!!! 3.3333333333333335 >>> 10 // 3 # lefelé kerekít 3 >>> 10 // -3-4 >>> 10**3 1000 >>> 14%3 2

lower = 100 upper = 400 step = 100 Fahrenheit - Celsius konverzió def fahr2cels(f): return 5/9 * (f 32) for fahr in range (lower, upper+1, step): print( "Fahr = %4d,\tCels = %7.2f" % (fahr, fahr2cels(fahr)) )

Típusok + műveleteik Valós számok >>> 2 * 3.5 7.0 >>> 4.5 + 1.5 6.0 >>> 10 / 3.0 3.3333333333333335 >>> 8.0-1 7.0 >>> 8.5**3 614.125 >>> 9.5%3 0.5

Típusok + műveleteik Komplex számok >>> (1 + 2.0j) + (3 + 1J) (4+3j) >>> 1j * 1j (-1+0j) >>> complex(3,4) (3+4j) >>> complex(1,1) * 1j (-1+1j)

Típusok + műveleteik Karakterláncok - immutable >>> "szoveg" 'szoveg' >>> 'ez is "szoveg"' 'ez is "szoveg"' >>> "es ez is 'az'" "es ez is 'az'" >>> "szoveg SyntaxError: EOL while scanning string literal >>> """ tobb soros szoveg""" ' tobb soros\n szoveg'

Típusok + műveleteik Karakterláncok >>> "kakukk" + 'tojas' 'kakukktojas' >>> "egyik 'szoveg'" + ' masik "szoveg"' 'egyik \'szoveg\' masik "szoveg"' >>> "hali"*2 + "ho" 'halihaliho'

Típusok + műveleteik Karakterláncok >>> szoveg = "szoveg" >>> szoveg[2] 'o' >>> szoveg[2:5] 'ove' >>> szoveg[3:] 'veg' >>> szoveg[:10] 'szoveg' >>> szoveg[1:0] '' >>> szoveg[-2] 'e' >>> szoveg[-6:-3] 'szo' >>> szoveg[-8:] 'szoveg' >>> szoveg[:-2] 'szov' >>> szoveg[1:-2] 'zov' s z o v e g 0 1 2 3 4 5 6-6 -5-4 -3-2 -1

Típusok + műveleteik Karakterláncok Immutable! Karakterláncokra a felülírás nem működik >>> szoveg = "almafa" >>> szoveg[2] = 'k' Traceback (most recent call last): File "<pyshell#71>", line 1, in <module> szoveg[2] = 'k' TypeError: 'str' object does not support item assignment

Típusok + műveleteik Listák - mutable (változtatható) - heterogén lista >>> lista = ["szo", 12, 3.5] >>> lista[1] 12 >>> lista[1:3] [12, 3.5] >>> lista[0:-1] ['szo', 12] >>> lista[1] = 24 >>> lista ['szo', 24, 3.5] >>> lista[2] = lista[2] + 4 >>> lista ['szo', 24, 7.5] >>> lista[1:2] = [12, "abc", 8] >>> lista ['szo', 12, 'abc', 8, 7.5] >>> lista[-2:] = [] >>> lista ['szo', 12, 'abc']

Típusok + műveleteik Rendezett n-esek (tuple-k) - immutable - heterogén elemek >>> tuple = (1, 2, 'abc') >>> tuple (1, 2, 'abc') >>> tuple = 1, 2, 'xyz' >>> tuple (1, 2, 'xyz') >>> tuple[2] 'xyz' >>> tuple[0:1] (1,) >>> tuple[0:2] (1, 2)

Típusok + műveleteik Rendezett n-esek (tuple-k) Immutable! >>> tuple[2] = 'abc' Traceback (most recent call last): File "<pyshell#22>", line 1, in <module> tuple[2] = 'abc' TypeError: 'tuple' object does not support item assignment

Típusok + műveleteik Rendezett n-esek (tuple-k) >>> (1,2) + (3, 'abc') (1, 2, 3, 'abc') >>> tuple = 1, 2, 'xyz' >>> tuple (1, 2, 'xyz') >>> v1, v2 = tuple[1:3] >>> v1 2 >>> v2 'xyz' >>> (v1,v2) = tuple[0:2] >>> v1 1 >>> v2 2