Transkrypt
print
Podstawy programowania Python – wykład 2 input() ● ● ● Zwraca wartośc wczytaną z klawiatury w postaci łańcucha. Argumentem jest napis (łańcuch), który wyświetli się na ekranie uzytkownika. Aby wczytana wartość była innego typu niż łańcuch należy dokonać jej konwersji na odpowiedni typ, np. int(input(...)) float(input()) print() ● Wypisuje na ekranie wartości argumentów. ● Automatycznie wstawia znak końca linii. ● ● Aby nie przechodzić do nowej linii ostatnim argumentem powinno być: end=''. Argumenty: łańcuchy, zmienne oddzielone są przecinkami. ● Wstawia spacje jako separator argumentów. ● Znaki specjalne: \n, \a, \v, \t, \b, \r. ● Wywołanie print() powoduje wstawienie pustej linii. print() ● ● print(''' Ala print('Ala') ma print('ma') kota''') print('kota') print(””” Ala ma kota”””) Porównywanie kaskadowe ● Porównania można łączyć ze sobą tworząc wyrażenia postaci: a<b<c<e jest równoważne: a < b and b < c and c < e ● Porównania kaskadowe mogą mieć dowolną długość, lecz niejawna obecność spójnika and oznacza, że obliczenia zatrzymają się natychmiast po stwierdzeniu tego, czy prawdziwość całego wyrażenia może być jednoznacznie obliczona, np. w wyrażeniu a<b<c<d jeżeli a < b jest fałszywe, c i d nie będzie obliczane. Podział instrukcji na wiersze ● Jawny podział na wiersze '\' print('Ala \ ma \ kota') ● ● W sposób niejawny poprzez wstawienie Enter w nawiasy [], (), {}. Nie można stosować lewego ukośnika w celu kontynuacji komentarza. Blok ● ● ● ● ● Blok musi zawierać co najmniej jedną instrukcję. pass pozwala na tworzenie bloku z instrukcją pustą. Python wykrywa początek i koniec bloku na podstawie wcięcia jego instrukcji. Jako blok traktowane są instrukcje wcięte na taką samą głębokość. Głębokość uzyskuje się stosując spację lub tabulację. UWAGI ● Python umożliwia wpisanie więcej niż jednej instrukcji w wierszu, jeśli będą one oddzielone średnikiem, np. x=1;y=2;print(x+y) ● Można także przenieść ciało instrukcji złożonej do wiersza nagłówka, np. for x in range(1,10): print(x) if-elif-else ● Instrukcja warunkowa uruchamia blok instrukcji, jeśli dany warunek jest prawdziwy. if warunek: blok elif warunek1: blok1; … else: blok_domyślny if-elif-else ● Instrukcja warunkowa uruchamia blok instrukcji, jeśli dany warunek jest prawdziwy. if warunek: blok elif warunek1: blok1; … else: blok_domyślny Przykład 1 ostatnia_litera = input('Podaj swoją \ ostatnią literę pełnego imienia: ') if ostatnia_litera == 'a': print('Jesteś kobietą') Przykład 2 ostatnia_litera = input('x = ') if 0 < x : print('Liczba dodatnia') elif x < 0: print('Liczba ujemna') else: print('Zero') Pętla for ● Pętla to mechanizm umożliwiający cykliczne wykonywanie instrukcji, czyli powtarzanie ich w kółko albo określoną liczbę razy. for licznik in sekwencja: blok ● sekwencja: – krotka = (1,'ala',2) – lista = [1,2,3,4] – przedzial1 = range(1,10) – przedzial2 = range(1,10,2) – slownik = {'wiek': 12, 'plec':'K'} Przykład 3 for i in range(1,10): print(i,end='') for i in range(1,10,2): print(i,end='') for i in (1,'Ala', 'ola', 3): print(i,end='') Przykład 4 lista = ['Ala', 'Ola', 'Basia'] for imie in lista: print(imie) for i, element in enumerate(lista): print("Przebieg pętli", i, "element", element) for i, element in enumerate(lista,1): print("Przebieg pętli", i, "element", element) Przykład 5 slownik = {'imie': 'Jan', 'nazwisko': 'Kowalski', 'wiek': 12, 'zawód': 'spawacz'} for klucz, wartosc in slownik.items(): print(klucz + ': ' + str(wartosc)) for klucz in slownik.keys(): print(klucz) for wartosc in slownik.values(): print(wartosc) Przykład 6 for i in range(1,20,2): pass else: print('skonczylem') Pętla while ● ● ● ● najbardziej ogólna konstrukcja umożliwiająca użycie iteracji; wywołuje powtarzanie wciętego bloku instrukcji dopóty, dopóki wynik testu przeprowadzanego na najwyższym poziomie ma wartość prawdziwą; jeśli wynik testu jest fałszywy, to sterowanie przechodzi poza blok instrukcji objęty pętlą while; blok nigdy się nie wykona, jeśli wynik pierwszego testu będzie fałszywy. Format ogólny while <test>: <instrukcje> else: <instrukcje> # test pętli, nagłówek pętli # ciało pętli # opcjonalna część # wykonają się jeśli pętla nie # zakończyła się instrukcją break Przykład 7 while 1: print('Aby zatrzymać wcisnij Ctrl+C') while True: print('Aby zatrzymać wcisnij Ctrl+C') while 'A': print('Aby zatrzymać wcisnij Ctrl+C') Przykład 8 Odcinanie pierwszego znaku z łańcucha, aż do chwili gdy łańcuch będzie pusty. x = 'mielonka' while x: print(x) x = x[1:] Przykład 9 Program liczy w górę od wartości a do b (z wyłączeniem b). a = 0; b = 10 while a < b: print(a,' ', end='') a = a + 1 print() break, continue ● ● ● ● break – wyjście z najbliższej pętli (pominięcie instrukcji pętli) continue – przejście na górny poziom najbliższej pętli (do wiersza nagłówkowego tej pętli) pass – nic nie robi wypełniacz pustego miejsca w bloku, instrukcji instrukcje break i continue mogą pojawić się w dowolnym miejscu w ciele pętli while, ale najczęściej są używane w postaci zagnieżdżenia w ciele instrukcji if. Przykład 10 i = 1 while i < 100: s = int(input('Podaj liczbę całkowitą: ')) if s % 2 == 0: print('parzysta; break') break elif s % 3 == 0: print('dzieli się przez 3; continue') continue print('nieparzysta i nie dzieli się przez 3') if i < 100: print('Zadziałało break') Przykład 11 Czy y podany przez uzytkownika jest liczbą pierwszą? y = int(input('y = ')) x = y // 2 while x > 1: if y % x == 0: print(x, 'jest podzielnikiem', y) break x = x – 1 else: print(y, 'jest liczbą pierwszą') random ● ● ● jest modułem składającym się z szeregu funkcji do generowania pseudo-losowego randrange(): – randrange(prawy) – randrange(lewy, prawy) – randrange(lewy, prawy, krok) randint(a,b) – generuje losowe wartości z przedziału obustronnie domkniętego od a do b Przykład 12 import random for i in range(20): x = random.randrange(20) print(x, ' ', end='') for i in range(1,40): x = random.randrange(1,40) print(x, ' ', end='') Przykład 13 import random for i in range(1,20): x = random.randrange(-20,20) print(x, ' ', end='') for i in range(1,40): x = random.randint(ord('A'),ord('Z')) print(chr(x), ' ', end='') Metody listy ● list(s) - konwertuje sekwencję s na listę ● s.append(x) - dodaje nowy element x na końcu s ● s.extend(t) - dodaje nową listę t na końcu s ● s.count(x) - zlicza wystąpienie x w s ● s.index(x) - zwraca najmniejszy indeks i, gdzie s[i] == x ● s.pop([i]) - zwraca i-ty element i usuwa go z listy. Jeżli nie podamy parametru to usunięty zostanie ostatni element ● s.remove(x) - odnajduje x i usuwa go z listy s ● s.reverse() - odwraca w miejscu kolejność elementów s ● ● s.sort([funkcja]) - Sortuje w miejscu elementy. "funkcja" to funkcja porównawcza s.insert(i, x) – wstawia x w i-te miejsce Przykład 14 L = [1,2,7,8,3]; print(L) L.append(12); print(L) L.extend([23,20,19,33]); print(L) L.insert(3,13); print(L) L.pop(); print(L) L.remove(20); print(L) L.sort(); print(L) L.reverse(); print(L) K = sorted(L); print(L); print(K)