Python wstęp do programowania dla użytkowników WCSS



Podobne dokumenty
Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Zaawansowany kurs języka Python

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.

Wstęp do programowania

Wstęp do informatyki. Python 1

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Wstęp do programowania

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Python! Lekcja 1 podstawy języka, typy danych

Podstawy programowania w języku C

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Wprowadzenie do języka Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Metody numeryczne. Artur Wymysłowski, prof. PWr. Wrocław

C++ wprowadzanie zmiennych

Odczyt danych z klawiatury Operatory w Javie

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

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; a > b - a większe od b if (warunek) instrukcja1; a <= b - a mniejsze lub równe b

PROGRAMOWANIE W JĘZYKU PYTHON

Programowanie obiektowe

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

2 Przygotował: mgr inż. Maciej Lasota

MATERIAŁY DO ZAJĘĆ II

Algorytmy i struktury danych

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

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

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

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Podstawy i języki programowania

Podstawy programowania w Pythonie

Podstawy programowania w języku C i C++

Podstawy programowania C. dr. Krystyna Łapin

Programowanie C# mgr in. Dariusz Ku. p. 119A

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Języki i paradygmaty programowania

Podstawy programowania w Pythonie

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe elementy języka Python III. Wykład 3. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 50 / 277

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

1 Podstawy c++ w pigułce.

Microsoft IT Academy kurs programowania

Języki i metody programowania

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Programowanie i projektowanie obiektowe

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

Wstęp do informatyki- wykład 2

Język Python: operacje i obliczenia na danych typów prostych. Wyprowadzanie wyników.

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Python. Wprowadzenie. Jolanta Bachan

Programowanie RAD Delphi

Koło Studentów Informatyki Uniwersytetu Wrocławskiego

Wstęp do programowania

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 4. Karol Tarnowski A-1 p.

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Visual Basic for Application (VBA)

Java Podstawy. Michał Bereta

ZMIENNE. Podstawy PHP

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Wykład 2 Składnia języka C# (cz. 1)

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Podstawy bioinformatyki 2017/18

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

dr inż. Jarosław Forenc

Język C zajęcia nr 11. Funkcje

Wstęp do programowania

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Mikrokontroler ATmega32. Język symboliczny

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

Język ludzki kod maszynowy

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Programowanie strukturalne i obiektowe

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Programowanie Niskopoziomowe

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

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Przegląd języka Python. Łukasz Anwajler

Wykresy i interfejsy użytkownika

Zmienne, stałe i operatory

Powtórka algorytmów. Wprowadzenie do języka Java.

Transkrypt:

Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Wprowadzenie CHARAKTERYSTYKA JĘZYKA

Filozofia języka Python Język programowania: interpretowany, ogólnego przeznaczenia, wysokopoziomowy, ukierunkowany na czytelność kodu źródłowego. there's more than one way to do it there should be one and preferably only one obvious way to do it

Kluczowe charakterystyki interpretowany, struktura przez wcięcia, dynamiczny system typów, wiązanie nazw w czasie wykonania automatyczne zarządzanie pamięcią, wsparcie różnych paradygmatów programow. (obiektowy, strukturalny, funkcjonalny), elastyczny i rozszerzalny, bogaty w biblioteki (NumPy SciPy Matplotlib).

Python główne implementacje CPython (www.python.org) implementacja referencyjna w C Jython (www.jython.org) implementacja na maszynie wirtualnej Java IronPython (www.ironpython.org) implementacja na maszynie wirtualnej.net

Python środowiska zintegrowane Idle (natywne interaktywne IDE) Eclipse/PyDev (python, jython, IronPython) Netbeans for Python 6.5 EA (jython) Visual Studio (IronPython) Eric4/5 Komodo (komercyjny) Wiele, wiele innych

