Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Python – új programozási nyelv bevezetése az iskolában

ELTE TANM-INF-113 Informatika oktatása 2.
by

Rácz András

on 29 April 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Python – új programozási nyelv bevezetése az iskolában

új programozási nyelv bevezetése
az iskolában

Python
egyszerű, elegáns
keresett
szabad, több-platformos
Miért?
Hogyan?
online interpreter
python portable
python futtatókörnyezet: könnyen telepíthető bármilyen op. rendszerre
linuxokon alapból van
ügyelni: Python 2 vagy 3
IDLE (vagy akármilyen szövegszerkesztő + konzol)
http://compileonline.com/execute_python3_online.php
Mit?
A gyönyörű jobb, mint a csúnya.
Az explicit jobb, mint az implicit.
Az egyszerű jobb, mint az összetett.
Az összetett jobb, mint a bonyolult.
A lapos jobb, mint a beágyazott.
A ritka jobb, mint a sűrű.
Az olvashatóság számít.
A speciális esetek nem elég speciálisak, hogy megszegjük a szabályokat.
Habár a gyakorlatiasság fontosabb a tisztaságnál.
A hibáknak sosem kellene csendben átmenniük.
Hacsak nem nyíltan vannak elnyomva.
Ha kétértelműséggel kerülsz szembe, állj ellent a kísértésnek, hogy kitaláld.
Kell, hogy legyen egy – és lehetőleg csak egy – kézenfekvő megoldási mód.
Habár nem biztos, hogy ez a mód első ránézésre kézenfekvő, hacsak nem vagy holland.
Most jobb, mint soha.
Habár a soha gyakran jobb, mint a most rögtön.
Ha az implementációt nehéz elmagyarázni, akkor az egy rossz elképzelés.
Ha az implementációt könnyű elmagyarázni, akkor az jó elképzelés lehet.
A névterek használata nagyszerű gondolat – csináljunk még többet!
Bevezetés, alapok
interaktív shell felfedezése, szintaxis alapjai
imperatív paradigma
„számológép” (matematikai műveletek)
értékadás, egyenlőség
objektumorientáltság
példa: stringműveletek
hasznos eszköz:
http://www.pythontutor.com/visualize.html
Programvezérlés
indentálás mint blokk
feltétel (if, elif, else)
ciklus (while)
bemenet (input)
modul (pl random)
feladat: számkitaláló
függvény (def)
feladat: faktoriális
rekurzió bevezethető
Adatstruktúrák
listák
szótárak
generátorok
feladat: Fibonacci
OOP
objektumok (minden)
osztályok
adattagok
metódusok
konstruktor
duck typing
kivételkezelés
Kitekintés
teknőcgrafika: http://PythonTurtle.org
játék: http://pygame.org
mobil: http://Kivy.org
grafika, fizika: http://goo.gl/d4Svsa
Lezárás, értékelés, számonkérés
Óratervek
+ érettségin használható (2012 óta)
Milyen?
http://xkcd.com/353/
(
)
letisztult (ld Zen)
többféle paradigma
procedurális, objektumorientált, funkcionális
minden „dolog” objektum
blokkok indentálással (szóközökkel)
nem kell könyörögni az átlátható kódért :)
moduláris
C-hez hasonló kifejezések és műveletek
egymásba ágyazható adatszerkezetek
A Python ZEN-je
...példák...
...példák...
http://portablepython.com
A parancsértelmező úgy működik, mint egy sima számológép: be lehet írni egy kifejezést, és az kiszámolja az értékét. A kifejezések nyelvtana a szokásos: a +, -, * és / műveletek ugyanúgy működnek, mint a legtöbb nyelvben (például Pascal vagy C); zárójeleket (
()
) használhatunk a csoportosításra. Például:

>>>
>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # az osztás egész számok esetén is lebegőpontos eredményt ad
1.6
Az egész számok (pl. 2, 4, 20) int típusúak, azok, amiknek törtrésze is van (pl. 5.0, 1.6) a float típusba.

Az osztás (/) mindig lebegőpontos értékeket ad vissza. Lefelé kerekítő egészosztás elvégzéséhez, amellyel egész értéket kapunk a // operátor használható; az osztás maradékához a %:
>>>
>>> 17 / 3 # hagyományos osztás lebegőpontos eredménnyel
5.666666666666667
>>>
>>> 17 // 3 # az egészosztással megszabadulunk a törtrésztől
5
>>> 17 % 3 # a % operátor az osztás maradékával tér vissza
2
>>> 5 * 3 + 2 # eredmény * osztó + maradék
17

A Pythonban a ** operátor használható a hatvány kiszámítására [1]:
>>>
>>> 5 ** 2 # 5 négyzete
25
>>> 2 ** 7 # 2 7-dik hatványa
128
A C-hez hasonlóan az egyenlőségjellel ('=') lehet értéket adni egy változónak. Az értékadás után az értelmező újabb utasításra vár, látszólag nem történik semmi:

>>>
>>> szelesseg = 20
>>> magassag = 5*9
>>> szelesseg * magassag
900

Ha egy változó nincs definiálva (nincs érték rendelve hozzá), és használni próbáljuk, akkor hibaüzenetet kapunk:

>>>
>>> n # try to access an undefined variable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

>>> s = '''A befejezett tanul-
... mányok több évnyi tudományos mun-
... ka és az évek tapasztala-
... tának egyesített eredménye.'''
>>> s.splitlines()
['A befejezett tanul-',
'mányok több évnyi tudományos mun-',
'ka és az évek tapasztala-',
'tának egyesített eredménye.']
>>> print(s.lower())
a befejezett tanul-
mányok több évnyi tudományos mun-
ka és az évek tapasztala-
tának egyesített eredménye.
>>> s.lower().count('m')
4
>>> lovagok = {'Gallahad': 'a tiszta', 'Robin': 'a bátor'}
>>> for k, v in lovagok.iteritems():
... print k, v
...
Gallahad a tiszta
Robin a bátor
>>> def reverse(data):
for index in range(len(data)-1, -1, -1):
yield data[index]

>>> for char in reverse('golf'):
print(char)

f
l
o
g
Full transcript