Kurs języka Python. Wykład 5. Marcin Młotkowski. 9 listopada Rodzaje parametrów funkcji. 2 Biblioteka Tk. 3 Układanie kontrolek w oknie

Podobne dokumenty
Zaawansowany kurs języka Python

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python

Programowanie w Sieci Internet. Python: Wątki. Kraków, 12 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Kurs rozszerzony języka Python

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

Szybkie tworzenie grafiki w GcIde

Zaawansowany kurs języka Python

Komputerowe systemy na rynkach finansowych. wykład 5. MQL4 - funkcje operujące na obiektach wykresu

Wykład 4: Klasy i Metody

Kurs rozszerzony języka Python

Zaawansowany kurs języka Python

Technologie Informacyjne Mechatronika 2012/2013 Turtle

WxPython jest platformą pozwalającą tworzyd aplikacje okienkowe nie tylko dla systemu Windows ale i Mac czy Unix.

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

System operacyjny Linux

Języki i metody programowania Java Lab2 podejście obiektowe

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Projektowanie aplikacji internetowych laboratorium

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Java - interfejs graficzny

Ćwiczenia 9 - Swing - część 1

Zaawansowane aplikacje WWW - laboratorium

rozdział 2: WSTĘP DO TKINTER

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Programowanie aplikacji na urządzenia mobilne

rozdział 4: WŁASNOŚCI WIDŻETÓW

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Wykład 7: Pakiety i Interfejsy

Zaawansowany kurs języka Python

Programowanie obiektowe

Programowanie obiektowe zastosowanie języka Java SE

Metaprogramowanie w Ruby

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

Programowanie obiektowe i zdarzeniowe

Wprowadzenie do Python

Kurs rozszerzony języka Python

Visual Studio instalacja

Wstęp do programowania

Twisted. Silnik Twojego Internetu. Jan Urbański Ducksboard. PyWaw #25, Warszawa, 10 czerwca 2013

Kurs rozszerzony języka Python

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia

Technologie informacyjne: Excel i Python

Programowanie Obiektowe GUI

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników

Laboratorium programowania urządzeń mobilnych

Programowanie obiektowe

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

Programowanie w środowisku graficznym GUI

Praktyka programowania projekt

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36

Programowanie zaawansowane

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Sphinx - system dokumentacji dla Pythona

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie

Kurs rozszerzony języka Python

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Dodanie nowej formy do projektu polega na:

Programowanie funkcyjne w Pythonie

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie obiektowe

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie komponentowe

Technologie cyfrowe semestr letni 2018/2019

Programowanie i projektowanie obiektowe

Spis treści. Optymalizacja jednowymiarowa

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Wątki i komunikacja między nimi w języku Python

Aplikacje okienkowe. Kurs systemu Unix 1

Dźwięk w IOS. Wykład 8. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.

Kurs języka Python. Wątki

imei CYFROWE PRZETWARZANIE SYGNAŁÓW Laboratorium Temat: Tworzenie aplikacji w środowisku LabWindows/CVI Instytut Metrologii, Elektroniki i Informatyki

Kurs języka Python. Wykład 13. Marcin Młotkowski. 18 stycznia Rozszerzenia Pythona w C Python/C API. 2 Osadzanie Pythona w C

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Programowanie obiektowe

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

PyX jest pakietem Pythona do grafiki wektorowej. Pozawala zatem tworzyd pliki EPS oraz PDF.

Znajdywanie pierwiastków nieliniowych układów równań z pomocą pakietu SciPy. Bartłomiej Brzozowiec

Programowanie obiektowe

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

LABORATORIUM 7 Cel: 1_1

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Programowanie komponentowe 5

Podstawowe komendy. Ćwiczenie 1

Wykresy i interfejsy użytkownika

Zaawansowany kurs języka Python

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Oto istotne informacje o skrótach klawiszowych ZoomText:

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

Zaawansowany kurs języka Python

Transkrypt:

Wykład 5. 9 listopada 2009 1 Rodzaje parametrów funkcji 2 3 4

