PowerPoint Presentation

Слични документи
Tutoring System for Distance Learning of Java Programming Language

Uvod u računarstvo 2+2

Tutoring System for Distance Learning of Java Programming Language

Funkcije predavač: Nadežda Jakšić

PROMENLJIVE, TIPOVI PROMENLJIVIH

Tutoring System for Distance Learning of Java Programming Language

ARHITEKTURA I ORGANIZACIJA RAČUNARA

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Funkcije predavač: Nadežda Jakšić

Uvod u PHP

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Programski jezik C

Microsoft PowerPoint - C-4-1

Slide 1

Grananje u programu predavač: Nadežda Jakšić

070-ALIP2-udzbenik.indb

PowerPoint Presentation

NIZOVI

Microsoft Word - 02 Elementi programskog jezika Pascal

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Microsoft Word - 11 Pokazivaci

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Sveucilište u Zagrebu

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

Algoritmi SŠ P1

Uvod u takmičarsko programiranje

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Uvod u računarstvo 2+2

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Algoritmi i arhitekture DSP I

1

3.Kontrlne (upravlja~ke) strukture u Javi

Slide 1

P1.2 Projektovanje asemblera

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

Računarski praktikum I - Vježbe 01 - Uvod

PowerPoint Presentation

Програмирај!

P11.3 Analiza zivotnog veka, Graf smetnji

P1.3 Projektovanje makroasemblera

PowerPointova prezentacija

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Programiranje 1

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

PowerPoint Presentation

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

KDP

Slide 1

PHP kod

АГЕНЦИЈА ЗА БАНКАРСТВО РЕПУБЛИКЕ СРПСКЕ УПУТСТВО ЗА ЕЛЕКТРОНСКО ДОСТАВЉАЊЕ ПОДАТАКА ИЗ ОБЛАСТИ РЕСТРУКТУРИРАЊА БАНАКА Бања Лука, јули године

Logičke izjave i logičke funkcije

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Programiranje za UNIX Okruženje unix procesa

Fortran

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

PowerPoint Presentation

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Pojačavači

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

Microsoft PowerPoint - JavaP9_2019

SEMINAR

PASCAL UVOD 2 II razred gimnazije

03 SUBP

PowerPoint Presentation

P1.1 Analiza efikasnosti algoritama 1

Konstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun

Државно такмичење године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

01 SUBP

Strukture predavač: Nadežda Jakšić

My_P_Red_Bin_Zbir_Free

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Uvod u računarstvo 2+2

Microsoft Word - MySQL_3.doc

Microsoft PowerPoint - podatkovni promet za objavu.pptx

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

Projektovanje digitalnih sistema

KDP

Državna matura iz informatike

Str. 0 Programiranje Priručnik Programiranje Zagreb, godina Ovo je djelo dano na korištenje pod licencom Creative Commons Imenovanje-Nekomercija

Microsoft Word - Java_introduction_NEW_SYLLABUS.doc

Upitni jezik SQL

PowerPoint Presentation

Teorija skupova - blog.sake.ba

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

Inženjering informacionih sistema

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ и технолошког развоја ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

KATUŠIĆ ANTONIO.pdf

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Транскрипт:

Python tutorijal - praktični primeri -

Sadržaj: 1. Upoznavanje sa razvojnim okruženjem - Python proširenje (PTVS) za Visual Studio 2015 - Druga razvojna okruženja 2. Osnovi Python jezika - Sintaksa i konvencije - Kontrola toka programa - Osnovni tipovi podataka - Prosleđivanje parametara (funkcija i komandna linija) - Osnovne funkcije za rad sa datotekama 3. Vežbanje - Kontrola toka programa, petlje i strukture podataka - Funkcije i rad sa datotekama - Prosleđivanje ulaznih argumenata programa

Upoznavanje sa Python razvojnim okruženjem

Python razvojno okruženje (1/2) Visual Studio 2015 i PTVS: Python 3.x Visual Studio 2015 Python Tools for Visual Studio (PTVS) Python in VS 2015: Pravljenje novog projekta Podešavanje Python run-time okruženja Hello world program main funkcija moduli slobodne funkcije

Python razvojno okruženje (2/2) Druga razvojna okruženja: Visual Studio 2015 Community/Enterprise + PTVS (Win) Bilo koji tekst editor: Notepad++, Vi, Gedit Python IDE (Win/Linux/MacOS) PyCharm (Win/Linux/MacOS) Enthought Canopy (Win/Linux/MacOS)

Sintaksa i konvencije (1/7) Struktura programskog koda: Jedan iskaz po liniji Razlomljeni iskazi Komentari počinju sa # a = x + var Indentacija definiše programski blok # Function foo def foo(n): result = [] a, b = 0, 1 while b < n: result.append(b)... a, b = b, a+b return result a = math.sqrt(math.sin(b) + \ math.cos(c)) #Comment msg a = x + var # Function foo def foo(n, data): ret = [] if n==false: ret = process1(data)... else:.. ret = process2(data) return ret

