Podstawy programowania. Python wykład 6



Podobne dokumenty
Języki i metody programowania

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie

Podstawy bioinformatyki 2017/18

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

Podstawy bioinformatyki 2017/18

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Reprezentacja symboli w komputerze.

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

Wstęp do informatyki. Python 1

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

Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1

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

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Reprezentacja symboli w komputerze.

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

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

Kurs rozszerzony języka Python

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

Listy, krotki, słowniki, funkcje

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

4. Funkcje. Przykłady

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Podstawy programowania w Pythonie

2. Łańcuchy tekstowe w PHP

Wprowadzenie do języka Python

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Oczywiście plik musi mieć rozszerzenie *.php

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 11. Elektrotechnika, semestr II rok akademicki 2008/2009

Podstawowe elementy języka Python III. Wykład 3. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 50 / 277

Pytania dla języka Python

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Warsztaty dla nauczycieli

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

Algorytmy i struktury danych

Programowanie w Ruby

1. Wypisywanie danych

Algorytmika i Programowanie VBA 1 - podstawy

Programowanie robota mobilnego E-puck w języku Python

Powtórka algorytmów. Wprowadzenie do języka Java.

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

Zaawansowany kurs języka Python

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

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

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki skryptowe Python

Python. Wprowadzenie. Jolanta Bachan

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Język Python (2) Język Python (2) 1/36

FUNKCJE TEKSTOWE W MS EXCEL

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Podstawy programowania

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Algorytmy i struktury danych

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Informatyka 1. Przetwarzanie tekstów

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

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

Języki programowania obiektowego Nieobiektowe elementy języka C++

Podstawy Programowania

Podstawowe typy zmiennych

Tablice (jedno i wielowymiarowe), łańcuchy znaków

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

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

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

Środowisko programisty

1 Podstawy c++ w pigułce.

Programowanie w języku Python. Grażyna Koba

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

Podstawy programowania w języku C++

Podstawy programowania w języku C i C++

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

Podstawy programowania

ŁAŃCUCHY W JĘZYKU C/C++

Podstawy i języki programowania

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Tablice deklaracja, reprezentacja wewnętrzna

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Tworzenie nowych pytań materiał dla osób prowadzących kursy

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

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Wstęp do programowania

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Podstawy bioinformatyki 2017/18

Java Podstawy. Michał Bereta

Powtórka algorytmów. Wprowadzenie do języka Java.

Laboratorium kryptograficzne dla licealistów 1

Inicjacja tablicy jednowymiarowej

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

Podstawy bioinformatyki 2017/18

Transkrypt:

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 m. Przykład: chr(80) zwraca łańcuch znaków 'P'. Zakres wartości dla argumentu funkcji chr(): < 0, 1114111> (0x10FFFF w systemie szesnastkowym). Jeżeli wartość argumentu funkcji chr() jest poza tym zakresem, to zostanie wygenerowany błąd ValueError.

Przykład 1 def main(): # Litery alfabetu angielskiego drukuj_znaki(65, 90) # duże litery drukuj_znaki(97, 122) # małe litery drukuj_znaki(48, 57) # cyfry drukuj_znaki(90,97) def drukuj_znaki(lewy, prawy): for j in range(lewy, prawy + 1): print(chr(j), end = ' ') print() main()

Funkcja wbudowana ord() Wywołanie funkcji ord() z argumentem będącym ciągiem reprezentującym jeden znak Unicode, zwraca liczbę całkowitą reprezentującą punkt kodowy w Unicode tego znaku. Na przykład: ord('a') zwraca liczbę całkowitą 65, ord('\uffff') zwraca liczbę 65535, ord('\u0010ffff') zwraca liczbę 1114111. Funkcja ord() jest funkcją odwrotną do funkcji chr(): ord(chr(65)) = 65 chr(ord('a')) = 'A' dr

Przykład 2 def main(): drukuj_numery_znakow("0123456789") drukuj_numery_znakow("ąćęłńóśźż") drukuj_numery_znakow("ąćęłńóśźż") def drukuj_numery_znakow(lancuch): for s in lancuch: print(s, ":", ord(s), end = ' ') print() main()

Łańcuchy znaków - napisy Oprócz liczb Python może również manipulować łańcuchami znaków, które można wyrazić w różny sposobów. Mogą one być objęte: znakami apostrofu lub znakami cudzysłowu: >>> 'informatyka' 'informatyka' >>> "informatyka" 'informatyka' >>> 'A\'propos' "A'propos" >>> "A'propos" "A'propos" Łańcuchy znaków mogą być także objęte potrójnymi znakami apostrofu lub potrójnymi znakami cudzysłowu.

