Języki skryptowe Python

Wielkość: px
Rozpocząć pokaz od strony:

Download "Języki skryptowe Python"

Transkrypt

1 Języki skryptowe Python Wykład 3 Zmienne, wyrażenia, instrukcje Janusz Szwabiński Plan wykładu: Wartości i ich typy Zmienne Instrukcje warunkowe Łańcuchy znaków Pętle Wartości i ich typy Wartości (liczby i litery) należą do podstawowych obiektów przetwarzanych przez programy komputerowe. Są one podzielone na różne typy: 4jest liczbą całkowitą (ang. integer), 3.2jest liczbą zmiennoprzecinkową (float), natomiast "Witaj ściecie"to napis lub łańcuch znaków (string). Napisy rozpoznajemy po cudzysłowach lub apostrofach, w które ujęte. Jeśli nie jesteśmy pewni, jakiego typu jest dana wartość, możemy sprawdzić ją przy pomocy polecenia type: In [1]: type(2) Out[1]: int In [2]: type(3.2) Out[2]: float In [3]: type("cześć") Out[3]: str

2 W powyższych przykładach wyniki działania polecenia typesą sformatowane przez notatnik IPythona. W konsoli zobaczymy raczej coś takiego: >>> type(2) <class 'int'> >>> Liczby ujęte w cudzysłowach lub apostrofach interpretowane są również jako łańcuchy znaków: In [4]: type('3.4') Out[4]: str Warto wiedzieć: jeśli ciąg znaków zawiera poprawne wyrażenie, możemy je wykonać przy pomocy funkcji eval: In [5]: eval('2+2') Out[5]: 4 Uwaga! Do wprowadzania części ułamkowej liczb zmiennoprzecinkowych używamy kropki: In [6]: 1.0 Out[6]: 1.0 In [7]: type(_) Out[7]: float Użycie przecinka nie jest błędem składniowym, ale wynik jest zupełnie inny, niż moglibyśmy się spodziewać. In [8]: 1,0 Out[8]: (1, 0)

3 In [9]: type(_) Out[9]: tuple Zmienne Operowanie na zmiennych to jedna z najważniejszych funkcjonalności, jakie oferują języki programowania. Zmienna to po prostu nazwa, która wskazuje na jakąś wartość. Zmienne tworzymy i nadajemy im wartości operatorem przypisania: In [10]: message = "To jest przykład łańcucha znaków" n = 17 pi = 3.14 Typ zmiennej to po prostu typ wartości, do której zmienna się odnosi: In [11]: type(message) Out[11]: str In [12]: type(n) Out[12]: int In [13]: type(pi) Out[13]: float Ponieważ Python jest językiem o typowaniu dynamicznym, typ zmiennej możemy zmienić w trakcie wykonywania programu: In [14]: n = "To była wcześniej zmienna typu int"

4 In [15]: type(n) Out[15]: str Używać możemy jedynie zmiennych "zdefiniowanych", tzn. takich, którym przypisana jest jakaś wartość: In [20]: b NameError Traceback (most recent ca ll last) <ipython-input-20-3b5d5c371295> in <module>() ----> 1 b NameError: name 'b' is not defined Diagram stanów Bardzo przydatnym narzędziem w projektowaniu i analizie programu jest tzw. diagram stanu (ang. state diagram). W przypadku zmiennych przedstawia on ich stan w każdej chwili czasu, np.: Nazwy zmiennych i słowa kluczowe Nazwy zmiennych w Pythonie mogą być dowolnie długie. Mogą zawierać litery (bez znaków diakrytycznych), cyfry oraz dowolną liczbę podkreślników, jednak nie mogą zaczynać się od cyfr. Wielu (dobrych) programistów wybiera opisowe nazwy zmiennych. Wówczas kod jest bardziej czytelny i łatwiej go analizować, ponieważ na podstawie nazwy można stwierdzić, do czego zmienna jest wykorzystywana: In [21]: t = 7.8 In [22]: temperatureincelsius = 7.8