Sintaksa i konvencije (2/7) Struktura programskog koda: Jedan iskaz po liniji Razlomljeni iskazi a = x + var a = math.sqrt(math.sin(b) + \ math.cos(c)) Komentari počinju sa # #Comment msg a = x + var Indentacija definiše programski blok # Function foo def foo(n): result = [] a, b = 0, 1 while b < n: result.append(b)... a, b = b, a+b!!! return result # Function foo def foo(n, data): ret = [] if n==false: ret = process1(data)... else:!!!.. ret = process2(data)!!! return ret

Sintaksa i konvencije (3/7) Struktura programskog koda: Indentacija definiše programski blok # Function foo def foo(n): result = [] a, b = 0, 1 while b < n: result.append(b) a, b = b, a+b return result # Function foo def foo(n, data): ret = [] if n==false: ret = process1(data) else: ret = process2(data) return ret Preporučuje se upotreba praznih mesta umesto tabulatora Podesiti editor tako da 1 tab bude jednak 4 prazna mesta

Sintaksa i konvencije (4/7) Imena promenljivih, funkcija i klasa: Mogu početi slovom ili donjom crtom Mogu sadržati brojeve Nisu dozvoljeni Specijalni znaci: @, %, $ itd. Rezervisanje reči Izbegavati korišćenja donje crte na početku Rezervisane reči: and as assert break class continue def del elif else except exec finally for from global if import in is lambda nonlocal not or pass print raise return try while with yield...

Literali: Sintaksa i konvencije (5/7) Numerički literali: Boolean (True, False) Celobrojna vrednost (1, 65536, 0xDEADBEEF, itd.) Vrednost sa pokretnim zarezom (1.44, 1.2345e+02, itd.) Kompleksna vrednost (4 + 5j) Znakovni literali: Niz znakova ( ovo je string, i ovo je string, itd.) Nizovi znakova predstavljeni su u ASCII formatu (1 znak 1 byte) Specijalni karakteri (\t \n itd.)

Sintaksa i konvencije (6/7) Aritmetički operatori (C\C++ like): Operatori se ponašaju očekivano: +, -, /, *, % Specijalni operatori: Operator // (deljenje sa zaokruživanje na prvi manji broj) Operator ** (a ** b broj a stepenovan b puta) Operatori poređenja (C\C++ like): Operatori se ponašaju očekivano: >, <, ==,!=, >=, <= Povratna vrednost je True ili False Logički operatori: Operatori se ponašaju očekivano: and, or, not Povratna vrednost je True ili False

Sintaksa i konvencije (7/7) Operatori dodele (C\C++ like): Operatori se ponašaju očekivano: =, +=, -=, /=, itd. Operatori za rukovanje bitima (C\C++ like): Operatori se ponašaju očekivano: <<, >>, &,, ^, ~ Operatori identiteta (Identity operators): Proverava da li su dve vrednosti (ili promenljive) identične, tj. da li se nalaze na istoj memorijskoj lokaciji Ako su dve vrednosti jednake ne implicira da su identične Operatori identiteta: is, is not

Kontrola toka programa (1/4) Iskazi if/else/elif: Iskazi if i else imaju istu semantiku kao u C\C++ jeziku Iskaz elif je skraćeno od else-if # if/else/elif example if x < 0: print( x < 0 ) elif x == 0: print( x = 0 ) else: print( x > 0 ) # if/else example if x < 0: print( x < 0 ) else if x == 0: print( x = 0 ) else: print( x > 0 )

Kontrola toka programa (2/4) while petlja: while petlja služi za uzastopno izvršenje niza iskaza dok je određeni uslov zadovoljen while_stmt ::= "while" expression ":" suite ["else" ":" suite] # while loop example x = 100 print( x < 0 ) while x!= 0: print( x =, x) x -= 1

Kontrola toka programa (3/4) for petlja: for petlja služi za prolazak (itreriranje) kroz skupove podataka kao što su znakovni nizovi, torke i liste (sekvence) for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite] # for loop example x = 1, 2, 3, 4, 5 for it in x: print( it =, it) Za potrebe inicijlaizacije koristiti range(start, stop, [step]) klasu # for loop example for it in range(5): x = it

Kontrola toka programa (4/4) Iskaze return, break i continue koristiti u skladu sa C\C++ semantikom break iskaz prekida izvršavanje petlje unutar koje se nalazi continue iskaz započinje novi ciklus petlje unutar koje se nalazi return iskaz napušta izvršavanje funkcije unutar koje se nalazi