Łańcuchy znaków - napisy Interpreter wypisuje wynik działań na napisach w ten sam sposób, w jaki są one wprowadzane. Są one objęte apostrofami lub cudzysłowami i zawierają ewentualnie inne znaki poprzedzone znakiem ukośnika (\) tak, aby w sposób dokładny pokazać zawartość napisu. Łańcuch znaków objęty jest parą cudzysłowów, jeśli zawiera tylko apostrofy, w przeciwnym wypadku objęty jest parą apostrofów.

Operacje na łańcuchach Łańcuchy znaków mogą być sklejane za pomocą operatora + i powielane za pomocą operatora *. >>> print("ala" + " ma " + "kota") Ala ma kota >>> print(3 * ":) ") :) :) :)

Łańcuchy znaków Łańcuchy znaków można indeksować. Pierwszy znak w łańcuchu ma indeks (numer porządkowy) 0. Nie istnieje osobny typ obejmujący pojedyncze znaki znak jest po prostu napisem o długości jeden. Łańcuchy znaków w Pythonie nie mogą być modyfikowane. Próba przypisania do zaindeksowanej pozycji w łańcuchu powoduje powstanie błędu. >>> s = "programowanie" >>> s[0] = "P" Traceback (most recent call last): File «stdin>", line 1, in <module> TypeError: str object does not support item assignment

Podłańcuchy znków Podłańcuchy znaków mogą zostać wyspecyfikowane za pomocą notacji tzw. wykrawania dwóch indeksów przedzielonych dwukropkiem: >>> "programowanie"[0:3] 'pro' >>> "programowanie"[3:6] 'gra' >>> "programowanie"[6:] 'mowanie' Indeksy wykrawania posiadają użyteczne argumenty domyślne: pominięty pierwszy indeks posiada domyślną wartość zero, pominięty drugi domyślnie równy jest długości łańcucha znaków, którego dotyczy wykrawanie.

Operacja wykrawania posiada następującą użyteczną własność: łańcuchy s[:i] + s[i:] są równe. >>> "world"[:3] + "world"[3:] == "world" True Niepoprawne indeksy wykrawania obsługiwane są dość ostrożnie: indeks, który jest zbyt duży, zastępowany jest długością łańcucha, ograniczenie górne, które jest mniejsze od ograniczenia dolnego, powoduje powstanie pustego napisu. >>> "programowanie"[:19] 'programowanie' >>> "programowanie"[3:2] ''

Wykrojenia cd. Aby wyznaczyć podciąg, licząc od prawej strony danego napisu, używa się indeksów będących liczbami ujemnymi: >>> "programowanie"[-1] # Ostatni znak 'e' >>> "programowanie"[-2] # Przedostatni znak 'i' >>> "programowanie"[-3:] # Trzy ostatnie znaki 'nie' >>> "programowanie"[:-1] # Wszystkie, prócz ostatniego 'programowani' Ujemne wykrojenia, które przekraczają ograniczenia napisu są skracane. Wbudowana w interpreter funkcja len() zwraca długość łańcucha. dr hab.

Porównywanie łańcuchów Napisy można porównywać przy użyciu standardowych operatorów relacyjnych: ==,! =, <, <=, > i >=. Wynik porównania zgodny jest porządkiem leksykograficznym wyznaczonym przez wartości punktów kodowych w Unicode znaków biorących udział w porównaniu. >>> "Windows" < "linux" True >>> "Windows" < "Linux" False >>> "mama" < "ala" False

Czy podnapis? Operator in służy do testowania czy dany napis jest podnapisem innego napisu. Operator not in służy do testowania czy dany napis nie jest podnapisem innego napisu. >>> "gram" in "programowanie" True >>> "program" in "programowanie" True >>> "nie" in "programowanie" True >>> "grama" in "programowanie" False

Łańcuchy znaków metody capitalize() zwraca kopię napisu z pierwszym znakiem zmienionym na wielką literę. count(napis[, poczatek[, koniec]]) zwraca ilość nienachodzących na siebie wystąpień napisu napis w zakresie [poczatek:koniec]. Opcjonalne argumenty początek i koniec są interpretowane tak samo, jak w operacji wycinania. endswith(przyrostek[, poczatek[, koniec]]) zwraca wynik sprawdzenia, czy napis jest zakończony napisem przyrostek. Przy wystąpieniu argumentu początek, sprawdzenie rozpoczyna się od tego znaku. Przy wystąpieniu argumentu koniec porównanie zakończy się na tym znaku. expandtabs([wielkość]) Zwraca kopię napisu ze wszystkimi znakami tabulacji zastąpionymi przez znaki spacji. Jeśli wielkość nie zostanie podana, przyjmuje się rozmiar tabulacji jako 8 znaków.