Interpreter Pythona Tryb interaktywny Python 2.7 (r27:82525, Jul 4 2010, Type "copyright", "credits" or "license()" >>> print "Hello, World!" Hello, World! >>> print 2*2 4 >>> 2*2 4 >>>

Praca wsadowa Minimalny skrypt pythona (UN*X) script1.py #!/usr/bin/env python print Hello, World! Uruchomienie: kberezow@tesla:~/python$ python script1.py albo: kberezow@tesla:~/python$ chmod a+x script1.py kberezow@tesla:~/python$./script1.py Hello, World!

Dla przypomnienia Język programowania pozwala opisać program (sposób rozwiązania problemu obliczeniowego) poznać język programowania to poznać jego składnię oraz semantykę do opisu tych składowych

Obiektowy dynamiczny system typów wszystkie wartości są obiektami: można dziedziczyć po typach wbudowanych (choć typy wbudowane w sumie nie są klasami) wszystkie zmienne (nazwy) są referencjami nazwy wiązane są w czasie wykonania dynamiczny system typów typy nie są hermetyzowane (klasa jest referencją) zgodność typów jest kontrolowana (w pewnym umiarkowanym stopniu) istnieją szerokie możliwości introspekcji

System typów języka Python ZMIENNE I WARTOŚCI

System typów języka Python Dynamiczny kontrola zgodności w czasie wykonania, zgodność typów jest umiarkowanie kontrolowana, typ mają WARTOŚCI a nie ZMIENNE, istnieją szerokie możliwości introspekcji, możliwość obliczeń na typach w czasie wykonania. Obiektowy wszystkie wartości są obiektami, wszystkie zmienne (nazwy) są referencjami, wiązanie nazw w czasie wykonania (dynamic binding),

Typy proste Typ logiczny: >>> print type(false) <type 'bool'> Typ całkowity: >>> print type(1) <type 'int'> Typ zmiennoprzecinkowy: >>> print type(1.0) <type 'float'>

Typy numeryczne i operatory arytmetyczne Typ int long float complex Reprezentacja Co najmniej 32-bitowa liczba całkowita (implementacja jako long w języku C) Liczba całkowita nieograniczonej precyzji (uwaga na spadek wydajności przy przejściu przez granicę int -> long ) IEEE 754 podwójnej precyzji (64-bity reprezentacji, 80- obliczeniowo) Para liczb typu float

Operacje wspierane przez wszystkie typy numeryczne Operator Interpretacja arytmetyczna x + y, x y Dodawanie, odejmowanie x * y, x / y Mnożenie, dzielenie x // y, x % y Iloraz całkowity (9.0//4 == 2.0), reszta z dzielenia x ** y, pow(x, y) Potęgowanie +x, -x Wartość x, negacja x divmod(x, y) Para (x // y, x % y) int(x), long(x) Wartość całkowita x float(x), Wartość zmiennoprzecinkowa x complex(x, y) x + jy abs(x) Wartość bezwzględna liczby c.conjugate() Sprzężenie liczby zespolonej

Typy arytmetyczne int i float Operatory arytmetyczne (przykłady): 10 + 9 = 19 10-9 = 1 10 * 9 = 90 10 / 9 = 1 10 // 9 = 1 10 % 9 = 1 10 ** 9 = 1000000000 10.0 + 9.0 = 19.0 10.0-9.0 = 1.0 10.0 * 9.0 = 90.0 10.0 / 9.0 = 1.11111111111 10.0 // 9.0 = 1.0 10.0 % 9.0 = 1.0 10.0 ** 9.0 = 1000000000.0 Konwersja int do long jest automatyczna def factorial(n): if n == 1: return 1; return n * factorial(n-1) >>> res = factorial(300) >>> print res.bit_length() 2042 >>> print type(res) <type 'long'> >>>

Typ float - IEEE 754 double precision def factorial(n): if n == 1: return 1.0; return n * factorial(n-1) >>> res = factorial(170) >>> print res 7.25741561531e+306 >>> >>> res = factorial(171) >>> print res inf >>> Ostrożnie z aproksymacją binarną liczb dziesiętnych >>> 0.1 + 0.2 0.30000000000000004 >>> 0.1 + 0.2 == 0.3 False (później omówimy typ dziesiętny Decimal)

Manipulacja na bitach Mają interpretację tylko na typach całkowitych: Operator A & B A B A ^ B Interpretacja Bitowy iloczyn logiczny Bitowa suma logiczna Bitowa różnica symetryczna ~A Negacja bitowa A << B A >> B Przesunięcie A o B pozycji w lewo Przesunięcie A o B pozycji w lewo Dynamiczna kontrola typów na przykładzie >>> 0.5 << 1... TypeError: unsupported operand type(s) for <<: 'float' and 'int' >>>

Operatory podstawiania Operatory podstawiania: Operator A = B A = B Interpretacja Podstawia do zmiennej A referencję do B Podstawia do zmiennej A referencję do A B - dowolny operator dwuoperandowy: +, -, *, /, //, %, **, &,, ^, <<, >>,

Operatory relacyjne Operator A == B A!= B A <> B Interpretacja Oblicza True, jeśli A jest równe B Oblicza True, jeśli A jest różne B > Oblicza True, jeśli A jest większe od B < Oblicza True, jeśli A jest mniejsze od B >= Oblicza True, jeśli A jest większe bądź równe B <= Oblicza True, jeśli A jest mniejsze bądź równe B

Typy logiczny bool Operatory logiczne: Priorytet Operacja!!! x or y!! x and y! not x Operatory relacyjne mają wyższy priorytet niż logiczne, czyli: not x == y not (x == y)

Priorytety operatorów Priorytet Operatory A == B Potęgowanie ** A!= B A <> B Jednooperandowe: ~, +, - > Mnożenie i dzielenie: *, /, %, // < Dodawanie i odejmowanie +, - >= Przesunięcie bitowe >>, << <= Iloczyn bitowy & Różnica symetryczna i suma bitowa ^, Porównania (uporządkowanie) <=, <, >, >= Porównania (ekwiwalentność) <>, ==,!= Podstawienia =, =

System typów języka Python SEKWENCJE