Osnovni tipovi podataka (1/4) Osnovne kolekcije su: Lista (list) Može se menjati (mutable) Rečnik (dict) Može se menjati (mutable) Torke (tuples) Ne mogu se menjati (immutable) Skupovi (sets) Mogu se menjati (mutable) Znakovni nizovi (strings) Ne mogu se menjati (immutable) l = [] #empty list l = [1, 2, a, b ] d = {} #empty dictionary d = { key1 : 1, key2 :2} t = ((),) #empty tuple t = (1, 2, a ) s = set() #empty set s = {1, 2, 2, 3, 3, 3, 4} s = ili None #empty string s = some string Za više detalja o strukturama podataka, funkcijama i metodama pogledati zvaničnu dokumentaciju (https://docs.python.org/3/)

Osnovni tipovi podataka (2/4) Operacije nad kolekcijama (sekvencama): s1 + s2 spajanje s1 * n uzastopno se s ponavljanja n puta v1, v2, v3, v4 = s raspakivanje (npr: s je torka od 4 elementa) s[i] indeksiranje s[i:j] isecanje s[i:j:k] isecanje sa korakom k x in s da li s sadrži x len(s) dužina s any(), sum(), min(), max()

Osnovni tipovi podataka (3/4) Konverzije: int(x, (b)) - Tip string u tip int baze b float(x) - Tip string u tip float complex(r,i) - Kompleksni broj od r i j str(x) - Bilo koji tip string chr(i) - Tip int u tip char (do 255) ord(c) - Tip char (Unicode) u tip int hex(i) - Tip int u tip string, heksadecimalni zapis bin(i) - Tip int u tip string, binarni zapis oct(i) - Tip int u tip string, oktalni zapis

Osnovni tipovi podataka (4/4) Logički izrazi: True, logički tačna trvdnja False, logički netačna trvdnja 0, None i/ili prazna kolekcija!=0, kolekcija koja nije prazna

Prosleđivanje ulaznih argumenata funkcijama Prosleđivanje ulaznih argumenata funkcijama obavlja se tako što se u pozivu funkcije redom navode promenljive koje se prosleđuju #This prints a passed info into this function def print_info(name, surname, age = 35): print("name: ", name, \ Surname:, surname, \ "Age ", age) return (i) print_info( Petar, Petrovic, 32) (ii) print_info( Petar, Petrovic ) (iii) print_info( Petar )!!! Greška Napomene: 1. Za sve sekvence koji se mogu menjati (mutable) prosleđuje se referenca 2. Za sve sekvence koji se ne mogu menjati (immutable) pravi se nova kopija 3. Jednostavan način da se sekvence pošalje preko vrednosti je foo(s[:])

Prosleđivanje argumenata komandne linije Protrebno je koristiti Python sys modul sys.argv predstavlja listu ulaznih argumenata len(sys.argv) daje broj ulaznih argumenata sys.argv[0] je ime programa # Input arguments example (input.py) import sys print( argv len:, len(sys.argv)) print( argv[0]:, sys.argv[0]) print( argv[1] :, sys.argv[1]) print( argv[2] :, sys.argv[2]) Poziv: $python input.py jedan 2 Izlaz: argv len: 3 argv[0]: C:\path\input.py argv[1]: jedan argv[2]: 2

Rad sa datotekama Za rukovanje sa datotekama koriste se funkcije: open(file_name, mode), close() write(str), read(size), readline() Kao u C\C++ jeziku režimi rada sa datotekama su: read ( r ), write ( w ), append ( a ), read-write( r+ ) # Read from input and write to output file import sys fin = open( input_file_name, r ) fout = open( output_file_name, w ) for line in fin: fout. write(line) fin.close() fout.close()

Dodatni materijali Više informacija o svemu do sada pomenutom kao i Python API dostupno je u zvaničnoj Python web dokumentaciji: https://docs.python.org/3/

Primer Napisati progam koji listu parova prvih 10 brojeva čuva u rečniku pod nazivom koji definiše korisnik Ime liste treba preuzeti na ulazu Parovi brojeva (1,2), (3,4)... (9,10) predstavljaju torke Lista se čuva u rečniku koji mapira vrednost string na listu

Zadaci 1. Napisati funkciju koja računa zbir prvih N prirodnih brojeva; 2. Napisati funkciju koja računa zbir kvadrata prvih N prirodnih brojeva; parametar N se unosi kao ulazni argument programa; 3. Napiši program koji na ulazu prima dva stringa i na osnovu njih formira i ispisuje novi string koji se sastoji od dva puta ponovljena prva tri karaktera iz prvog stringa i poslednja tri karaktera drugog stringa; 4. Inicijalizovati listu sa prvih 100 brojeva i ispisati je u obrnutom redosledu; 5. Koristeći strukturu rečnink izračunati broj ponavljanja reči koje se nalaze u datoteci dict_test.txt; 6. Napisati program koji u listu smešta četiri torke formata (integer, float, string) i ispisuje ih, nakon čega briše prvu torku koja je ubačena u listu; 7. Ponoviti zadadak 6 ali umesto liste koristiti skup;