Wprowadzenie do programowania w języku Python Cz. 1

Download Report

Transcript Wprowadzenie do programowania w języku Python Cz. 1

Wprowadzenie do
programowania w
języku Python
Autor: Bartłomiej Mucha
Koło Naukowe Informatyków 14 IV 2010
Historia
1990 Rok
 Guido van Rossuma
 Centrum Matematyki
i Informatyki
w Amsterdamie
 Język ABC
 Monty Python

Koło Naukowe Informatyków 4 XI 2009
Linki
http://www.python.org/
 http://python.kofeina.net/
 http://www.python.org.pl/

Koło Naukowe Informatyków 4 XI 2009
Dlaczego Python?






Wymuszone stosowanie wcięć,
Czytelna składnia,
Dynamiczne typowanie,
Garbage Collection,
Szybki i skuteczny debugger,
Programowanie:





Obiektowe
Strukturalne
Funkcyjne
Zope (Tworzy webapsy),
system wymiany plików Mojo Nation
Koło Naukowe Informatyków 4 XI 2009
Wartości
Dynamiczne typowanie
 Formatowanie jak w C
a = float(50) #zaznaczamy że a
jest wartością rzeczywistą
print (”%.3f”) % a
Wynik: `50.000`

Koło Naukowe Informatyków 4 XI 2009
Wprowadzanie wartości
a = input(”Wprowadz jakas
wartosc”)
# wprowadzam 4
print a
Wynik: 4
Koło Naukowe Informatyków 4 XI 2009
Łańcuchy znaków
a = ”tekst”
print a+a
Wynik: `teksttekst`
a = ”tekst”
Print 4*a
Wynik: `teksttekstteksttekst`
Koło Naukowe Informatyków 4 XI 2009
Łańcuchy znaków
a = ”Test”
Print ”Pierwsza litera to ”, a[0]
Print ”Ostatnia litera to ”,
a[:3:2]
Wynik: `3 ‘parzyste’ litery to Ts`
Koło Naukowe Informatyków 4 XI 2009
Wprowadzanie stringów
lancuch = raw_input(”Wprowadz
jakas wartosc: ”)
# wprowadzam test
print lancuch
Wynik: ‘test’
Koło Naukowe Informatyków 4 XI 2009
Kolekcje - Listy

Listy – zmienny typ danych
Lista = [1,2,3,4,5] #range(1,6)
Print Lista[0]
Wynik: 1

Listy składane:
liczby = [1, 2, 3, 4, 5]
potegi_dwojki = [2**n for n in liczby]
Print potegi_dwojki
Wynik: [2, 4, 8, 16, 32]
Koło Naukowe Informatyków 4 XI 2009
Kolekcje - Krotki

Krotki (n-tki)
Jan = ("Jan", "Kowalski", 33)
Janina = ("Janina", "Nowak", (21, 12,
1978), 'K')
imie = Jan[0]
Koło Naukowe Informatyków 4 XI 2009
Kolekcje - Słowniki

Słowniki (tab asocjacyjna)
Slownik = {klucz, wartosc}
Wykorzystywane m.in. w BST, tablicy
mieszająca
Koło Naukowe Informatyków 4 XI 2009
Pętla for
for x in range(1,11):
print # new line
for y in range(1,11):
print "%3i" % (x*y),
Wynik:
1
2
3
4
5
6
7
8
9
10
2
4
6
8
10
12
14
16
18
20
3
6
9
12
15
18
21
24
27
30
4
8
12
16
20
24
28
32
36
40
5
10
15
20
25
30
35
40
45
50
6
12
18
24
30
36
42
48
54
60
7
14
21
28
35
42
49
56
63
70
8
16
24
32
40
48
56
64
72
80
Koło Naukowe Informatyków 4 XI 2009
9 10
18 20
27 30
36 40
45 50
54 60
63 70
72 80
81 90
90 100
Wyliczanie NWD i NWW
# Wyliczanie NWD i NWW
print "Podaj dwie liczby
naturalne:”
a = input("Pierwsza:")
b = input("Druga:")
# ustalenie która jest mniejsza
if a > b:
while r:
w = a
w = m
m = b
m = r
else:
r = w % m
w = b
print "NWD liczb %i i %i wynosi %i, a
ich NWW wynosi %i" % (a,b,m,a*b/m)
m = a
r = w % m
Koło Naukowe Informatyków 4 XI 2009
Równanie kwadratowe
# Rownanie kwadratowe
a = input("Wprowadz
wspolczynnik a: ")
b = input("Wprowadz
wspolczynnik b: ")
c = input("Wprowadz
wspolczynnik c: ")
if a == 0:
print "x = ",-c/b
else:
delta = b**2 - 4*a*c
if delta > 0:
x1 = (-float(b) - delta**0.5)/2*a
x2 = (-float(b) +
delta**0.5)/2*a
print "x1 = %.2f" % x1
print "x2 = %.2f" % x2
del x1,x2
elif delta == 0:
x1 = (-float(b) delta**0.5)/2*a
print "x1 = %.2f" % x1
del x1
else:
print "Rownanie ma
rozwiazanie w calej dziedzinie"
del delta
del a,b,c
Koło Naukowe Informatyków 4 XI 2009
Klasa Complex
z = 3 + 2j
z.Real
z.Imag
z.conjugate()
Koło Naukowe Informatyków 4 XI 2009
Klasa String
s = ”Jakiś NapiS”
s.capitalize()
s.center(32,[‘*’])
s.Find(‘NapiS’)
s.IsDigit()
‘ ‘.join(„Klasa”, „String”)
s.replace(‘ ‘,’---’)
s.rfind(‘i’) #9
Koło Naukowe Informatyków 4 XI 2009
Klasa List
l = range(1,21)
l.append(33)
l.count(2) #ile razy
l.index(4) #pierwsza pozycja
l.insert(i,a)
l.pop(i)
l.remove(a)
l.reverse()
l.sort()
Koło Naukowe Informatyków 4 XI 2009
Ciekawostka
Haskell:
quicksort (s:xs) =
quicksort [x|x <- xs,x < s] ++ [s] ++
quicksort [x|x <- xs,x >= s]
Koło Naukowe Informatyków 4 XI 2009
Strona www
Koło Naukowe Informatyków 4 XI 2009
KONIEC
Dziękuję za uwagę.
Koło Naukowe Informatyków 4 XI 2009