Łańcuchy znaków metody find(podnapis[, początek[, koniec]]) Zwraca najniższy indeks takiego wystąpienia napisu podnapis, aby napis był zawarty w wycinku [początek:koniec]. Opcjonalne argumenty początek i koniec są interpretowane tak samo, jak w operacji wycinania. Zwraca -1 jeśli napis podnapis nie został znaleziony. UWAGA: Funkcja find() powinna być używana tylko wtedy, gdy chcemy poznać pozycję napisu podnapis w danym napisie. Jeżeli chcemy tylko sprawdzić czy napis podnapis występuje w danym napisie, to należy użyć operatora in: podnapis in napis. isalnum() zwraca wynik sprawdzenia, czy wszystkie znaki napisu są znakami alfanumerycznymi i napis składa się przynajmniej z jednego znaku. isalpha() zwraca wynik sprawdzenia, czy wszystkie znaki napisu są literami i napis składa się przynajmniej z jednego znaku.

Łańcuchy znaków metody isdigit() zwraca wynik sprawdzenia, czy wszystkie znaki napisu są cyframi. islower() zwraca wynik sprawdzenia, czy wszystkie litery napisu są małymi literami i napis zawiera przynajmniej jedną mała literę. isspace() wraca wynik sprawdzenia, czy wszystkie znaki napisu są białymi znakami i napis składa się przynajmniej z jednego znaku. istitle() zwraca wynik sprawdzenia, czy napis ma strukturę tytułu, to znaczy każdy wyraz napisu musi zaczynać się wielką literą i składać wyłącznie z małych liter lub znaków nieliterowych. isupper() zwraca wynik sprawdzenia, czy wszystkie litery napisu są wielkimi literami i napis zawiera przynajmniej jedną wielka literę.

Łańcuchy znaków metody ljust(szerokość) zwraca kopię napisu wyrównaną do lewej w napisie o szerokości szerokość. Wypełnienie jest uzyskane za pomocą znaków spacji. Jeśli szerokość jest mniejsza od len(s) zwracany jest oryginalny napis. lower() zwraca kopię napisu zamienionego na małe litery. lstrip([chars]) zwraca kopię napisu z usuniętymi znakami z początku napisu. W przypadku, gdy argument chars nie został podany, lub ma wartość None, usunięte zostaną białe znaki. Jeżeli argument ten jest podany i nie ma wartości None, musi być typu napisowego. Z początku napisu, na rzecz którego wywołana została ta metoda, zostaną usunięte znaki wchodzące w skład argumentu chars.

Łańcuchy znaków metody replace(stary, nowy[, ile]) zwraca kopię napisu z wszystkimi wystąpieniami napisu stary zastąpionymi przez nowy. Jeśli zostanie podany argument ile, zostanie zastąpiona tylko podana ilość wystąpień. rfind(napis [,początek [, koniec]]) zwraca najwyższy indeks wystąpienia napisu napis, takiego, aby napis był zawarty w przedziale [początek, koniec). Opcjonalne argumenty początek i koniec są interpretowane tak samo, jak w operacji wycinania. Zwraca -1 jeśli napis nie został znaleziony. rjust(szerokość) zwraca kopię napisu wyrównaną do prawej w napisie o szerokości szerokość. Wypełnienie jest uzyskane za pomocą znaków spacji. Jeśli szerokość jest mniejsza od len(s) zwracany jest oryginalny napis.

Łańcuchy znaków metody rstrip([chars]) zwraca kopię napisu z usuniętymi znakami z końca napisu. W przypadku, gdy argument chars nie został podany lub ma wartość None, usunięte zostaną białe znaki. Jeżeli argument ten jest podany i nie ma wartości None, musi być typu napisowego. Z końca napisu, na rzecz którego wywołana została ta metoda, zostaną usunięte znaki wchodzące w skład argumentu chars. startswith(prefix[, start[, end]]) zwraca wynik sprawdzenia, czy napis zaczyna się napisem prefix. Przy wystąpieniu argumentu start, sprawdzenie rozpoczyna się od tego znaku. Przy wystąpieniu argumentu end porównanie zakończy się na tym znaku. strip([chars]) zwraca kopię napisu z usuniętymi znakami z początku i końca napisu. W przypadku, gdy argument chars nie został podany lub ma wartość None, usunięte zostaną białe znaki. Jeśli argument ten jest podany i nie ma wartości None, musi być typu napisowego. Z początku i końca napisu, na rzecz którego wywołana została ta metoda, zostaną usunięte znaki wchodzące w skład argumentu chars.

