Podstawy Informatyki dla Nauczyciela

Transkrypt

Podstawy Informatyki dla Nauczyciela
Podstawy Informatyki dla Nauczyciela
Bożena Woźna-Szcześniak
[email protected]
Jan Długosz University, Poland
Wykład 12
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
1 / 30
Jezyk
˛
Python - Instalacja interpretera jezyka
˛
Python
W systemie Ubuntu Linux
Aby zainstalować Pythona3 wykonaj w terminalu polecenie:
$ sudo apt-get install python3
W systemie Debian Linux
Aby zainstalować Pythona3 wykonaj w terminalu polecenie:
# apt-get install python3
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
2 / 30
Jezyk
˛
Python - Instalacja interpretera jezyka
˛
Python
W systemie Windows
Interpreter Pythona 3 można bezpłatnie pobrać ze strony:
http://www.python.org/download/releases/3.1.2/
Pobieramy plik python-3.1.2.msi poprzez link
Windows x86 MSI Installer (3.1.2)
lub plik python-3.1.2.amd64.msi poprzez link
Windows X86-64 MSI Installer (3.1.2)
Instalujemy Pythona klikajac na pobrany plik.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
3 / 30
Używanie interpretera Pythona
Aby uruchomić interpreter Pythona 3 w systemie Linux
otwieramy terminal i w konsoli wpisujemy polecenie:
[xxx@xxx]$ python3
Pojawi sie˛ krótka informacja o interpreterze oraz znak zachety:
˛
>>>
Od tej chwili można wpisywać instrukcje oraz wyrażenia jezyka
˛
Python, np.
>>> 1 + 2
Po naciśnieciu
˛
klawisza <Enter> na ekranie zobaczymy
obliczony przez interpreter wynik wyrażenia 1 + 2 oraz w
nastepnej
˛
linii ponownie znak zachety.
˛
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
4 / 30
Zalecana Literatura
Python 3
Mark Summerfield. Python 3. Kompletne wprowadzenie do
programowania. Wydanie II. Wydawnictwo Helion. Gliwice,
czerwiec 2010.
Przewodnik po jezyku
˛
Python:
http://docs.python.org/py3k/tutorial/
Mark Pilgrim. Dive into Python 3.
http://diveintopython3.org/
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
5 / 30
Podstawy jezyka
˛
Python
W jezyku
˛
Python dostepne
˛
sa˛ nastepuj
˛ ace
˛ rodzaje liczb:
całkowite (0, 1, -2, itd.) – typ int
boolowskie (tylko wartości False oraz True) – typ bool
zmiennoprzecinkowe (3.14, 2.718, itd.) – typ float
zespolone (2+3j, 1j, 1+0j) – typ complex
Operatory arytmetyczne:
dodawanie + oraz odejmowanie −
mnożenie ∗ oraz dzielenie /
dzielenie całkowite //
reszta z dzielenia całkowitego %
potegowanie ∗∗
Operatory z operandami typów mieszanych przekształcaja:
˛
operandy całkowite w zmiennoprzecinkowe lub zespolone.
operandy zmiennoprzecinkowe w zespolone.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
6 / 30
Używanie interpretera Pythona
bws@compaq:~$ python3
Python 3.1.3 (r313:86834, Nov 28 2010, 11:28:10)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license"
for more information.
>>> 1+2
3
>>> 1-2
-1
>>> 3*5
15
>>> 10**2
100
>>> 100/3
33.333333333333336
>>> 100//3
33
>>> 100%3
1
>>>
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
7 / 30
Operatory porównania
Python oferuje standardowy zestaw binarnych operatorów
porównania charakteryzujacych sie˛ oczekiwana˛ semantyka:
< (mniejszy niż),
> (wiekszy
˛
niż),
== (równy),
! = (różny)
<= (mniejszy lub równy),
>= (wiekszy lub równy),
Wymienione operatory porównuja wartości obiektów, do których
odniesienia zostały wskazane w operatorze.
Wynikiem porównania jest wartość typu bool: False albo True.
Porównania, które nie maja sensu, beda powodowały zgłoszenie
wyjatku.
˛
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
8 / 30
Operatory porównania
Zmienna w Pythonie jest odniesieniem do obiektu.
Aby utworzyć zmienna˛ oraz nadać jej wartość należy użyć
instrukcji przypisania:
zmienna = wyrazenie
Przypisanie do zmiennej nie jest wypisywane przez interpreter.
Wartość może być przypisana jednocześnie wielu zmiennym, np.
a = b = c = 0
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
9 / 30
Zmienne
W trybie interaktywnym, ostatnio wydrukowane wyrażenie
przypisywane jest do zmiennej _.
Oznacza to, że jeśli używa sie˛ Pythona jako biurkowego
kalkulatora, łatwym staje sie kontynuowanie obliczeń:
>>> 55/67
0.8208955223880597
>>> round(_,3)
0.821
>>>
Zmienna _ powinna być traktowana przez użytkownika jak
zmienna tylko do odczytu.
Przypisanie do zmiennej _ jakiejkolwiek wartości stworzy lokalna˛
zmienna˛ z ta˛ sama˛ nazwa˛ przykrywajac
˛ a˛ wbudowana˛ zmienna˛ _.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
10 / 30
Słowa kluczowe
Identyfikator to dowolny ciag składajacy sie z liter, cyfr oraz
znaków podkreślenia zaczynajacy
˛ sie˛ od litery lub znaku
podkreślenia.
Spośród wszystkich możliwych nazw zmiennych 33 sa˛
zarezerwowane. Sa˛ to słowa kluczowe jezyka Python.
False
None
True
and
as
assert
break
class
continue
def
del
elif
else
except
Bożena Woźna-Szcześniak (AJD)
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
Podstawy Informatyki dla Nauczyciela
return
try
while
with
yield
Wykład 12
11 / 30
Napisy
Oprócz liczb Python może również manipulować ciagami
˛
znaków,
które można wyrazić na pare sposobów.
Moga one być objete
˛ znakami apostrofu lub znakami cudzysłowu:
>>> ’Ala ma kota’
’Ala ma kota’
>>> "Ala ma kota"
’Ala ma kota’
>>> "A\’propos"
"A’propos"
>>> ’A\’propos’
"A’propos"
>>> ’’’A\’propos’’’
"A’propos"
>>> ""A\’propos""
File "<stdin>", line 1
""A\’propos""
^
SyntaxError: invalid syntax
>>> """A\’propos"""
"A’propos"
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
12 / 30
Napisy
Interpreter wypisuje wynik działania na napisach w ten sam
sposób, w jaki sa one wprowadzane.
Sa˛ one objete
˛ apostrofami lub cudzysłowami i zawieraja˛
ewentualnie inne znaki poprzedzone znakiem ukośnika (\), tak
aby w sposób dokładny pokazać zawartość ciagu.
˛
Ciag
˛ znaków objety
˛ jest para cudzysłowów, jeżli zawiera tylko
apostrofy, w przeciwnym wypadku objety jest para apostrofów.
Funkcja print, które zostanie opisane później, może zostać
użyta do wypisywania ciagów znaków bez okalajacych je
cudzysłowów i znaków cytowania.
Ciagi znaków moga być sklejane za pomoca operatora + i
powielane za pomoca operatora ∗.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
13 / 30
Napisy
Ciagi znaków moga być indeksowane. Pierwszy znak w ciagu
ma indeks (numer porzadkowy) 0.
Nie istnieje osobny typ obejmujacy
˛ pojedyncze znaki − znak jest
po prostu napisem o długości jeden.
Ciagi znaków w Pythonie nie moga˛ być modyfikowane.
Przypisanie do zaindeksowanej pozycji w ciagu powoduje
powstanie błedu.
Podciagi
˛ znaków moga˛ zostać wyspecyfikowane za pomoca˛
notacji tzw. wykrawania: dwóch indeksów przedzielonych
dwukropkiem:
>>> "Ala ma kota"
’Ala ma kota’
>>> _[3:6]
’ ma’
>>> "radość"[0:3]
’rad’
>>> "radość"[2:6]
’dość’
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
14 / 30
Napisy
Indeksy wykrawania posiadaja nastepuj
˛ ace
˛ parametry domyślne:
pominiety
˛ pierwszy indeks posiada domyślna˛ wartość zero,
pominiety
˛ drugi domyślnie równy jest długości łańcucha znaków,
którego dotyczy wykrawanie.
>>> "radość"[:6]
’radość’
>>> "radość"[2:]
’dość’
>>> "radość"[:3]
’rad’
>>> "radość"[3:]
’ość’
>>> "radość"[:3]+"radość"[3:]
’radość’
indeks, który jest zbyt duży, zastepowany
˛
jest długościa˛ łańcucha,
ograniczenie górne, które jest mniejsze od ograniczenia dolnego,
powoduje powstanie pustego napisu.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
15 / 30
Napisy
Aby wyznaczyć podciag,
˛ liczac
˛ od prawej strony ciagu znaków,
używa sie indeksów bedacych liczbami ujemnymi:
>> "radość"[-1]
’ć’
>>> "radość"[-2]
’ś’
>>> "radość"[-3]
’o’
>>> "radość"[:-1] #Wszystkie, prócz ostatniego
’radoś’
Ujemne wykrojenia, które przekraczaja˛ ograniczenia ciagu
˛ sa˛
skracane.
Wbudowana w interpreter funkcja len zwraca długość łańcucha:
>>> len("radość"[1:])
5
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
16 / 30
Pierwsze kroki w programowaniu
Przykład (Ciag
˛ Fibonaciego)
>>> a = 0
>>> b = 1
>>> while a<10:
...
print(a)
...
a=b
...
b=a+b
...
0
1
2
4
8
>>>
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
17 / 30
Pierwsze kroki w programowaniu
Uwagi do powyższego przykładu
Ciało petli
˛ jest wciete:
˛
indentacja (wcinanie) jest sposobem na
grupowanie instrukcji.
W chwili, gdy wprowadza sie˛ jakaś
˛ instrukcje˛ złożona˛ w czasie
sesji interpretera Pythona, trzeba zakończyć ja˛ pustym wierszem.
Ważne jest, aby każdy wiersz należacy
˛ do tej samej grupy
instrukcji, był wciety
˛ o taka sama liczbe spacji lub znaków
tabulacji.
Funkcja print() wypisuje na standardowym wyjściu wartości
wyrażeń podanych w nawiasach.
Łańcuchy znaków wypisywane sa˛ bez cudzysłowów, a pomiedzy
˛
wartościami wyrażeń wstawiane sa˛ spacje, tak aby można było
ładnie sformatować pojawiajacy
˛ sie˛ napis.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
18 / 30
Pierwsze kroki w programowaniu
>>> print("ala")
ala
>>> print(’ala’)
ala
>>> x = 8 * 8
>>> print(’Wartościa˛ x jest’, x)
Wartościa˛ x jest 64
>>> x = 8 * 8.4
>>> print(’Wartościa˛ x jest’, x)
Wartościa˛ x jest 67.2
>>> a = 6
>>> b = 10
>>> print(a, ’+’, b , ’=’, a+b)
6 + 10 = 16
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
19 / 30
Pierwsze kroki w programowaniu
Przykład (Ciag
˛ Fibonaciego)
#!/usr/bin/env python3
a = 0
b = 1
while a < 10:
print (a)
a = b
b = a+b
Uwagi do powyższego przykładu
Ciało petli
˛ jest wciete:
˛
indentacja (wcinanie) jest sposobem na
grupowanie instrukcji.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
20 / 30
Pierwsze kroki w programowaniu
Przykład (Ciag
˛ Fibonaciego)
#!/usr/bin/env python3
a,b = 0, 1
while a < 10:
print (a)
a,b = b,a+b
Uwagi do powyższego przykładu
Pierwsza linia niebed
˛ aca
˛ komentarzem zawiera tzw. wielokrotne
przypisanie: zmiennym a i b przypisuje sie˛ jednocześnie wartości
0 i 1.
W ostatniej linii zastosowano jeszcze raz ten mechaniz.
Wyrażenia po prawej stronie sa obliczane od lewej do prawej.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
21 / 30
Instrukcja if
#!/usr/bin/env python3
x = int(input("Prosze podac liczbe: "))
if x < 0:
x = 0
print(’Ujemna zmieniła sie na zero’)
elif x == 0:
print(’Zero’)
elif x == 1:
print(’Jeden’)
else:
print(’Wiecej’)
Uwagi do powyższego przykładu
Fraza elif może wystapić
˛ zero lub wiecej
˛
razy.
Fraza else może nie wystapić
˛ lub wystapić
˛ jeden raz na końcu
instrukcji.
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
22 / 30
Instrukcja if
./if.py
Prosze podac liczbe: -1
Ujemna zmieniła sie na zero
./if.py
Prosze podac liczbe: 0
Zero
./if.py
Prosze podac liczbe: 1
Jeden
./if.py
Prosze podac liczbe: 2
Wiecej
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
23 / 30
Instrukcja for
Instrukcja for Pythona iteruje poprzez elementy dowolnej sekwencji
(listy lub łańcucha), w kolejności w jakiej te elementy wystepuj
˛ a˛ w
sekwencji.
>>> a = [’kot’, ’skacze’, ’przez’, ’okno’]
>>> for x in a:
...
print(x,len(x))
...
kot 3
skacze 6
przez 5
okno 4
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
24 / 30
Instrukcja for
>>> a = [1,2,3,4,5,6,7,8,9,10]
>>> for x in a:
...
print(x)
...
1
2
3
4
5
6
7
8
9
10
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
25 / 30
Instrukcja for
>>> a = [1,2,3,4,5,6,7,8,9,10]
>>> for x in a:
...
if x%2==0:
...
print(x)
...
2
4
6
8
10
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
26 / 30
Instrukcja for
Funkcja range()
Jeżli zaszła potrzeba iteracji określonej zakresem liczbowym,
można użyć wbudowanej w interpreter funkcji range().
Wynikiem jej działania jest iterator dostarczajacy
˛ kolejne liczby
szeregu arytmetycznego z wybranego zakresu.
>>> for x in range(5):
...
print(x)
...
0
1
2
3
4
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
27 / 30
Instrukcja for
Funkcja range()
Funkcja range może być używana z jednym, dwoma lub trzema
argumentami.
>>> a = [’kot’, ’skacze’, ’przez’, ’okno’]
>>> for x in range(len(a)):
...
print(x,a[x])
...
0 kot
1 skacze
2 przez
3 okno
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
28 / 30
Instrukcja for
Instrukcje petli
˛ posiadaja˛ klauzule˛ else: jest ona wykonywana w
momencie zakończenia działania petli:
przy wyczerpaniu sie˛ listy (petla
˛ dojdzie do końca)
gdy warunek petli
˛ zwraca wartość fałszu (petla
˛ while)
#!/usr/bin/env python3
for n in range(2, 10):
for j in range(2, n):
if n % j == 0:
print(n, ’=’, j, ’*’, n // j)
break
else:
print(n, ’jest pierwsza ’)
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
29 / 30
Instrukcja for
./for.py
2 jest pierwsza
3 jest pierwsza
4 = 2 * 2
5 jest pierwsza
6 = 2 * 3
7 jest pierwsza
8 = 2 * 4
9 = 3 * 3
Bożena Woźna-Szcześniak (AJD)
Podstawy Informatyki dla Nauczyciela
Wykład 12
30 / 30