OBOWIĄZKOWE DO PRZESŁANIA: 2.10-2.19
Prosty sposób na automatyczne sprawdzenie kodu:
assert result == expected_result
W zadaniach budujemy całe napisy, a nie wyświetlamy po kawałku.
Wygenerować listę słów kluczowych Pythona. Sprawdzić, czy można utworzyć zmienne o takich nazwach.
Sprawdzić listę obiektów wbudowanych. W czasie normalnej pracy nie ma potrzeby importowania modułu __builtin__, ponieważ obiekty wbudowane są dostępne.
>>> import __builtin__ >>> dir(__builtin__)
W trybie interaktywnym zbadać podane wyrażenia i wyjaśnić rezultaty.
5 == 5, 4 > 5 # porównania type(True), type(False) # bool, bool type(1), type(0) # int, int x = 5 x == 5 and 3 # 3 x == 4 and 3 # False 3 and x == 5 # True 3 and x == 4 # False 1 < x < 9 # łączenie operatorów porównania isinstance(True, int) # True isinstance(True, bool) # True
W trybie interaktywnym zbadać:
W trybie interaktywnym zbadać podane wyrażenia.
# Funkcja len(). len("napis") # 5 len(str(2 ** 10000)) # konwersja liczby do napisu "abc", 'abc' # identyczne S = "ab" 'cd' # niejawna konkatenacja do "abcd" "ab'cd", 'ab"cd' # zastosowanie S = "a\tb\nc\"d" # znaki specjalne print("{} {}".format(len(S), S)) # 7 S = """jeden dwa trzy""" # napis wielowierszowy, podobnie z ''' print(S)
# Sprawdzić indeksowanie i wycinki. S = "abrakadabra" S[2], S[-3], S[3:5], S[3:], S[:4]
# Sprawdzić konkatenację (łączenie) i powtórzenie napisów. L = ["a", "b", "c"] L[0] + L[1] + L[2] # ręczne dodawanie L[0] + "=" + L[1] + "=" + L[2] "".join(L) # zalecane "=".join(L) # zalecane # S.join([S1, S2, S3]) daje napis (S1 + S + S2 + S + S3). # Sprawdzić niezmienność napisów.
Zbadać metody dla napisów, lista metod dir(str). Zwrócić uwagę na metody: find(), replace(), strip(), lower(), upper(), zfill().
W trybie interaktywnym zbadać podane wyrażenia.
L = [3, "xyz", [10, 20]] len(L) L[1], L[1][0], L[2], L[2][1] M = L L[1] = 5 # zmienia się też M! # Indeksowanie # Wycinki. # Konkatenacja i powtórzenie. # Podstawianie pod element lub wycinek. # Generowanie list funkcją range(). # Kopiowanie list. # Sortowanie list. # Listy składane.
Spróbować wyświetlić element poza końcem listy (IndexError). Spróbować przypisać element pod indeksem poza końcem listy.
Zbadać różnicę między podstawianiem L2 = L1, a kopiowaniem list L2 = list(L1). Wykorzystać funkcję id().
Zbadać metody dla list, lista metod dir(list).
W trybie interaktywnym zbadać operacje na krotkach.
Zbadać metody dla krotek, lista metod dir(tuple).
W trybie interaktywnym zbadać operacje na słownikach, lista metod dir(dict).
Sprawdzić możliwość pobrania nieistniejącego klucza (KeyError).
W trybie interaktywnym zbadać operacje na zbiorach.
Zbadać metody dla zbiorów, listy metod dir(set) oraz dir(frozenset).
Wykorzystać zbiór do usunięcia duplikatów z listy.
Napisać funkcję wykonującą kopiowanie pliku, która pomija linie rozpoczynające się od znaku # (linie z komentarzami).
Mamy dany string wielowierszowy line. Podać sposób obliczenia liczby wyrazów w stringu. Przez wyraz rozumiemy ciąg "czarnych" znaków, oddzielony od innych wyrazów białymi znakami (spacja, tabulacja, newline).
Podać sposób wyświetlania stringu word tak, aby jego znaki były rozdzielone znakiem podkreślenia.
Zbudować string stworzony z pierwszych znaków wyrazów ze stringu line. Zbudować napis stworzony z ostatnich znaków wyrazów ze stringu line.
Znaleźć łączną długość wyrazów w stringu line. Wskazówka: można skorzystać z funkcji sum().
Znaleźć: (a) najdłuższy wyraz, (b) długość najdłuższego wyrazu w stringu line.
Na liście L znajdują się liczby całkowite dodatnie. Stworzyć string będący ciągiem cyfr kolejnych liczb z listy L.
W tekście znajdującym się w stringu line zamienić ciąg znaków "GvR" na "Guido van Rossum".
Posortować wyrazy ze stringu line raz alfabetycznie, a raz pod względem długości. Wskazówka: funkcja wbudowana sorted().
Znaleźć liczbę cyfr zero w dużej liczbie całkowitej. Wskazówka: zamienić liczbę na string.
Na liście L mamy liczby jedno-, dwu- i trzycyfrowe dodatnie. Chcemy zbudować string z trzycyfrowych bloków, gdzie liczby jedno- i dwucyfrowe będą miały blok dopełniony zerami, np. 007, 024. Wskazówka: str.zfill().