Parametry domyślne Wartość domyślna parametrów def log(val, base=2.718281):... def foo(arg1=[], arg2="dwa", arg3=3): print log(34, 10), log(12) print foo([1,2,3], "abcd", 12) print foo([1,2,3], "abcd") print foo([1,2,3]) print foo()

Parametry domyślne Wartość domyślna parametrów def log(val, base=2.718281):... def foo(arg1=[], arg2="dwa", arg3=3): print log(34, 10), log(12) print foo([1,2,3], "abcd", 12) print foo([1,2,3], "abcd") print foo([1,2,3]) print foo()

Uwagi Rodzaje parametrów funkcji Uwaga Wartości domyślne parametrów są obliczane tylko raz def f(a, L=[]): L.append(a) return L Rezultat >>> print f(1) [1] >>> print f(2) [1, 2] >>> print f(3) [1, 2, 3]

Uwagi Rodzaje parametrów funkcji Uwaga Wartości domyślne parametrów są obliczane tylko raz def f(a, L=[]): L.append(a) return L Rezultat >>> print f(1) [1] >>> print f(2) [1, 2] >>> print f(3) [1, 2, 3]

Argumenty nazwane def html_e(body="", color="navyblue", font="arial", f_size="12"): return... html_elem(color="white", body="a kuku")

Argumenty nazwane def html_e(body="", color="navyblue", font="arial", f_size="12"): return... html_elem(color="white", body="a kuku")

Funkcje ze zmienną liczbą argumentów def my_print(prompt=">>>", *args): for a in args: print prompt, e my_print("one") my_print("jeden", 2) my_print("jeden", 2, [1,2,3])

Funkcje ze zmienną liczbą argumentów def my_print(prompt=">>>", *args): for a in args: print prompt, e my_print("one") my_print("jeden", 2) my_print("jeden", 2, [1,2,3])

Parametry kluczowe def html_attrs(**attrs): for (attr, val) in attrs.iteritems(): print attr, =, val html_attrs(id= 123, name= ozdobnik, color= red )

Parametry kluczowe def html_attrs(**attrs): for (attr, val) in attrs.iteritems(): print attr, =, val html_attrs(id= 123, name= ozdobnik, color= red )

Mieszanie argumentów def html_ul(comment="", *ul_list, **attribs):

Biblioteki graficzne w Pythonie curses: interfejs tekstowy Tkinter (Tk interface): biblioteka okienkowa Tk + Tix (Tk extension) Pygtk, pygnome: API do środowiska Gtk/Gnome PyQT: API do QT wxwindows OpenGL PyWin32

Tkinter Rodzaje parametrów funkcji Elementy składowe Okna Kontrolki (widgety) Zdarzenia i funkcje zwrotne (callbacks)

Przykład Rodzaje parametrów funkcji Aplikacja, która rysuje figury zadane przez użytkownika czyści ekran na żądanie

Wynik Rodzaje parametrów funkcji

Kontrolki Rodzaje parametrów funkcji inter (tkinter w 3.0): class Frame(Widget): okno class Entry(Widget): wpisywanie tekstu class Label(Widget): tekst class Menu(Widget): menu

Kontrolki w akcji Menu Entry Label Button

Rysowanie, klasa Canvas

Schemat implementacji from Tkinter import * from turtle import * class Application(Frame):... app = Application() app.master.title("rysownik") app.mainloop()

Konstruktor klasy class Application def init (self, master=none): Frame. init (self, master) self.grid() self.createwidgets()

Utworzenie kontrolek, cz. 1 def createwidgets(self): self.mk_menu() self.label = Label(self, text = "Jaką figurę narysować?") self.label.grid() self.entry = Entry(self) self.entry.grid()

Utworzenie kontrolek, cz. 2 cd. metody def createwidgets(self) self.cs = Canvas(self) self.cs.grid() self.quitbutton = Button(self, text="koniec", command=self.quit) self.quitbutton.grid()