Łańcuchy znaków metody swapcase() zwraca kopię napisu z małymi literami zamienionymi na wielkie, a wielkimi na małe. title() zwraca kopię napisu zamienioną na strukturę tytułu, to znaczy każdy wyraz napisu zostaje zamieniony na rozpoczynający się wielką literą z pozostałymi literami zamienionymi na małe. upper() zwraca kopię napisu z wszystkimi literami zamienionymi na wielkie litery. zfill(szerokość) zwraca napis uzupełniony z lewej strony zerami do podanej szerokości. W przypadku, gdy wartość argumentu jest mniejsza od długości napisu, zostanie zwrócony oryginalny napis.

Krotka Krotka (ang. tuple) to struktura danych będąca odzwierciedleniem matematycznej n-ki, tj. uporządkowanego ciągu wartości. Elementy krotki nie muszą być tego samego typu. Krotki są niemodyfikowalne, ale ich elementy mogą być wartościami typów modyfikowalnych. Odczyt elementu krotki wymaga podania indeksu liczbowego żądanego elementu. Na przykład: t = () # krotka pusta t = (6,) # krotka jednoelementowa

Przykład 3 >>> film = "Rejs", 1970 film ( Rejs, 1970) >>> film[0] Rejs >>> film[1] 1970 >>> film = ("Rejs", "film komiediowy", 1970, "Marek Piwowski", "Wojciech Kilar") >>> film[2] 1970 # Rozpakowanie >>> tytul, gatunek, rok, rezyseria, autor_muzyki = film >>> rezyseria Marek Piwowski

Funkcje zwracające krotki Funkcja może zawsze zwrócić tylko jedną wartość, ale poprzez zgrupowanie dowolnie wielu wartości w krotkę, może zwrócić ją jako pojedynczą wartość. def main(): a = float(input("a= ")) b = float(input("b= ")) ekstrema = min_max(a,b) print('min: ', ekstrema[0], 'max: ', ekstrema[1]) def min_max(a,b): min = max = a if a < b: min = a max = b elif a > b: min = b max = a return (min, max, pole) main()

Listy Do grupowania różnych wartości najbardziej użytecznym typem jest lista, którą można zapisać jako listę elementów poprzedzielanych przecinkami, umieszczoną w kwadratowych nawiasach. Elementy listy nie muszą być tego samego typu! np. zakupy = ['chleb', 1.95, 'mleko', 2.19, 'masło', 3.20] Elementy listy są indeksowane. Indeksy listy zaczynają się od 0. print(zakupy[0], zakupy[2], zakupy[4])

Listy Listy mogą być przedmiotem operacji wykrawania, sklejania itd., np. >>> zakupy = ['chleb', 1.95, 'mleko', 2.19, 'masło', 3.20] >>> zakupy[1:-1] [1.95,'mleko',2.19,'masło'] >>> zakupy[:2] + ['sałata', 2 * 2.2] ['chleb',1.95,'sałata',4.4] >>> 2 * zakupy[:3] + ['koniec'] ['chleb',1.95,'mleko','chleb',1.95,'mleko','koniec'] Można zmieniać poszczególne elementy listy. >>> zakupy = ['chleb', 1.95, 'mleko', 2.19, 'masło', 3.20] >>> zakupy[1] += 0.23 >>> zakupy ['chleb', 2.18, 'mleko', 2.19, 'masło', 3.20]

Operacje na listach lista = ['a', 'b', 6, 12] >>> lista[0:2] = [1, 2] # Zastępujemy pewne elementy: >>> lista [1, 2, 6, 12] >>> lista[0:2] = [] # Usuwamy pewne elementy: >>> lista [6, 12] >>> lista[1:1] = ['c', 'd'] # Wstawiamy pewne elementy: >>> lista [6, 'c', 'd ', 12] >>> lista[:0] = lista # Wstaw kopię samego siebie na początek: >>> lista [6, 'c', 'd ', 12, 6, 'c', 'd', 12] >>> lista[:] = [] # Czyści listę: >>> lista []