Tematy: uruchamianie | obliczenia | pętle | rysowanie krzywych | zadania
Python jest potężnym językiem programowania i można pisać w nim programy o ogromnych możliwościach. Z Pythonem można również pracować interaktywnie, jest wówczas doskonałym narzędziem do wykonywania obliczeń matematycznych i sporządzania wykresów.
W Pythonie nie ma tzw. zgodności wstecz
. W konsekwencji, niektóre polecenia mogą działać w nowej wersji Pythona inaczej niż działały w starej, a niektóre mogą w ogóle nie działać.
Najnowszą wersję Pythona z rodziny Python 3 można pobrać ze strony https://www.python.org/downloads/, a ostatnią wersję z rodziny Python 2
ze strony https://www.python.org/downloads/release/python-2717/.
Sposób uruchomiania zależy nieco od procesu instalacji.
Zazwyczaj są dwa sposoby uruchomienia:
python
W trybie graficznym dostępny jest (po angielsku) bardzo przyjazny tutorial i bardzo rozbudowany help. W obu trybach Python czeka na wpisanie polecenia.
Listę poleceń (instrukcji) możemy zapisać do pliku. Powstanie wtedy program. W przyszłości – zamiast wpisywać listę poleceń – wystarczy wykonać program.
Do napisania programu możemy użyć dowolnego edytora (Notepad++, Emacs, Gedit, w ostateczności Notepad). Nazwa pliku z programem jest dowolna, natomiast rozszerzeniem winno być py
.
Sposoby uruchamiania programu:
raw_input("Press any key")
cmd
), wędrówka po folderach (polecenie cd ...
) do folderu zawierającego program, wpisanie polecenia:python nazwa_programu
File ⇒ Open
po wybraniu pliku otwarte zostanie nowe okno
w którym wybieramy Run ⇒ Run Module
.
W liczbach separatorem dziesiętnym jest kropka.
Użycie przecinka między liczbami też jest dozwolone, ale przecinek nie jest wówczas separatorem –
rozdziela kolejne wspólrzędne wektora.
Po lewej stronie jest dodawanie liczb, po prawej jest wektor o trzech współrzędnych (druga z nich powstała przez dodawanie).
Operatory dodawania (+
), odejmowania (-
) i mnożenia (*
) działają zgodnie z oczekiwaniami.
Działanie operatora dzielenia (/
) jest trochę zaskakujące. Co więcej operator ten działa inaczej w Pythonie 2 a inaczej w Pythonie 3. Nieoczekiwane
zachowanie dotyczy tylko dzielenia liczb całkowitych.
Operator potęgowania ma nietypowy zapis (**
) – by obliczyć $\sqrt 2$ wpisujemy 2**0.5
.
Zazwyczaj w obliczanym wyrażeniu chcemy skorzystać z funkcji matematycznych oraz z wyników wcześniej wykonanych obliczeń.
Wyniki wcześniejszych obliczeń możemy zapamiętać w zmiennych.
Funkcje matematyczne znajdują się w pakiecie math
. Przed użyciem musimy je zaimportować. Są dwa sposoby importu:
math.sin(math.pi)
. W zamian, możemy poleceniem dir(math)
wyświetlić listę wszystkich funkcji i stałych.
sin(radians(30))
.
Możemy wpisać oba polecenia importu, uzyskamy wtedy komplet zalet: krótkie nazwy i listę obiektów matematycznych.
Policzmy $\sqrt{2^2+3^2}\cdot e^{2^2+3^2}\sin(2^2+3^2)$
Do dyspozycji mamy dwa rodzaje pętli:
while warunek
– pętla wykonywana jest dopóki spełniony jest warunek
for i in lista
– pętla wykonywana jest dla wszystkich liczb $i$ należących do listy
Korzystając z pętli while
, obliczymy przybliżoną wartość sumy szeregu $\sum \limits_{n=1}^\infty \frac{1}{n^2}$
Zsumujemy skończoną ilość wyrazów, obliczenia przerwiemy gdy kolejny obliczony wyraz będzie mały.
suma = 0 n = 1 epsilon = 0.00000001 wyraz = 1 while wyraz > epsilon: suma = suma + wyraz n = n + 1; wyraz = 1.0/(n*n) print(suma) ⇒ 1.64483406185
Pętle for
wykorzystamy do obliczenia i wyświetlenia wartości silni.
n = 30 wynik = 1 for k in range(1, n+1): wynik = wynik*k print(k, "! = ", wynik, sep = '')
range(a,b)
(liczby $a$ i $b$ są całkowite) zwraca listę liczb $[a,\,a + 1,\,\ldots,\,b - 1]$
Rysowanie wykresów wymaga zaimportowania pakietu We przykładach zakładam, że pakiet Każde z zadań można rozwiązać na wiele sposobów. Kliknięcie w przycisk Oblicz symbol Newtona $\binom{33}{17}$.
Oblicz pole trójkąta o bokach $2,\,3,\,4$.
Definicja ciągu Fibonacciego: $F_1=1,\,F_2=1,\,\dots,F_n=F_{n-2}+F_{n-1}\,\,dla\,\,n>2$. Oblicz $F_{50}$.
$\sum\limits_{i=1}^\infty \frac{1}{2^i}=1$ Jak duże musi być $n$, by $\sum\limits_{i=1}^n \frac{1}{2^i} > 0.99999$?
Narysuj kolorem czerwonym elipsę $(\frac{x}{3})^2+(\frac{y}{2})^2=1$ oraz kolorem niebieskim jej osie symetrii.
pylab
. Pakiet ten nie jest częścią standardu, zatem wymaga dodatkowej instalcji. Opis intalacji można znaleźć na stronie
https://www.techwalla.com/articles/how-to-install-pylab-on-python.
plot
. Polecenie to wymaga podania dwóch list (ciagów) liczb tej samej długości. Pierwsza lista zawiera wpółrzędne $x$ rysowanych punktów,
druga współrzędne $y$.
pylab
jest już zaimportowany poleceniem from pylab import *
.
Zadania
Kod i wynik
pozwala zobaczyć jeden z tych sposobów i poprawny wynik. Prezentowane rozwiązania
są kompletne, tzn. zawierają wszystkie konieczne polecenia importu.