Przed rozpoczęciem pracy z notatnikiem zmień jego nazwę zgodnie z wzorem: {NrAlbumu}_{Nazwisko}_{Imie}_{PoprzedniaNazwa}
.
Przed wysłaniem notatnika upewnij się, że rozwiązałeś wszystkie zadania/ćwiczenia, w szczególności, że uzupełniłeś wszystkie pola YOUR CODE HERE
oraz YOUR ANSWER HERE
. Możesz również sprawdzić czy twoje rozwiązania przechodzą wstępną walidację (Validate).
Zapoznaj się z treścią niniejszego notatnika czytając i wykonując go komórka po komórce. Wykonaj napotkane zadania/ćwiczenia.
Na zajęciach korzystać będzimy z Pythona w wersji 3.6+ z dystrybucji Anaconda. W salach komputerowych Anaconda została już zainstalowana. Do korzystania na własnych komputerach można pobrania z: https://www.continuum.io/downloads. Jest to dystrybucja Pythona co oznacza, że instalujemy interpreter jaki całą masę dodatkowych pakietów, listę pakietów można zleźć tu: https://docs.continuum.io/anaconda/pkg-docs. Instalujemy z domyślnymi ustawieniami czyli klikamy Next, Next, ...
Po zainstalowaniu w menu Start pojawi się Anaconda3
Podczas zajęć pracujemy z wykorzystaniem narzędzia Jupyter Notebook
(dostępnego w Start -> Anaconda -> Jupyter Notebook). Jest to interaktywna konsola Pythona (pracująca w oparciu o przeglądarkę) w postaci notebooka (ala notebook w Mathematice), czyli taki plik jak właśnie przeglądasz, więcej o Jupyter na http://jupyter.org/.
Można zainstalować sobie "czystą" wersje Pythona w wersji 3.6+ ze strony https://www.python.org/. Podczas instalacji należy zaznaczyć "dadaj do PATH" czy jakoś tak, co spowoduje że będziemy mogli korzystać z interpretera pythona bezpośrednio w konsoli cmd
bez podawania ścieżki.
Instalując "czystego Pythona" zainstalujemy tylko podstawowe biblioteki, aby móc korzystać z Jupyter Notebook trzeba go sobie samemu doinstalować. Aby to zrobić trzeba w konsoli cmd
wpisać polecenie
pip install jupyter
czasami zamiast pip
trzeba użyć pip3
(zwłaszcza jak korzysta się Pythona w obu wersjach 2 i 3). Czasami trzeba też zakutualizować narzędzie pip
, do tego służy polecenie
pip install --upgrade pip
Jakby brakowało innych pakietów to należy je zainstalować w analogiczny sposób, tj.
pip install nazwa_pakietu
Dokumentacja Python 3 (https://docs.python.org/3/).
Najłatwiej uruchomić Jupyter Notebook klikając w Start -> Anaconda -> Jupyter Notebook, jednak lepiej uruchomić konsolę cmd
, ustawić się w katalogu (należy go wcześniej utworzyć), w którym przechowywane będą materiały z zajęć komendą
cd sciezka\do\katalogu
a następnie uruchomić Jupyter Notebook komendą
jupyter notebook
Tak procedura spowoduje, że Jupyter uruchomi się w przeglądarce i odrazu ustawi jako katalog roboczy folder który sobie stworzyliśmy.
Czasami przy pierwszym uruchomieniu w konsoli pojawia się link z tokenem, który należy skopiować i wkleić do przeglądarki www.
# to jest komentarz jednolinijkowy, interpreter pomija linie zaczynające się od '#'
# Wykonaj komórkę (Shift+Enter) i zobacz że nic się nie wykona
"""
To jest komentarz wielolinijkowy, wszystko pomiędzy trzema znakami cudzysłowia (alternatywnie trzema apostrofami)
traktowane jest jako łańcuch znaków. Jeśli nie zostanie on przypisany do żadnej zmiennej to będzie traktowany jako
komentarz. Często taki sposób wykorzystywany jest do dokumentowania kodu.
"""
print()
¶Funkcja print()
przyjmuje dowolną liczbę argumentów, dowolnego typu (no nie do końca dowolnego) i ma też parę parametrów/opcji, ale o tym innym razem.
Funkcja print
jest tak zwaną funkcją wbudowaną, inne dostępne i czasami przydatne funkcje wbudowane https://docs.python.org/3/library/functions.html.
print('Hello')
print('Hello',1,3,[1,3],2+4j)
print('Hello',1,3,[1,3],2+4j, sep=';',end=':')
a = 2 # przypisujemy zmiennej a liczbę całkowitą 2
print(a) # wydruk zmiennej a
type(a) # wbudowana funkcja type() zwraca typ danego obiektu
Przykładowe metody obiektu int
. Wciskając po napisaniu kropki Tab
wyświetlone zostaną dostępne pola i metody danego obiektu.
a.bit_length()
float
(liczba zmiennoprzecinkowa)¶b = 2.5
print(b)
type(b)
b.is_integer()
complex
(liczba zespolona)¶z = 2+4j # j jednostka urojona, piszemy z prawej strony bez spacji
print(z)
type(z)
z.imag
bool
(prawda, fałsz)¶prawda = True
falsz = False
type(prawda)
tuple
(krotka)¶Krotka to zestawienie kilku obiektów w jeden obiekt. Mogą to być obiekty różnych typów.
a = (1, 2, 3, 4)
b = (1, 3.5, 'a', a)
print(a)
print(b)
print(len(a))
type(a)
Elementy krotki można rozpakować do pojedynczych zmiennych.
# rozpakowywanie krotki
a,b,c = (1, 2.5, 1+3j)
d = (1, 2.5, 1+3j)
print(a)
print(b)
print(c)
print(d)
Krotka jest obiektem niemodyfikowalnym tzn. nie można przypisać nowego wartości na danej pozycji.
k = (1, 2.5)
print(k[0])
k[0] = 4.5
str
(łańcuch znaków)¶z = 'Witaj świecie'
print(z)
type(z)
print(z.upper())
+, -, *, /, //, **, %
)¶# dwie liczby typu int
a = 2
b = 5
print(a+b)
print(a-b)
print(a*b)
print(a/b) # rzutuje na float
print(a//b) # int
print(a**b) # potęgowanie
print(a%b) # reszta z dzielenia, modulo
Operatory arytmetyczne definiowane są również dla prawie wszystkich typów danych nie tylko liczbowych. Co ważne, Python jest silnie typowany co oznacza m.in., że nie można dowolnie łączyć typów w operacjach arytmetycznych.
2.5 + 'a'
Jednak dla niektórych typów działa tak zwana konwersja niejawna (rzutowanie na obiekt klasy "nadrzędnej")
a = 2.5 + (2-3j)
print(a)
type(a)
==
, >
, >=
, <
, <=
, !=
)¶Zawsze zwracany jest typ bool
(True, False).
print(2==3)
print(2!=3)
print(2<3)
is
, is not
oraz słowo kluczowe None
¶a = 2
b = 3
c = 2
print(a is b)
print(a is c)
print(b is not c)
d = None # None oznacza 'nic', pusty obiekt
print(d is None)
math
.¶W Python wbudowane są niektóre podstawowe finkcje matematyczne, taki jak abs
, min
, max
, sum
, pow
. Inne znaleźć można w bibliotece (module) math
. Import bibliotek (modułów, pakietów) w języku Python dokonuje się za pomocą słowa kluczowego import
.
print(min(1,2,-4,2))
print(max(2, 1.4, 3, 5.5))
abs(-4)
# aby wczytać pakiet math wpisujemy
import math
# możemy zaimportowac tylko wybrane funkcje
from math import sin, cos
math.log(1)
sin(math.radians(90))
input()
¶Funkcja input()
zwraca obiekt typi str
(łańcuch znaków/napis). Wobec czego jeśli chcemy wprowadzić liczbę musimy ją po wczytaniu skonwertować na odpowiedni typ stosują metody int()
, float()
lub complex()
.
a = input()
print('Wprowadzona wartość to:', a)
print('Typ wprowadzonej wartości:', type(a))
print('Podaj liczbe rzeczywsitą: ')
a = input()
a = float(a)
b = a.as_integer_ratio()
print('Licznki:', b[0])
print('Mianowni:', b[1])
Napisz program, który przeczyta ze standartowego wejścia dwie liczby rzeczywiste i zapisze je kolejno w zmiennych $x$, $z$ typu float
, przeczyta dwie liczby całkowite i zapisze je w zmiennych $i$, $j$ typu int
, a następnie obliczy wartości następujących wyrażeń arytmetycznych:
$$w=\sqrt[3]{\frac{x+2}{i}} \sin^{j}(x^2+z^2)$$
$$v={\frac{\ln x^2+2x^2+z^{-2}}{(x+z)i}}+\frac{i}{j} $$
$$y={\frac{x \ln(x^2+1)}{2}}\sin^{2}(2x^2-1) $$
Dla $x=1.5, z=2.3, i=2, j=3\ $ wyrażenia te mają wartości:
$w = 1.036828279188784,\quad v = 1.3903464210141043,\quad y = 0.10877412656500485$
import math
# YOUR CODE HERE
raise NotImplementedError()
Jaka jest wartość funkcji: $$ F(x,y)=\frac{1}{f}\left(-ae^{[-b\sqrt{\frac{1}{n}(x^2+y^2)}]}-e^{[\frac{1}{n}(\cos(cx)+\cos(cy))]}+a+e+d \right) $$ dla $a=20, b=0.2, c=2\pi, d=5.7, f=0.8, n=2$ w punktach:
a) $(x,y) = (-1.0,1.0)$
b) $(x,y) = (0.0,1.0)$
import math
# YOUR CODE HERE
raise NotImplementedError()
Napisz program, który obliczy pole oraz objętość walca. Użyj stałej $\pi$ z biblioteki math
.
import math
print('Podaj wysokość walca: ')
h = input()
print('Podaj promień podstawy: ')
r = input()
# YOUR CODE HERE
raise NotImplementedError()
Napisz program, który zaokrągli podaną liczbę w górę do podanej liczby miejsc po przecinku.
import math
print('Podaj liczbę: ')
liczba = input()
print('Podaj liczbę miejsc po przecinku: ')
miejsca = input()
# YOUR CODE HERE
raise NotImplementedError()
Napisz program, który zamieni wspórzędne biegunowe na współrzędne kartezjańskie i odwrotnie. Można skorzytać z biblioteki cmath
(https://docs.python.org/2/library/cmath.html) a dokładniej z funkcji cmath.rect
oraz cmath.polar
.
import math
import cmath
print('Podaj odległość: ')
r = input()
print('Podaj kąt (w stopniach): ')
f = input()
# YOUR CODE HERE
raise NotImplementedError()
import math
import cmath
print('Podaj współrzędną x: ')
x = input()
print('Podaj współrzędną y: ')
y = input()
# YOUR CODE HERE
raise NotImplementedError()