1 / 65

Python

Python. Značilnosti jezika Python. Izhaja iz ABC, Modul e -3 in C Objektno usmerjen Dinamični tipi Interpret iran Platformno neodvisen (Unix, Windows, itd .) Razširljiv Fle ksibilen. Najbolj vidna značilnost Python. Za krmilne strukture uporablja zamik. ne DO.. END

shae
Télécharger la présentation

Python

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Python

  2. Značilnosti jezika Python • Izhaja iz ABC, Module-3 in C • Objektno usmerjen • Dinamični tipi • Interpretiran • Platformno neodvisen (Unix, Windows, itd.) • Razširljiv • Fleksibilen

  3. Najbolj vidna značilnost Python Za krmilne strukture uporablja zamik ne DO.. END ne BEGIN..END ne { .. }

  4. for i in range(20): if i%3 == 0: print i if i%5 == 0: print “Pozdravljen!" print "---" Zamik kot krmilna struktura 0 Pozdravljen --- --- --- 3 --- --- --- 6 --- --- --- 9 --- --- --- 12 --- --- --- 15 Pozdravljen! ---

  5. “Programiranje je spet zabavno!" Nekaj misli z interneta: • “Sedaj, ko sem odkril Python, spet uživam v programiranju!“... • “Sedaj programiram v Javi, ker tako zahtevajo projekti, na katerih delam. Vendar bi si želel prej programirati v jeziku Ruby ali Python...." Robert C. Martin

  6. Knjižnica Majhno jedro, obsežna knjižnica Podobno kot Java ima tudi Python kompaktno jedro in obsežno, razširljivo knjižnico.  Tako je marsika, kar bomo potrebovali, že narejenega in preskušenega. Tako se naša naloga omeji na pisanje tiste kode, ki “zlepi” skupaj komponente iz knjižnice. Programiramo led to, kar potrebujemo.

  7. "Doctor Fun has the dubious distinction of being the first web cartoon. Doctor Fun was not, however, the first cartoon on the Internet." - http://www.ibiblio.org/Dave/index.html

  8. T-shirt Slogan Python: Programming the wayGuido indented it

  9. Jezik Python (imenovan po Monty Python)

  10. Filozofija "Batteries included" Standardna distribucija vsebuje obsežno knjižnico modulov Na voljo je še veliko drugih modulov Orodja Python Frank Stajano

  11. Namestitev programa Na spletni strani http://www.python.org/najdemo povezavo na Python, ga naložimo in namestimo. Opomba: Namestimo ga v standardni direktorij, kot predvideva namestitev Opomba: Namesto tega lahko namestimo ActivePython

  12. Razvojno okolje IDLE • Lupina za interaktivno delo. • Urejevalnik teksta za tvorbo datotek Python. Nudi barvanje kode in avtomatske zamike. • Menujski ukazi za spreminjanje nastavitev sistema in za izvajanje datotek.

  13. Interaktivna “lupina” • Lahkotno učenje jezika • Lahkotno preskušanje knjižnic • Lahkotno preskušanje lastnih modulov • Stavke tipkamo kot odgovor na “prompt”: >>> print “Pozdrav vsem" Pozdrav vsem >>> x = 12**2 >>> x/2 72 >>> # to je komentar

  14. GUI – grafični uporabniški vmesniki Nizi Regularni izrazi Povezljivost s podatkovnimi bazami HTTP, CGI, HTML, XML Numeriče obdelave Razhroščevalnik objekti Standardna knjižnica Python

  15. Orodja? – Integrirana razvojna okolja WingIDE Komericalen produkt Odličen IDE z vizualnim razhroščevalnikom Ni zastonj!

  16. ActivePython • ActivePython je razvojno orodje Python za platforme Linux, Solaris in Windows. Je prosto dostopen. • ActivePython vsebuje jedro Python, razširitvi zlib in bzip2 za komprimiranje podatkov, podatkovno knjižnico bsddb in Tix GUI widgets za Tkinter. • Distribucija ActivePython vsebuje dokumentacijo za začetnike in izkušene programerje.

  17. ActivePython

  18. Jython - JPython • Jythonje implementacija jezika Pythonintegriranega s platformoJava. JPython je predhodnik Jythona. Jython je odprtokodno, prosto dostopno orodje. Jython je komplement Javi in posebno primeren za naslednje naloge: • Vgrajeni skripti – Programerji v Javi lahko dodajajo knjižnice Jython in tako omogočajo uporabnikom pisanje skript in tako dodajanje funkcionalnosti aplikacijam. • Interaktivno poskušanje - Jython nudi interaktivni interpreter, ki ga lahko uporabljamo za interakcijo s paketi Java ali za proženje javanskih aplikacij. Tako lahko programerji s pomočjo Jyton preskušajo in popravljajo različne aplikacije v Javi. • Hiter razvoj aplikacij – Programi v Pythonu so tipično 2-10 krat krajši od ekvivalentnih programov v Javi. To se neposredno preslika v produktivnost programerja. Programerji lahko med razvojem oba jezika prosto mešajo. • Prehod k Javi -Python in Jython nudita relativno neboleč prehod v zanimiv, vendar pogosto kompleksen svet Jave.

  19. Visual Python • Python “plug-in”za Visual Studio .NET. • Visual Python smiselno integriran v Visual Studio .NET. Programerji lahko uporabljajo popularno Microsoftovo razvojno okolje. http://www.activestate.com/Products/Visual_Python

  20. Vpython – Visual Python VPython združuje Python, Numerical Python, Tcl/Tk in grafični paket, ki temelji na OpenGL. Je enostaven sistem za programiranje 3D grafike v realnem času.

  21. Visual Python (http://www.vpython.org) Interaktivne animacije Python je prost, interaktiven, objektno usmerjen jezik (spominja na Javo). Ima preprosto in konsistentno sintakso. Visual python (vpython) je Pythonov modul, ki izvaja 3D simulacije v realnem času. Crystal.py Simulacija kristala

  22. Python - Fizika 1D kinematika 2D kinematika Dvojni pendulum Coriolis Giroskop z nutacijo Carnotov cikel

  23. Python - Fizika Keplerjevo pravilo Gibanje planetov Orbiti Spekter Interferenca Valovanja

  24. Python - Elektromagnetika Neskončen vodnik Gradimo električno polje Toroid

  25. Python - Kemija Kristal

  26. Python - matematika Vektorski produkt

  27. Python - Grafika Vrtenine Lorenzov atraktor

  28. Python - računalništvo Rekurzija

  29. 3D fizikalna simulacija teles, povezanih z vzmetmi Več

  30. ScientificPython ScientificPython je zbirka Pythonovih modulov, primernih za znanstveno računanje. Ti moduli pokrivajo osnovno geometrijo (vektoje, tenzorje, transformacije, polja vektorjev in tenzorjev), kvaternione, odvode, interpolacijo, polinome, osnovno statistiko, nelinearno ujemanje najmanjših kvadratov, 3D vizualizacijo preko VRML in preprosto risanje grafov in 3D žičnih modelov. Ima mtudi vmesnike za knjižnice netCDF (portable structured binary files), MPI (Message Passing Interface, message-based parallel programming), in BSPlib (Bulk Synchronous Parallel programming). Več podrobnosti o ScientificPython dobimo na : http://starship.python.net/~hinsen/ScientificPython/

  31. Knjige in druga gradiva?

  32. Tvorimo boljše programe hitreje s Pythonom Kako reševati probleme s Pythonom .... http://pythonology.org/

  33. Kratek učbenik • Interaktivna “lupina" • Osnovni tipi: števila, nizi • Vsebovalniki: seznami, slovarji, tuples • Spremenljivke • Krmilne strukture • Funkcije in procedure • Razredi in primerki (instance) • Moduli in paketi • Izjeme • Datoteke in standardna knjižnica

  34. Interaktivna “lupina” • Lahkotno učenje jezika • Lahkotno preskušanje knjižnic • Lahkotno preskušanje lastnih modulov • Stavke tipkamo kot odgovor na “prompt”: >>> print “Pozdrav vsem" Pozdrav vsem >>> x = 12**2 >>> x/2 72 >>> # to je komentar

  35. Števila • Običajne stvari • 12, 3.14, 0xFF, 0377, (-1+2)*3/4**5, abs(x), 0<x<=5 • Pomikanje in maskiranje v stilu C • 1<<16, x&0xff, x|1, ~x, x^y • Celoštevilčno deljenje • 1/2 -> 0 # 1./2. -> 0.5, float(1)/2 -> 0.5 • Dolga cela števila, kompleksna števila • 2L**100 -> 1267650600228229401496703205376L • 1j**2 -> (-1+0j)

  36. Nizi • "hello"+"world" "helloworld"# konkatenacija • "hello"*3 "hellohellohello"# ponavljanje • "hello"[0] "h"# indeksiranje • "hello"[-1] "o"# (od konca) • "hello"[1:4] "ell"# del • len("hello") 5# velikost • "hello" < "jello" 1# primerjanje • "e" in "hello" 1# iskanje • "escapes: \n etc, \033 etc, \if etc" • 'single quotes' """triple quotes""" r"raw strings"

  37. Seznami • Fleksibilna polja, • a = [99, "bottles of beer", ["on", "the", "wall"]] • Isti operatorji kot za nize • a+b, a*3, a[0], a[-1], a[1:], len(a) • Prirejanje enot in delov enot • a[0] = 98 • a[1:2] = ["bottles", "of", "beer"] -> [98, "bottles", "of", "beer", ["on", "the", "wall"]] • del a[-1] # -> [98, "bottles", "of", "beer"]

  38. Še več operacij s seznami >>> a = range(5) # [0,1,2,3,4] >>> a.append(5) # [0,1,2,3,4,5] >>> a.pop() # [0,1,2,3,4] 5 >>> a.insert(0, 42) # [42,0,1,2,3,4] >>> a.pop(0) # [0,1,2,3,4] 5.5 >>> a.reverse() # [4,3,2,1,0] >>> a.sort() # [0,1,2,3,4]

  39. Slovarji • Hash tabele, "asociativna polja" d = {"duck": "eend", "water": "water"} • Lookup: d["duck"] -> "eend" d["back"] # sprozi KeyError exception • Delete, insert, overwrite: del d["water"] # {"duck": "eend", "back": "rug"} d["back"] = "rug" # {"duck": "eend", "back": "rug"} d["duck"] = "duik" # {"duck": "duik", "back": "rug"}

  40. Še več operacij s slovarji • Ključi, vrednosti, elementi: d.keys() -> ["duck", "back"] d.values() -> ["duik", "rug"] d.items() -> [("duck","duik"), ("back","rug")] • Preverjanje prisotnosti: d.has_key("duck") -> 1; d.has_key("spam") -> 0 • Values of any type; keys almost any {"name":"Guido", "age":43, ("hello","world"):1, 42:"yes", "flag": ["red","white","blue"]}

  41. Podrobnosti o seznamih • Ključev ne smemo spreminjati: • števila, nizi, tuples konstant • Po tvorbi jih ne smemo več spreminjati • Razlog jehashing (tehnika hitrega iskanja) • neseznami ali drugi slovarji • Te tipe objektov lahko spreminjamo “na mestu" • Ni omejitev pri vrednostih • Ključe lahko navajamo v poljubnem zaporedju • Spet zaradi hashing

  42. Tuples ključ = (priimek, ime) tocka = x, y, z # lahko tudi z oklepaji x, y, z = tocka# razpakiranje lastname = key[0] singleton = (1,) # vejica na koncu!!! empty = () # oklepaji! V primerjavi tuples sseznami tuples niso spremenljivi

  43. Spremenljivke • Ni potrebna deklaracija • Potreba po prirejanju (inicializacija) • Uporaba neinicializiranih spremenljivk povzroči izjemo • Ni tipov ifprijateljsko: pozdrav = “Dober dan" else: pozdrav = 12**2 printpozdrav • Vse so “spremenljivke": • Tudi funkcije, razredi, moduli

  44. Pomen referenc • Prirejanje dela z referencami • x = y #ne naredi kopije y • x = y # x naslavljaobjekt, ki ga naslavlja y • Zelo uporabno; toda previdnost! • Primer: >>> a = [1, 2, 3] >>> b = a >>> a.append(4) >>> print b [1, 2, 3, 4]

  45. Spreminjanje souporabljenega seznama a 1 2 3 1 2 3 a b a = [1, 2, 3] b = a a 1 2 3 a.append(4) 4 b

  46. Spreminjanje celoštevilčnega podatka 1 a a = 1 a 1 b = a b new int object created by add operator (1+1) 2 a a = a+1 old reference deleted by assignment (a=...) 1 b

  47. ifpogoj: stavki [elifpogoj: stavki] ... else: stavki whilepogoj: stavki forvarinzaporedje: stavki break continue Krmilne strukture

  48. V jeziku Python: for i in range(20): if i%3 == 0: print i if i%5 == 0: print “Zadetek!" print "---" V jeziku C: for (i = 0; i < 20; i++) { if (i%3 == 0) { printf("%d\n", i); if (i%5 == 0) { printf(“Zadetek!\n"); } } printf("---\n"); } Zamik skupin 0 Zadetek! --- --- --- 3 --- --- --- 6 --- --- --- 9 --- --- --- 12 --- --- --- 15 Zadetek! --- --- --- 18 --- ---

  49. Funkcije, Procedure def ime(arg1, arg2, ...): """dokumentacija""" # opcijski opis stavki return# iz procedure returnizraz# iz funkcije

More Related