5 In [24]: temperatureinfahrenheit = 32 + (9/5)*temperatureInCelsius In [25]: print(temperatureinfahrenheit) Powyższy przykład to konwencja nazewnicza mixedcase. Możliwych jest kilka innych. Więcej na ten temat można przeczytać w artykule PEP 0008 Style Guide for Python Code ( 0008/ ( 0008/)). Jeżeli użyjemy niepoprawnej nazwy zmiennej, interpreter Pythona zwróci błąd składni: In [26]: 76trombones = 'wielka parada' File "<ipython-input-26-7f22220e7abb>", line 1 76trombones = 'wielka parada' ^ SyntaxError: invalid syntax In [27]: osiem_puzonów = 'sekcja dęta' In [28]: total@ = File "<ipython-input-28-0c9d8b7bda7c>", line 1 total@ = ^ SyntaxError: invalid syntax In [29]: class = 'Informatyka stosowana' File "<ipython-input-29-20ade69cb30e>", line 1 class = 'Informatyka stosowana' ^ SyntaxError: invalid syntax Pierwsze trzy błędy powinny być oczywiste: w pierwszym przykładzie nazwa zaczyna się od cyfry, w drugim pojawił się znak diakrytyczny, w trzecim niedozwolony W ostatnim przykładzie nazwa jest wprawdzie formalnie poprawna, ale classnależy do tzw. słów kluczowych, czyli zarezerwowanych słów, przy pomocy których definiowana jest składnia języka.

