JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ ]

Podobne dokumenty
JĘZYK PYTHON NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Dr Marcin Lewandowski [ mlew@ippt.pan.pl ] Strona kursu:

Python! Lekcja 1 podstawy języka, typy danych

Zaawansowany kurs języka Python

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

Informatyka 2015/16 wykład 9. Pliki Sterowanie przebiegiem programu cz. 2. Dr inż. Witold Nocoń (p. 230)

Kurs rozszerzony języka Python

Python. Wprowadzenie. Jolanta Bachan

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Kurs rozszerzony języka Python

Programowanie obiektowe

Współczesne Narzędzia Obliczeniowe - Python

Wstęp do programowania

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Podstawy. Jan Koprowski Politechnika Gdańska, FTiMS Informatyka Stosowana

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Systemy kodowania. Jolanta Bachan

Zaawansowany kurs języka Python

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Plan. krótkie opisy modułów. 1 Uwagi na temat wydajności CPython a. 2 Podstawowe techniki poprawiające wydajność obliczeniową

Programowanie RAD Delphi

Podstawy programowania w Pythonie

(Średnio) zaawansowane programowanie w C++ (ZPR)

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Wyjątki. try - except

Zaawansowane techniki programowania C#

Kurs rozszerzony języka Python

Podstawy bioinformatyki 2017/18

Komunikacja człowiek-komputer

Kurs języka Python. Lista 1.

Laboratorium Programowania Kart Elektronicznych

Architektura komputerów

MATERIAŁY DO ZAJĘĆ II

Zaawansowany kurs języka Python

Hackowanie zamrożonych binariów

Pisząc kod w Pythonie na pewno już nie raz coś poszło nie tak i Shell wypisał komunikat o błędzie podobny do poniższego:

Plan podstawowe operacje we/wy

Programowanie w Ruby

Język Python (2) Język Python (2) 1/36

2. Składnia Pythona. Robert Janczewski. Gdańsk, 2014

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Pracownia Komputerowa wyk ad VII

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

JAVA?? to proste!! Autor: wojtekb111111

Język Python. Język Python 1/35

Programowanie w języku Python. Grażyna Koba

Microsoft IT Academy kurs programowania

Programowanie w Sieci Internet. Python: Operacje z plikami oraz obsługa wyjątków

Python. Wprowadzenie. Wydanie IV

Programowanie obiektowe

Biblioteka standardowa - operacje wejścia/wyjścia

Laboratorium Programowania Kart Elektronicznych

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Python wstęp. Michał Bereta

Typy danych, cd. Łańcuchy znaków

3. Biblioteka standardowa Pythona

Tworzenie listy polega na podaniu jej elementów oddzielonych przecinkiem w nawiasach kwadratowych:

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Zaawansowany kurs języka Python

PLNOG#10 Hadoop w akcji: analiza logów 1

Zaawansowany kurs języka Python

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Delphi Laboratorium 3

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

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

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

Kier. MTR Programowanie w MATLABie Laboratorium

Strumienie, pliki. Sortowanie. Wyjątki.

Java Podstawy. Michał Bereta

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Autor: dr inż. Katarzyna Rudnik

Programowanie obiektowe

Języki programowania imperatywnego

Biblioteki wejścia/wyjścia. Strumienie we/wy (I/O)

Pracownia Komputerowa wyk ad IV

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Zaawansowane aplikacje WWW - laboratorium

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

PHP: bloki kodu, tablice, obiekty i formularze

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

BIBLIOTEKA NUMPY, CZĘŚĆ 1

Programowanie obiektowe

Strumienie, pliki. Sortowanie. Wyjątki.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

( rednio) zaawansowane programowanie w C++ (ZPR)

Pliki. Informacje ogólne. Obsługa plików w języku C

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Pracownia Komputerowa wykład IV

Smarty PHP. Leksykon kieszonkowy

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Algorytmy i struktury danych. wykład 1

Transkrypt:

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA Marcin Lewandowski [ mlew@ippt.gov.pl ]

PYTHON 3 2

Int int jest obecnie odpowiednikiem dawnego long int nie ma wartości maksymalnej (sys.maxint) 2/4 == 0.5 dzielenie jest już zmiennopozycyjne! 2//4 == 0 zwraca rezultat stałopozycyjny Zapis ósemkowy: 0o720 zamiast 0720 3

Stringi UNICODE Typ str (string) jest UNICODE! Nie można używad u"..." dla stringów Unicode Stringi binarne (1znak = 1bajt) wymagają zapisu b"..." Typy str i bytes nie mogą byd mieszane - trzeba wykonywad konwersję: str -> bytes: str.encode() bytes -> str: bytes.decode() Alternatywnie: bytes(s, encoding=...) i str(b, encoding=...) 4

bytes i bytearray str i bytes są niemodyfikowalne (immutable) Typ bytearray jest modyfikowalnym do buforowanie danych binarnych Pliki otwierane w trybie tekstowym używają funkcji encoding do konwersji pomiędzy strings w pamięci i bajtami na dysku Pliki w trybie binarnym używają bytes/ bytearray 5

bytes Definicja stringów binarnych a = b"acme 50 91.10" # literał b = bytes([1,2,3,4,5]) # z listy c = bytes(10) # tablica 10 zero-bajtów d = bytes( ąćęłń","utf-8") # encoding ze stringu Uwaga to są tablice bajtów! >>> s = b"acme 50 91.10" >>> s[0] 65 >>> s[1] 67 6

Encoding dla plików Funkcja open() ma opcjonalny parametr: encoding: f=open("a.txt","rt,encoding="latin-1") Jeśli niepodany (domyślny): >>> f = open("somefile.txt","rt") >>> f.encoding 'UTF-8' 7

Latin-1 Latin-1 (znany także jako "iso-8859-1") Ograniczony dla znaków 8-bit (0-255) Wartości bajtów 1-1 Emuluje zachowanie Python 2.x Najszybszy encoding dla czystych 8-bitowych plików tekstowych 8

Encoding everywhere >>> import sys >>> sys.stdin.encoding 'UTF-8' >>> sys.stdout.encoding 'UTF-8 Uwaga na encoding zależny od ustawionego locale w OS: >>> import sys >>> sys.stdout.encoding 'US-ASCII' 9

Builtins Usunięte builtins: apply() callable() coerce() execfile() the file type reduce() reload() dict.has_key() Zmienione: raw_input() -> input() 10

print jest funkcją!!! 11

Nowe formatowanie stringów Po staremu: s = "%10s %10d %10.2f" % (name, shares, price) Po nowemu (Python 3): s = "{0:10s} {1:10d} {2:10.2f}".format(name,shares,price) Patrz dokumentacja Python 3 format() 12

ITERATORY Te funkcje zwracają Iteratory zamiast list: dict.keys(), dict.items(), dict.values (nie wspierane: dict.iterkeys(), dict.iteritems(), dict.itervalues()) map() filter() zip() range() robi za dawne xrange() 13

Uwaga na ITERATORY # To już nie działa w PYTHON 3! k = d.keys(); k.sort() # Użyj k = sorted(d) # to jest obiekt typu iterator! >>> {1: 0}.keys() <dict_keys object at 0x7ffdf8d53d00> 14

Listy vs. Iteratory PYTHON 2.x PYTHON 3 a = map(lambda x: x[1], items) a = [x[1] for x in items] for name in map(str.lower, names):... a = filter(lambda n: n%2==0, nums) for key in filter(str.isdigit, keys):... dict(zip(sins, persons)) bez zmian a = [n for n in nums if n%2==0] bez zmian bez zmian 15

Dictionary comprehensions Było dla list, tera jest też dla słowników: a = {key.upper():value for key,value in d.items()} 16

Wyjątki # Stara składnia raise Exception, Ooop exception! # Nowa składania exception( Ooop exception! ) try: a=int( hotdog ) except ValueError as oops: print( ValueError has occurred, oops) 17

Moduły usunięte cfmfile cl md5 and sha (replaced with hashlib) mimetools, MimeWriter, mimify, multifile, and rfc822 (replaced with the e-mail package) posixfile sv timing (use time.clock instead) Canvas commands and popen2 (replaced with subprocess) compiler dircache dl fpformat htmllib (replaced with HTMLParser) mhlib (replaced with mailbox) stat (changed to os.stat) urllib (replaced with urllib2) 18

Moduły zmienione _winreg -> winreg ConfigParser -> configparser copy_reg -> copyreg Queue -> queue SocketServer -> socketserver markupbase -> _markupbase repr -> reprlib test.test_support -> test.support Zintegrowane: dbm: anydbm, dbhash, dbm, dumbdbm, gdbm, whichdb html: HTMLParser, htmlentitydefs http: httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib tkinter zawiera całego Tkinter (poza turtle) urllib: urllib, urllib2, urlparse, robotparse xmlrpc: xmlrpclib, DocXMLRPCServer, SimpleXMLRPCServer 19

Narzędzie 2to3 Automatyczne narzędzie do konwersji kody Pythona 2.x do Pythona 3. Narzędzie 2to3 znajduje się w podkatalogu: Tools/scripts Wewnętrznie korzysta z modułu: lib2to3 Użycie z zapisem do oryginalnego pliku: $ 2to3 -w ex.py (tworzy także backup pliku oryginalnego ex.py.bak) 20