Piotr Kasprzyk Instytut Informatyki Politechniki Śląskiej Język Python Piotr Kasprzyk Instytut Informatyki Politechniki Śląskiej
Plan prezentacji własności języka Python przykłady programów wnioski
Powody zainteresowania językiem Python cena język dla wszystkich, nie tylko dla programistów platformy: DOS, Windows/CE, MacOS, Linux możliwości: bazy danych, sieci, przetwarzanie napisów, obliczenia, integracja aplikacji
Cechy języka Python interpretowany ciekawa składnia języka duża biblioteka standardowych procedur skalowalny nieodpowiedni dla sterowników urządzeń, monolitycznych aplikacji
Python - kalkulator >>> 2 + 1 3
Operacje na liczbach zespolonych >>> (1 + 3j) * 2j (-6+2j) >>> (1 + 3j) / 2j (1.5-0.5j)
Długie liczby całkowite >>> 101010101010101L * 1111111111111111L 112233445566778877665544332211L
Ograniczniki napisów >>> 'To jest „cytat”' ”It's here”
Napisy w wielu liniach >>> '''Pierwsza linia ... Druga linia ... Trzecia linia''' 'Pierwsza linia\nDruga linia\nTrzecia linia'
Operacje łączenia i powtarzania >>> 3 * 'C' + 'P' 'CCCP'
Operacje na ciągach >>> [1,"dwa", 3.0] * 4 [1, 'dwa', 3.0, 1, 'dwa', 3.0, 1, 'dwa', 3.0, 1, 'dwa', 3.0] >>> "Konstanty"[3] 's' >>> "Konstanty"[3:7] 'stan' >>> "Konstanty"[3:] 'stanty'
Odczytanie treści pliku tekst = open(‘dane.txt’).read()
Zamiana ciągu znaków Zamiana wzorca „abc” na „wxyz” Plik „dane.txt”: ababcdacabcaa Plik „wynik.txt”: abwxyzdacwxyzaa
Zamiana ciągu znaków – wersja tradycyjna >>> plik = open('dane.txt') >>> tekst = plik.read() >>> plik.close() >>> lista = tekst.split(‘abc') >>> poprawiony = ‘wxyz'.join(lista) >>> plik2 = open('wynik.txt','w') >>> plik2.write(poprawiony) >>> plik2.close()
Zamiana ciągu znaków – lepsze wykorzystanie cech Pythona >>> open('wynik.txt','w').write(‘wxyz'.join( ... open('dane.txt').read().split(‘abc')))
Odtwarzanie dźwięku import pygame pygame.mixer.init() sound = pygame.mixer.Sound(r'C:\Media\Ding.wav') sound.play()
Obsługa napędu CD-ROM import pygame pygame.cdrom.init() cd = pygame.cdrom.CD(0) cd.get_name() cd.init() cd.get_numtracks() cd.play(1) cd.eject()
Grafika żółwia import turtle turtle.forward(30) turtle.right(90)
Pobieranie strony WWW import urllib filename, header = urllib.urlretrieve('http://serwer.pl') open(filename).read() header.headers
Transmisja plików protokół FTP import ftplib ftp = ftplib.FTP('serwer.pl') ftp.login() ftp.cwd('/pub') ftp.retrlines('LIST') ftp.retrbinary('RETR README', open('README', 'wb').write)
Pobieranie poczty protokół POP3 import poplib M = poplib.POP3('serwer.pl') M.user('użytkownik') M.pass_('hasło') numMessages = len(M.list()[1]) for i in range(numMessages): for j in M.retr(i+1)[1]: print j M.quit()
Prosty serwer TCP from socket import * s = socket(AF_INET, SOCK_STREAM) s.bind(('', 8000)) s.listen(3) conn, addr = s.accept() conn.send('Wiadomość dla odbiorcy') conn.close()
Prosty klient WWW from socket import * s = socket(AF_INET, SOCK_STREAM) s.connect(('serwer.pl',80)) s.send('GET / HTTP/1.0\r\n\r\n') s.recv(2000) s.close()
Wnioski czytelny kod o małej objętości zastosowania w różnych obszarach większa efektywność i kreatywność programisty
Integrowanie modułów POP3 Dźwięk Pliki TCP/IP FTP Python Bazy danych CD-ROM Grafika WWW
Dodatkowe informacje http://www.python.org http://diveintopython.org http://www.uselesspython.com