Utworzenie menu def mk_menu(self): self.mb = Menubutton(self, text= Plik ) self.mb.grid(sticky=nw) self.menu = Menu(self.mb) self.mb["menu"] = self.menu self.menu.add_command(label= Rysuj, command = self.cb_rysuj) self.menu.add_command(label= Wyczyść, command = lambda : self.cs.delete( all ))

Funkcje zwrotne Każde kliknięcie na kontrolkę powoduje wywołanie zdarzenia Zdarzenie może być obsłużony przez funkcję zwrotną (callback)

Implementacja funkcji zwrotnej Metoda klasy Application def cb_rysuj(self): self.pen = RawPen(self.cs) if self.entry.get().strip() == kwadrat : for i in range(4): self.pen.forward(60) self.pen.right(90) else: for dist in range(40): self.pen.forward(4*dist) self.pen.right(90) Podłączanie obsługi zdarzeń self.menu.add_command(label= Rysuj, command = self.cb_rysuj)

Implementacja funkcji zwrotnej Metoda klasy Application def cb_rysuj(self): self.pen = RawPen(self.cs) if self.entry.get().strip() == kwadrat : for i in range(4): self.pen.forward(60) self.pen.right(90) else: for dist in range(40): self.pen.forward(4*dist) self.pen.right(90) Podłączanie obsługi zdarzeń self.menu.add_command(label= Rysuj, command = self.cb_rysuj)

Zarządzanie układem kontrolek w oknie: model grid class Application def init (self, master=none): Frame. init (self, master) self.grid()...

Model grid Rodzaje parametrów funkcji

Metoda grid Rodzaje parametrów funkcji.grid(): umieszczenie kontrolki w kolejnym wierszu okna.grid(column=1, row=2).grid(columnspan=2, rowspan=3)

Przykład: klawiatura numeryczna Źródło: Wikipedia

Implementacja col = 0 for sgn in [ NumL, /, *, - ]: wgt = Button(self, text=sgn) wgt.grid(row=1, column=col) col += 1 for num in range(9): wgt = Button(self, text=str(num + 1)) wgt.grid(row= 4 - num/3, column = num % 3)

Implementacja, cd wgt = Button(self, text= - ) wgt.grid(row=1, column=3) wgt = Button(self, text= + ) wgt.grid(row=2, column=3, rowspan=2) wgt = Button(self, text= Enter ) wgt.grid(row=4, column=3, rowspan=2) wgt = Button(self, text= 0 ) wgt.grid(row=5, column=0, columnspan=2) wgt = Button(self, text= Del ) wgt.grid(row=5, column=2)

Wynik ;-) Rodzaje parametrów funkcji

Wynik ;-) Rodzaje parametrów funkcji

Położenie kontrolki w komórce NW N NE W CENTER E SW S SE

Umieszczenie kontrolki w komórce self.mb = Menubutton(self, text= Plik ) self.mb.grid(sticky=nw)

Upiększanie kontrolek Zmiana kolorów bt = Button(self, text= koniec, background= red, foreground= #00ffff ) Zmiana czcionek import tkfont font = tkfont.font(family= Helvetica, size=18) self.label = Label(self, text = "to jest tekst", font=font)

Upiększanie kontrolek Zmiana kolorów bt = Button(self, text= koniec, background= red, foreground= #00ffff ) Zmiana czcionek import tkfont font = tkfont.font(family= Helvetica, size=18) self.label = Label(self, text = "to jest tekst", font=font)

Inicjowanie grafiki żółwiowej class Keypad def cb_rysuj(self): self.pen = RawPen(self.cs) if self.entry.get().strip() == kwadrat : for i in range(4): self.pen.forward(60) self.pen.right(90) else: for dist in range(40): self.pen.forward(4*dist) self.pen.right(90)

Poruszanie pisakiem forward(odległość) backward(odległość) goto(x, y)

Konfiguracja sposobu pisania up() down() width(szerokość) color(r, g, b) color(s)

Zmiana kierunku pisania left(kąt) right(kąt) setheading(kąt)

Demo Rodzaje parametrów funkcji >>> import turtle >>> turtle.demo()