6 In [31]: import keyword keyword.iskeyword('class') Out[31]: Słów kluczowych jest obecnie ponad 30. Nie mogą być one używane jako nazwy zmiennych, a ich zapis musi być zgodny z podanym poniżej: In [32]: keyword.kwlist Out[32]: ['False', 'None', '', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

7 Instrukcje warunkowe Wyrażenia logiczne Wyrażenie logiczne to wyrażenie, które jest albo prawdą () albo fałszem (False). Sprawdzenie, czy dwie liczby są równe, to przykład takiego wyrażenia: In [33]: 5 == 6 Out[33]: False In [34]: 5 == 5 Out[34]: In [35]: val = 5 val == 5 Out[35]: Częstym błędem przy porównaniach jest użycie operatora przypisania =zamiast operatora porównania ==. W przypadku porównywania dwóch literałów będzie to łatwy do zlokalizowania błąd składni: In [36]: 5=4 File "<ipython-input-36-bf9f671a8299>", line 1 5=4 ^ SyntaxError: can't assign to literal W przypadku porównywania zmiennych będziemy mieli natomiast do czynienia z błędem semantycznym, który jest dużo trudniej znaleźć. i Falseto specjalne wartości typu logicznego: In [33]: type() Out[33]: bool

8 In [34]: type(false) Out[34]: bool Używany powyżej operator ==to przykład operatora porównania. Innymi operatorami tego typu są: In [37]: 3!= 4 # nie jest równy Out[37]: In [38]: 3 > 2 # większy Out[38]: In [39]: 3 < 2 # mniejszy Out[39]: False In [40]: 3 >= 2 # większy równy Out[40]: In [41]: 3 <= 2 # mniejszy równy Out[41]: False Operatory logiczne W Pythonie mamy do dyspozycji trzy operatory logiczne: and, ori not. Ich znaczenie jest podobne do znaczenia odpowiadających im słów w języku naturalnym: wyrażenie x > 0 and x < 10będzie miało wartość, jeśli x jest większe od 0 i jednocześnie mniejsze od 10 n%2 == 0 or n%3 == 0będzie miało wartośc, jeśli njest podzielne przed 2 lub przez 3 notneguje wartość wyrażenia logicznego, tzn. not (x>y)będzie prawdą, jeśli x>yjest fałszem

9 In [42]: x = 5 x > 0 and x < 10 Out[42]: In [43]: x = -5 x > 0 and x < 10 Out[43]: False In [44]: n=13 n%2 == 0 or n%3 == 0 Out[44]: False In [45]: n=12 n%2 == 0 or n%3 == 0 Out[45]: In [46]: x < n Out[46]: In [47]: not (x<n) Out[47]: False W zasadzie argumentami operatorów logicznych powinny być wyrażenia logiczne. Jednak Python pod tym względem nie jest bardzo rygorystyczny i każda liczba różna od zera jest traktowana jako :

10 In [48]: 17 and Out[48]: In [49]: -1 and Out[49]: In [50]: 0 and Out[50]: 0 Wyrażenia warunkowe Wyrażenie warunkowe to jedno z ważniejszych poleceń pozwalających kontrolować wywołanie programu. Dzięki niemu możemy spowodować, aby pewne partie programu wykonywały się tylko po spełnieniu pewnych warunków. Składnia podstawowego wyrażenia warunkowego jest następująca: if <warunek>: <instrukcje> Przy tym: warunek ma wartość lub False każda niezerowa liczba lub sekwencja o niezerowej długości oznaczają zero, sekwencja o zerowej długości lub Noneoznaczają False dwukropek po warunku jest ważny (otwiera blok instrukcji) jeśli warunek ma wartość, wykonywane są instrukcje wcięte w stosunku do słowa kluczowego if jeśli warunek ma wartość False, instrukcje są pomijane In [54]: x = eval(input("podaj liczbę: ")) print(type(x)) if x < 0: print("błąd! Liczba ujemna.") Podaj liczbę: -1 <class 'int'> Błąd! Liczba ujemna.

11 W bloku musi być co najmniej jedna instrukcja, natomiast nie ma żadnych ograniczeń na ich maksymalną. Czasami, zwłaszcza w początkowej fazie pisania programu, potrzeba jednak bloku instrukcji, który nie robi nic: In [55]: if x<0: # do zrobienia - przetwarzanie liczb ujemnych File "<ipython-input-55-8e881e2ac4c1>", line 1 if x<0: # do zrobienia - przetwarzanie liczb ujemnych ^ SyntaxError: unexpected EOF while parsing W takiej sytuacji używamy instrukcji pass. Nie robi ona nic, powoduje jednak, że blok ma poprawną składnię: In [56]: if x<0: pass # do zrobienia - przetwarzanie liczb ujemnych Można traktować tę instrukcję jako wypełniacz, który w trakcie rozbudowywania programu zastąpiony zostanie właściwym kodem. Wyrażenia warunkowe można uogólnić na więcej (opcjonalnych) warunków. Składnia ma wówczas postać: if <warunek1>: <instrukcje> elif <warunek2>: <instrukcje> else: <instrukcje> jeśli spełniony jest warunek1, wykonywane są instrukcje z bloku if jeśli spełniony jest warunek2, wykonywane są instrukcje z bloku elif jeżeli żaden z powyższych warunków nie jest spełniony, wykonywany jest blok else In [57]: x = input('podaj liczbę: ') print(type(x)) x = int(x) if x < 0: print("liczba ujemna") elif x == 0: print("bingo! Trafiłeś 0") else: print("liczba dodatnia") Podaj liczbę: 3 <class 'str'> Liczba dodatnia

12 Uwaga! Sekwencja if...elif...elif...elseoferuje podobną funkcjonalność jak instrukcja switch/casespotykana w innych językach programowania. Ponadto, wyrażenia warunkowe możemy zagnieżdżać w sobie: In [59]: x = eval(input('podaj liczbę: ')) y = eval(input('podaj drugą liczbę: ')) if x == y: print("liczby są równe!") else: if x<y: print(x, " jest mniejsze od ", y) else: print(x, " jest większe od ", y) Podaj liczbę: 2 Podaj drugą liczbę: 3 2 jest mniejsze od 3 Łańcuchy znaków (ang. strings) Łańcuch znaków to jeden z wbudowanych sekwencyjnych typów danych w Pythonie. Służy on do przechowywania ciągów znaków. Najważniejsze własności: do definiowania łańcuchów znaków służą cudzysłowy lub apostrofy łańcuchy znaków mogą rozciągać się na wiele linii nie ma oddzielnego typu dla pojedynczego znaku to po prostu łańcuch o długości 1 znaki w łańcuchu można indeksować inaczej niż w C/C++, raz utworzony łańcuch nie może być zmieniony łańcuchy można łączyć przy pomocy operatora + łańcuchy można powtarzać przy pomocy operatora * wsparcie dla unicode Definiowanie łańcuchów znaków In [60]: s = "Witaj świecie" In [63]: print(s) Witaj świecie Ten sam efekt uzyskamy przy pomocy apostrofów:

13 In [64]: s = 'Witaj świecie' print(s) Witaj świecie Rozważmy następujący przykład: In [65]: print(" "Kto tam?" zapytał Wojtek") File "<ipython-input-65-9bb1add46e58>", line 1 print(" "Kto tam?" zapytał Wojtek") ^ SyntaxError: invalid syntax Jak w wielu innych językach programowania, możemy do wewnętrznych cudzysłowów użyć znaków ucieczki, tzn. spowodować, aby interpreter traktował je dosłownie: In [66]: print(" \"Kto tam?\" zapytał Wojtek") "Kto tam?" zapytał Wojtek Jest to jednak mało wygodne (więcej znaków do wprowadzenia). Dlatego dwa rodzaje znaków definiujących łańcuchy znaków okazują się bardzo przydatne: In [67]: print(' "Kto tam?" zapytał Wojtek ') "Kto tam?" zapytał Wojtek In [68]: print("he doesn't...") He doesn't... Powyższe przykłady dotyczyły krótkich łańcuchów znaków. Python obsługuje również napisy dłuższe, rozciągające się na wiele linii. Mamy kilka sposobów na ich wprowadzenie. Po pierwsze, możemy sami wstawiać znak nowej linii, \n: In [69]: halo = "To dość długi łańcuch znaków,\n\ który rozciąga się na wiele\n\ linii"

14 In [70]: print(halo) To dość długi łańcuch znaków, który rozciąga się na wiele linii Znak kontynuacji linii w powyższym przykładzie jest również wymagany: In [71]: halo = "To dość długi łańcuch znaków,\n który rozciąga się na wiele\n linii" File "<ipython-input b6c8dcf0>", line 1 halo = "To dość długi łańcuch znaków,\n ^ SyntaxError: EOL while scanning string literal Inna możliwość to skorzystanie z potrójnych apostrofów lub cudzysłowów: In [72]: halo = """To dość długi łańcuch znaków, który rozciąga się na wiele linii""" In [73]: print(halo) To dość długi łańcuch znaków, który rozciąga się na wiele linii Czasami może się zdarzyć, że interpreter Pythona znajdzie znak nowej linii tam, gdzie go tak naprawdę nie powinno być: In [74]: print("c:\some\name") C:\some ame Rozwiązania tego problemu są dwa. Możemy albo skorzystać ze znanego już znaku ucieczki: In [75]: print("c:\some\\name") C:\some\name

15 albo z tzw. surowych łańcuchów (zwróć uwagę na literę rpoprzedzającą łańcuch znaków): In [76]: print(r"c:\some\name") C:\some\name In [78]: napis = input("jakiś tekst: ") print(napis) Jakiś tekst: he doesn't he doesn't Operacje na łańcuchach Łańcuchy znaków możemy łączyć ze sobą przy pomocy operatora +: In [79]: slowo = 'świt' + 'a' In [80]: print(slowo) świta Jeżeli łączymy ze sobą dwa literały łańcuchowe, możemy pominąć ten operator: In [81]: 'Witaj' ' świecie' Out[81]: 'Witaj świecie' Automatyczne łączenie nie działa jednak w przypadku zmiennych: In [83]: imie = "Janusz" nazwisko = "Szwabiński" In [84]: imie nazwisko File "<ipython-input-84-c cc4a>", line 1 imie nazwisko ^ SyntaxError: invalid syntax

16 In [85]: imie+nazwisko Out[85]: 'JanuszSzwabiński' Mnożenie łańcucha przez skalar to nic innego jak powtarzanie tego łańcucha: In [86]: print(slowo*5) świtaświtaświtaświtaświta Jednak działa to tylko dla liczb całkowitych: In [87]: print(slowo*5.0) TypeError Traceback (most recent ca ll last) <ipython-input-87-a14ebdf38ba7> in <module>() ----> 1 print(slowo*5.0) TypeError: can't multiply sequence by non-int of type 'float' Działania na łańcuchach znaków możemy oczywiście ze sobą łączyć: In [88]: '<' + 2*slowo + '>' Out[88]: '<świtaświta>' Formatowanie łańcuchów znaków In [89]: txt = "kilka liczb: " x = 2 y = 1.34 z = 2 + 3j In [90]: text1 = "%s %d, %.2f, %.2f+%.2fi" % (txt,x,y,z.real,z.imag)

17 In [91]: print(text1) kilka liczb: 2, 1.34, i In [92]: text2 = "%s %d, %f, %s" % (s,x,y,z) In [93]: print(text2) Witaj świecie 2, , (2+3j) Indeksowanie łańcuchów znaków Łańcuch znaków to nic innego jak ciąg znaków, z których każdy ma określoną pozycję. Dostęp do poszczególnych znaków w ciągu uzyskamy przy pomocy nawiasów kwadratowych: In [94]: slowo = 'taczka' znak = slowo[1] Wyrażenie w nawiasie kwadratowym to indeks. Wskazuje on znak, do którego zażądaliśmy dostępu. Czyli zmienna znak wskazuje na literę w słowie o indeksie 1: In [95]: print(znak) a Okazuje się jednak, że nie jest to pierwsza litera tego słowa. W Pythonie, podobnie jak w C/C++ i wielu innych językach, indeksowanie sekwencyjnych typów danych zaczyna się od : In [96]: print(slowo[0]) t 0 In [97]: print(slowo[1]) a In [98]: print(slowo[5]) a

18 Długość łańcucha, czyli liczbę znaków w łańcuchu, odczytamy przy pomocy funkcji len: In [99]: len(slowo) Out[99]: n 1 n n Ponieważ indeksowanie zaczyna się od a nie od, ostatni element łańcucha ma indeks, a nie ( to liczba znaków): In [100]: n = len(slowo) print(slowo[n-1]) a Dlatego użycie długości łańcucha jako indeksu spowoduje wyjście poza zakres: In [101]: print(slowo[n]) IndexError Traceback (most recent ca ll last) <ipython-input-101-d348d > in <module>() ----> 1 print(slowo[n]) IndexError: string index out of range Python wspiera również tworzenie wycinków z łańcuchów znaków (ogólnie ze wszystkich typów sekwencyjnych): In [102]: slowo[0:3] #elementy od indeksu 0 (włącznie) do indeksu 3 (bez tego indeksu) Out[102]: 'tac' In [103]: slowo[:2] #dwie pierwsze litery Out[103]: 'ta'

19 In [104]: slowo[2:] #wszystkie oprócz dwóch pierwszych Out[104]: 'czka' Przy wycinkach nie ma błędu z wyjściem poza zakres: In [105]: slowo[2:100] Out[105]: 'czka' Indeksy ujemne Python dopuszcza ujemne indeksy we wszystkich sekwencyjnych typach danych. Przy tym, indeks należy rozumieć jako : n k k In [106]: slowo[-1] #ostatnia litera Out[106]: 'a' In [107]: slowo[-2] #przedostatnia Out[107]: 'k' In [108]: slowo[-2:] #dwie ostatnie Out[108]: 'ka' In [109]: slowo[0:-2] #wszystkie oprócz dwóch ostatnich Out[109]: 'tacz'

20 In [110]: slowo[-0] #jak w matematyce: -0=0 Out[110]: 't' Niezmienny typ danych Łańcuchy znaków w Pythonie to jeden z tzw. niezmiennych typów danych. Oznacza to tylko tyle, że raz utworzony, nie może zostać zmieniony: In [111]: print(slowo) taczka In [112]: slowo[0] = 'k' TypeError Traceback (most recent ca ll last) <ipython-input-112-bdf5d26b7f3e> in <module>() ----> 1 slowo[0] = 'k' TypeError: 'str' object does not support item assignment Nie jest to jednak wielkim ograniczeniem, ponieważ możliwa jest taka operacja: In [113]: slowo = 'k' + slowo[1:] In [114]: print(slowo) kaczka Ostatnie wyrażenie oznacza tyle, że z dwóch łańcuchów znaków stworzony został nowy napis, a następnie nadano mu nazwę slowo. Jeżeli w programie nie było więcej zmiennych wskazujących na stary napis, to niemożliwe jest uzyskanie dostępu do niego i zostanie on usunięty przez interpreter w celu zwolnienia zasobów. Dlatego efekt końcowy przypomina po prostu zmodyfikowanie łańcucha znaków znane z innych języków, mimo że od podszewki jest to zupełnie inna operacja. Łańcuchy znaków i ich metody

21 Metoda przypomina swoim działaniem funkcję pobiera argumenty i zwraca jakiś wynik, ma jednak inną niż funkcja składnię. Rozważmy metodę upper, która w podanym jako argument łańcuchu znaków zmienia wszystkie małe litery na duże i tworzy z nich nowy łańcuch. Gdyby upperbyła funkcją, jej wywołanie wygładałoby następująco: upper(slowo) Jako metoda wywoływane jest tak: In [115]: nowe_slowo = slowo.upper() In [116]: print(nowe_slowo) KACZKA Najpierw podajemy nazwę zmiennej (lub literał) na której chcemy wykonać metodę, po której następuje kropka, a po kropce nazwa metody. Puste nawiasy w powyższym przykładzie oznaczają, że metoda nie potrzebuje dodatkowych argumentów do wykonania. Przykładem metody, która wymaga argumentu, jet metoda find. Służy ona do wyszukiwania podanych znaków w łańcuchu: In [117]: print(slowo) kaczka In [118]: index = slowo.find('cz') print(index) 2 In [119]: print(slowo.find('a')) 1 Wywołując find, możemy podać jeszcze jeden argument indeks, od którego należy rozpocząć przeszukiwanie: In [120]: print(slowo.find('a',2)) 5 Natomiast trzecim argumentem może być indeks, na którym należy skończyć wyszukiwanie:

22 In [121]: print(slowo.find('a',2,4)) -1 Wynik 1 oznacza, że w podanym zakresie nie było żadnych trafień. Operator in Słowo kluczowe injest operatorem logicznym, który dla dwóch argumentów sprawdza, czy pierwszy jest podciągiem drugiego. In [122]: print(slowo) kaczka In [123]: 'kac' in slowo Out[123]: In [124]: 't' in slowo Out[124]: False Porównywanie łańcuchów znaków Operator ==pozwoli nam sprawdzić, czy łańcuchy znaków są takie same: In [125]: print(slowo) kaczka In [127]: if slowo == 'kaczka': print("uwaga! Sezon polowań na kaczki już trwa") Uwaga! Sezon polowań na kaczki już trwa Pozostałe operatory porównań również działają. Można je wykorzystać do ustalenia porządku alfabetycznego wyrazów.

23 In [128]: if slowo < 'taczka': print(slowo, 'taczka') else: print('taczka', slowo) kaczka taczka In [129]: slowo2 = 'paczka' if slowo2 < 'kaczka': print(slowo2, 'kaczka') else: print('kaczka', slowo2) kaczka paczka Jedyny problem z porównywaniem wyrazów związany jest z tym, że Python inaczej niż ludzie w życiu codziennym traktuje wielkie litery (wielkie litery przed małymi). In [130]: 'paczka' < 'taczka' Out[130]: In [131]: 'paczka' < 'Taczka' Out[131]: False Aby uniknąć błędu spowodowanego tą własnością, przed porównywaniem warto jest przekonwertować oba napisy do jakiegoś standardowego formatu, np. do małych liter: In [132]: 'paczka'.lower() < 'Taczka'.lower() Out[132]:

24 Pętle Obok instrukcji warunkowych pętle to jedne z ważniejszych konstrukcji programowania strukturalnego. Umożliwiają cykliczne wykonywanie ciągu instrukcji określoną liczbę razy lub do momentu zajścia pewnych warunków. W Pythonie mamy do dyspozycji dwie pętle, fori while. Pętla for Instrukcja forw Pythonie różni się od pętli o tej samej nazwie w C/C++, ponieważ iteracja nie odbywa się od liczby do liczby, a po elementach dowolnej sekwencji (łańcucha znaków, listy, krotki itp.) w takim porządku, w jakim są one umieszczone w sekwencji: In [133]: przedrostki = 'kpt' przyrostek = 'aczka' for przedrostek in przedrostki: print(przedrostek+przyrostek) kaczka paczka taczka Ogólnie, składnia pętli forma postać: for <zmienna> in <sekwencja>: <instrukcje> W dalszej części wykładu poznamy inne typy sekwencji, po elementach których można iterować. Natomiast tutaj wspomnimy tylko o jednej funkcji, dość często wykorzystywanej w pętlach, zwłaszcza przez początkujących programistów w Pythonie z doświadczeniami w innych językach programowania: In [1]: for i in range(5): print(i) In [9]: for i in range(2,5): print(i,i**2)

25 In [8]: for i in range(0,10,2): print(i,i**3) In [4]: print(range(5)) range(0, 5) In [5]: type(range(5)) Out[5]: range Chociaż rzeczywiście wywołujemy rangejako funkcję, jest to raczej typ danych reprezentujący niezmienną sekwencję liczb. Wykorzystuje się go najczęście w petlach fordo wykonania określonej liczby powtórzeń. Pętla while Pętla whilesłuży do cyklicznego wykonywania ciągu instrukcji do momentu, aż warunek przestanie być spełniony: while <warunek>: <instrukcje> In [134]: fruit = 'Banana' index = 0 while index < len(fruit): letter = fruit[index] print(letter) index = index + 1 B a n a n a

26 Instrukcje breaki continue Instrukcja breakpowoduje wyjście z najbliższej zagnieżdżonej pętli forlub while. Rozważmy przykład: In [136]: fruit = 'banana' index = 0 while 1: #w zasadzie pętla nieskończona print(fruit[index]) index = index + 1 b a n a n a IndexError Traceback (most recent ca ll last) <ipython-input ccf1b8> in <module>() 2 index = 0 3 while 1: #w zasadzie pętla nieskończona ----> 4 print(fruit[index]) 5 index = index + 1 IndexError: string index out of range Aby uniknąć błędu, możemy przerwać pętlę w odpowiednim momencie: In [137]: fruit = 'banana' index = 0 while 1: #w zasadzie pętla nieskończona print(fruit[index]) index = index + 1 if index == len(fruit): break b a n a n a Instrukcja continuepowoduje przejście do następnego kroku iteracji:

27 In [138]: fruit = 'Banana' for letter in fruit: if letter == 'a': continue print(letter) B n n

Język Python. Język Python 1/35

Język Python. Język Python 1/35 Język Python Język Python 1/35 Język Python 2/35 Wstęp Uruchamianie interpretera python Skrypty wykonywalne #!/usr/bin/python #!/usr/bin/env python lub #!/usr/bin/python3 #!/usr/bin/env python3 chmod +x

Bardziej szczegółowo

Podstawy programowania. Python wykład 6

Podstawy programowania. Python wykład 6 Podstawy programowania Python wykład 6 Funkcja wbudowana chr() Wywołanie funkcji chr() z argumentem m zwraca łańcuch znaków reprezentujący znak, którego punktem kodowym w Unicode jest liczba całkowita

Bardziej szczegółowo

Środowisko programisty

Środowisko programisty Środowisko programisty 1/34 Środowisko programisty Język Python cz. 1 dr inż. Grzegorz Michalski 24 marca 2014 Środowisko programisty 2/34 Wstęp Uruchamianie interpretera python Wykonywalne skrypty #!/usr/bin/python

Bardziej szczegółowo

Języki i metody programowania

Języki i metody programowania Języki i metody programowania Wykład 4 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Podstawy języka Python

Bardziej szczegółowo

Python. Wprowadzenie. Jolanta Bachan

Python. Wprowadzenie. Jolanta Bachan Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 6 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 21 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Liczby losowe i pętla while w języku Python

Liczby losowe i pętla while w języku Python Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

Bardziej szczegółowo

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

Typy danych, cd. Łańcuchy znaków

Typy danych, cd. Łańcuchy znaków Typy danych, cd. Łańcuchy znaków Typ danych string, jest rozumiany jako łańcuch znaków - liter, cyfr i symboli. Stringi definiuje się w podwójnych lub pojedyńczych cudzysłowach. typ_ kawy = " latte " typ_herbaty

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje

Bardziej szczegółowo

Programowanie robota mobilnego E-puck w języku Python

Programowanie robota mobilnego E-puck w języku Python Programowanie robota mobilnego E-puck w języku Python Joanna Ratajczak Mirela Kaczmarek 1 Zasady bezpieczeństwa W trakcie pracy z robotem E-puck, rys. 1, należy zachować ostrożność. Pod żadnym pozorem

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Przegląd języka Python. Łukasz Anwajler

Przegląd języka Python. Łukasz Anwajler Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 2 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 października 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych 3. Elementy programu i typy danych Łódź 2018 Ćwiczenie Body Mass Index - Edytuj kod programu - Zapisz go w pliku bmi.py - Uruchom skrypt >>> Enter your name: Jacek >>> Enter

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 1. 6 października 2017 Plan wykładu 1 2 3 4 Plan wykładu 1 2 3 4 Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/ marcinm/dyd/python Materiały

Bardziej szczegółowo

rozdział 4: ZMIENNE I INSTRUKCJE

rozdział 4: ZMIENNE I INSTRUKCJE rozdział 4: ZMIENNE I INSTRUKCJE ostatnia modyfikacja: 04.12.18 definicja: zmienna to nazwany kontener służący do przechowywania danych na razie skupimy się na zmiennych przechowujących dane liczbowe i

Bardziej szczegółowo

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Python. Skąd taka nazwa? Kurs systemu UNIX 1 Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do

Bardziej szczegółowo

Wykresy i interfejsy użytkownika

Wykresy i interfejsy użytkownika Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka

Bardziej szczegółowo

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53: Instrukcje sterujące wer. 11 z drobnymi modyfikacjami! Wojciech Myszka 2017-07-05 10:53:09 +0200 Ala ma kota Część I Prosty przykład Problem 1. Zadanie polega na tym, żeby opracować algorytm który dla

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 JEZYK PROGRAMOWANIA PYTHON: SEKWENCJE (ŁAŃCUCHY, LISTY, KROTKI), METODY LIST E. Dyguda-Kazimierowicz 1 Sekwencje: indeksowanie i wycinanie Poznane dotąd obiekty łańcuchowe należą do typu danych złożonych

Bardziej szczegółowo

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 7 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 28 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR

Bardziej szczegółowo

Języki i metody programowania

Języki i metody programowania Języki i metody programowania Wykład 3 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Wartości boolowskie

Bardziej szczegółowo

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A

Bardziej szczegółowo

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne

Bardziej szczegółowo

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7 Spis treści 1 Funkcje 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 1.5 Zadanie 5 1.6 Zadanie 6 1.7 Zadanie 7 Funkcje Przy programowaniu często zdarza się, że pewne czynności chcemy wykonywać

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo

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

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za

Bardziej szczegółowo

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2 Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń

Bardziej szczegółowo

Listy, krotki, słowniki, funkcje

Listy, krotki, słowniki, funkcje Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 1 Pętla while JEZYK PROGRAMOWANIA PYTHON: PETLE ITERUJACE, KORZYSTANIE Z PLIKÓW E. Dyguda-Kazimierowicz Instrukcja while, wraz z omówioną poniżej instrukcją for, należą do pętli iterujacych pozwalających

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 5 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 7 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

Wprowadzenie do Scilab: podstawy języka Scilab

Wprowadzenie do Scilab: podstawy języka Scilab Wprowadzenie do Scilab: podstawy języka Scilab Magdalena Deckert, Izabela Szczęch, Barbara Wołyńska, Bartłomiej Prędki Politechnika Poznańska, Instytut Informatyki Narzędzia Informatyki Narzędzia Informatyki

Bardziej szczegółowo

2. Łańcuchy tekstowe w PHP

2. Łańcuchy tekstowe w PHP 2. Łańcuchy tekstowe w PHP 2.1 Apostrofy i cudzysłowy Łańcuch tekstowy w języku PHP to ciąg znaków ograniczony apostrofami (') lub cudzysłowami ("). Te znaki ograniczające nie powinny być traktowane wymiennie,

Bardziej szczegółowo

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 JEZYK PROGRAMOWANIA PYTHON: WYRAŻENIA LOGICZNE I INSTRUKCJA WARUNKOWA, METODY OBIEKTÓW ŁAŃCUCHOWYCH E. Dyguda-Kazimierowicz 1 Wyrażenia i operatory logiczne Wyrażenia logiczne (warunkowe, boolowskie) to

Bardziej szczegółowo

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

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

ECDL Podstawy programowania Sylabus - wersja 1.0

ECDL Podstawy programowania Sylabus - wersja 1.0 ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy

Bardziej szczegółowo

1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka sposobów.

1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka sposobów. Rachunek Prawdopodobieństwa i Statystyka lab 2. Kaja Chmielewska ( Kaja.Chmielewska@cs.put.poznan.pl ) 1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka

Bardziej szczegółowo

Oczywiście plik musi mieć rozszerzenie *.php

Oczywiście plik musi mieć rozszerzenie *.php Oczywiście plik musi mieć rozszerzenie *.php Znaczniki PHP komunikują serwerowi gdzie rozpoczyna się i kończy kod PHP. Tekst między nimi jest interpretowany jako kod PHP, natomiast poza nimi jako kod HTML.

Bardziej szczegółowo

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

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Struktura pliku projektu Console Application

Struktura pliku projektu Console Application Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Liczby w jaki sposób komputery je widzą? Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Czy wiesz, jak komputery wykonują

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 1. 4 października 2013 Plan wykładu 1 2 3 4 Typy proste Kolekcje Instrukcje w języku (przypomnienie) Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/

Bardziej szczegółowo

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

lekcja 8a Gry komputerowe MasterMind lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych

Bardziej szczegółowo

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik

Bardziej szczegółowo

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

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Jacek Cichoń Przemysław Kobylański Instytut Matematyki i Informatyki Politechnika Wrocławska Na podstawie: M.Summerfield.Python 3. Kompletne

Bardziej szczegółowo

KOTLIN. Język programowania dla Androida

KOTLIN. Język programowania dla Androida KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

SWIFT. Zaawansowane Programowanie Obiektowe

SWIFT. Zaawansowane Programowanie Obiektowe SWIFT Zaawansowane Programowanie Obiektowe Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje

Bardziej szczegółowo

Pytania dla języka Python

Pytania dla języka Python XIV OIJ, zawody I stopnia, tura testowa 16 września 2019 1 stycznia 2020 Poniżej znajdują się pytania testowe z zawodów I stopnia XIV Olimpiady Informatycznej Juniorów () na teście wiedzy (do rozwiązania

Bardziej szczegółowo

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright 2018 Spis treści Część I. Wprowadzenie do programowania 13 Rozdział 1. Wprowadzenie 15 Struktura

Bardziej szczegółowo

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

Bardziej szczegółowo

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

Bardziej szczegółowo

PROGRAMOWANIE W JĘZYKU PYTHON

PROGRAMOWANIE W JĘZYKU PYTHON D-10 pokój 227 PROGRAMOWANIE W JĘZYKU PYTHON Dr inż. Grażyna KRUPIŃSKA Prezentacja algorytmu w języku programowania Aby przedstawić algorytm w postaci programu, trzeba go napisać jako ciąg instrukcji języka

Bardziej szczegółowo

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Lekcja 3: Pierwsze kroki z Pythonem. Pętle #SuperKoderzy www.superkoderzy.pl Mikrobitowcy Autorzy: Filip Kłębczyk Lekcja 3: Pierwsze kroki z Pythonem. Pętle Podczas lekcji uczniowie zapoznają się z dwoma rodzajami pętli - for i while - analizując

Bardziej szczegółowo

Umieszczanie kodu. kod skryptu

Umieszczanie kodu. kod skryptu PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona

Bardziej szczegółowo

ZMIENNE. Podstawy PHP

ZMIENNE. Podstawy PHP ZMIENNE Podstawy PHP zmienna - to obiekt w programowaniu, który przechowuje różnego rodzaju dane niezbędne do działania programu. Zmienna podczas działania programu może zmieniad swoje wartości (jak wskazuje

Bardziej szczegółowo

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo