otázka |
Odpoveď |
Wypisz tekst lub zawartość zmiennej w konsoli začať sa učiť
|
|
print('string') lub print(zmienna)
|
|
|
začať sa učiť
|
|
input("opcjonalny tekst") Wynik najlepiej zapisać do zmiennej
|
|
|
začať sa učiť
|
|
Typ 'int' nie posiada metody len(), sprawdzanie długości nie ma w tym wypadku sensu.
|
|
|
začať sa učiť
|
|
String można traktować w Pythonie jak tablicę i odwoływać się do konkretnych pozycji, np. "napis"[1] zwróci 'a'
|
|
|
Jak sprawdzić typ zmiennej? začať sa učiť
|
|
|
|
|
začať sa učiť
|
|
Można dzielić liczby całkowite, ale wynik dzielenia automatycznie zostanie zmieniony na float.
|
|
|
začať sa učiť
|
|
**, np... 2**3 - (2 do potęgi 3)
|
|
|
Zaokrąglanie wartości do zadanej ilości miejsc začať sa učiť
|
|
round(liczba, ilość_miejsc), np. round(1.99323, 2) Wywołanie bez drugiego argumentu zwróci najbliższą liczbę całkowitą.
|
|
|
Jak uzyskać liczbę całkowitą z dzielenia? začať sa učiť
|
|
Floor division' - zamiast pojedynczego '/' można użyć podwójnego, np... 8//3 zwróci 2 i obetnie resztę dziesiętną
|
|
|
začať sa učiť
|
|
Sposób dołączenia zawartości zmiennych do napisu: f"napis i {zmienna}"
|
|
|
Operatory logiczne w if/else začať sa učiť
|
|
If war1 and war2 or not war3
|
|
|
Policz ile razy dana liczba występuje w stringu začať sa učiť
|
|
|
|
|
Zmień litery na małe lub duże začať sa učiť
|
|
string. lower(), string. upper()
|
|
|
Przejście do nowej linii wewnątrz stringa začať sa učiť
|
|
Użycie '\n' wewnątrz stringa
|
|
|
Jak zapisać w zmiennej wcześniej sformatowany napis? začať sa učiť
|
|
Użyj potrójnych cudzysłowów lub apostrofów
|
|
|
Jak generować losowe liczby? začať sa učiť
|
|
Zaimportuj moduł 'random', można użyć np... random. random() - wylosuje liczbę między 0 a 1, random. randint(a,b) - losowa liczba z podanego przedziału, random. choice(lista) - wybierze losową wartość z listy
|
|
|
Co spowoduje użycie ujemnego indeksu w listach? začať sa učiť
|
|
Zostanie wybrana wartość od końca.
|
|
|
začať sa učiť
|
|
|
|
|
Dodaj wiele elementów do tablicy začať sa učiť
|
|
tablica. extend([tablica])
|
|
|
začať sa učiť
|
|
for element in elements - zmienna element tworzona jest tymczasowo w samej liście, jest do niej przypisywany element z listy w danej iteracji. Najlepiej nazywać w liczbie pojedynczej, np... for fruit in fruits
|
|
|
Znalezienie danego słowa w tablicy začať sa učiť
|
|
|
|
|
Powtórzenie danej operacji X razy začať sa učiť
|
|
Pętla for: for numer in range(start, stop, krok), np... For number in range(1, 12, 2) wybierze liczby od 1 do 12 wyłącznie, co drugą liczbę Wywołując range z jednym argumentem, pętla zostanie wykonana dokładnie tyle razy
|
|
|
Tworzenie funkcji w Pythonie začať sa učiť
|
|
def nazwa_funkcji(argumenty):
|
|
|
Jak najlepiej robić wcięcia w Pythonie? začať sa učiť
|
|
Preferowaną metodą są 4 spacje, ale edytory kodu mogą automatycznie zmieniać tabulator na daną liczbę spacji
|
|
|
začať sa učiť
|
|
Można użyć break i continue
|
|
|
Używanie pętli for i while - kiedy? začať sa učiť
|
|
For - gdy wiemy ile razy ma się wykonać lub gdy iterujemy po tablicy, while - gdy nie znamy lub nie jest ważna liczba iteracji
|
|
|
Czym się różni parametr od argumentu w funkcji? začať sa učiť
|
|
Parametr to to co funkcja przyjmuje, argument - to co jest przekazywane.
|
|
|
Jak można podać argumenty podczas wywoływania funkcji? začať sa učiť
|
|
Można to zrobić wpisując je zgodnie z kolejnością parametrów (positional argument) albo podając nazwę i argument, np... Parametr='argument', wtedy nie trzeba zachować kolejności
|
|
|
Jak zwrócić indeks danej wartości w tablicy? začať sa učiť
|
|
|
|
|
Czym jest i jak wygląda słownik? začať sa učiť
|
|
słownik - {'klucz':'wartość', 'klucz': liczba...} Konwencja: każdy element słownika w nowej linii, odpowiednio wcięty, po ostatnim elemencie również dodajemy przecinek
|
|
|
Jak wyświetlić daną wartość ze słownika? začať sa učiť
|
|
|
|
|
Jak dodać nową wartość do słownika? začať sa učiť
|
|
słownik['nowy_klucz'] = 'nowa_wartość' Chcąc dodawać nowe elementy do słownika, należy go najpierw stworzyć jako pusty - nowy_słownik = {}, podobnie z listą
|
|
|
Jak można usunąć słownik lub listę? začať sa učiť
|
|
Można je usunąć poprzez nadpisanie pustym elementem - [] lub {}
|
|
|
Jak edytować wartość w słowniku? začať sa učiť
|
|
słownik['istniejący_klucz'] = 'nowa_wartość' Użycie nowego klucza utworzy wartość
|
|
|
Co da zastosowanie pętli for na słowniku? začať sa učiť
|
|
for element in dict - domyślnie zwróci klucze, chcąc iterować po wartościach musimy użyć dict. values(), a po całych elementach - dict. items() (w tym wypadku zostanie zwrócona tuple)
|
|
|
Co spowoduje umieszczenie słowa return w definicji funcji? začať sa učiť
|
|
Spowoduje wyjście z funkcji i ewentualnie zwrócenie tego, co podamy po słowie return. Return sprawi, że po wykonaniu funkcji, zwracane wyrażenie zastąpi linię kodu gdzie funkcja była wywołana.
|
|
|
Jak zmienić pierwszą literę w słowie na dużą, a resztę na małe? začať sa učiť
|
|
"word". title() - zwróci 'Word', jeśli string ma wiele słów to zmiana nastąpi w każdym z nich. Oprócz zamiany pierwszej litery na dużą, pozostałe zostaną zmienione na małe.
|
|
|
Jak zmienić pierwszą literę w słowie na dużą bez modyfikowania reszty? začať sa učiť
|
|
"woRd". capitalize() - zwróci "WoRd" W przeciwieństwie do title() nie zmienia żadnych liter poza pierwszą.
|
|
|
začať sa učiť
|
|
Docstrings pozwalają tworzyć opisy funkcji które pojawiają się w dymku podczas pisania nazwy funkcji. Opis musi się pojawić jako pierwsza linia po deklaracji funkcji i być zamknięty w potrójnych apostrofach lub cudzysłowach.
|
|
|
Czym jest rekursja/rekurencja? začať sa učiť
|
|
Jest to wywołanie funkcji wewnątrz tej samej funkcji (funkcja wywołuje siebie samą)
|
|
|
začať sa učiť
|
|
Usunie pierwszy napotkany element o podanej nazwie.
|
|
|
Zwróć tablicę z kluczami w danym słowniku začať sa učiť
|
|
|
|
|
Jak zapisać pętlę która ma się wykonać konkretną ilość razy? začať sa učiť
|
|
_ użyjemy gdy nieistotny jest element i nie będziemy go używać w pętli
|
|
|
Jakie scope występują w Pythonie? začať sa učiť
|
|
W Pythonie jest scope globalny i lokalny (funkcyjny), nie ma scope blokowego. Zmienna zadeklarowana wewnątrz instrukcji if else ma ten sam scope co ta instrukcja.
|
|
|
začať sa učiť
|
|
Namespace wiąże się ze scopem - jeśli zadeklarujesz zmienną lub funkcję wewnątrz jakiejś innej funkcji, będzie ona widoczna na tym poziomie i głębiej
|
|
|
Jak edytować zmienną globalną wewnąrz funkcji? začať sa učiť
|
|
Musimy najpierw w funkcji napisać 'global nazwa_zmiennej', a potem używać jej jak normalnie. Nie jest zalecana zmiana zmiennych globalnych.
|
|
|
začať sa učiť
|
|
Stałe zapisuj jako zmienne globalne, wielkimi literami w nazwie.
|
|
|
začať sa učiť
|
|
Są to wskazówki i instrukcje jak pisać czytelny kod. Zawierają zalecaną liczbę spacji we wcięciach, odstępy itp...
|
|
|
Czym jest scope w Pythonie? začať sa učiť
|
|
Scope to zasięg widoczności zmiennych. Zmienne są zawsze widoczne na tym samym poziomie i głębiej. Jeśli wewnątrz funkcji stworzysz zmienną o takiej samej nazwie jak globalna, Python potraktuje je jak dwie osobne.
|
|
|
Jakie są ogólne kroki debugowania? začať sa učiť
|
|
1. Określ probem, 2. odtwórz bug, 3. prześledź linia po linii, 4. napraw od razu błędy wskazywane przez edytor, 5. używaj print() do wyświetlania zawartości, 6. użyj debuggera Oprócz tego zrób przerwę żeby zyskać świeże spojrzenie lub zapytaj kogoś, rób testy w trakcie kodu i korzystaj ze Stack Overflow
|
|
|
začať sa učiť
|
|
1. Pomyśl o problemie i rozbij go, 2. stwórz flowchart, 3. zrób listę to do, 4. zapisz todo w kodzie, 5. zajmuj się pojedynczymi problemami
|
|
|
Jakie nazewnictwo stosuje się w Pythonie? začať sa učiť
|
|
1. zmienne i funkcje - snake_case, 2. klasy - PascalCase, 3. stałe - DUŻY_SNAKE_CASE
|
|
|
Jak stworzyć nowy obiekt? začať sa učiť
|
|
nowy_obiekt = NazwaKlasy()
|
|
|
Jak użyć atrybutu lub metody z obiektu? začať sa učiť
|
|
obiekt. atrybut lub obiekt. metoda()
|
|
|
Gdzie można znaleźć spis modułów do Pythona? začať sa učiť
|
|
pypi. org - jest to package index dla Pythona
|
|
|
začať sa učiť
|
|
Nie używamy nawiasów jak w funkcjach
|
|
|
Jak można stworzyć 'szkielet' kodu, używając tymczasowo 'dummy' zamiast np... funkcji? začať sa učiť
|
|
Można użyć słowa kluczowego 'pass' jako placeholder na czas tworzenia kodu. Na późniejszym etapie zastąpi się go kodem funkcji lub instrukcji. Np... class NewClass: pass
|
|
|
Czym jest konstruktor klasy? začať sa učiť
|
|
Konstruktor to specjalna metoda, która jest wywoływana za każdym razem podczas tworzenia nowej instancji klasy (nowego obiektu), odpowiada m.in... za inicjalizację zmiennych w obiekcie.
|
|
|
Jak wygląda konstruktor klasy? začať sa učiť
|
|
Wewnątrz klasy: def __init__(self), argument self jest obowiązkowy, nazwa konstruktora zawsze wygląda tak samo. np... def __init__(self, name, price): self. name = name, self. price = price
|
|
|
Jak ustawić domyślną wartość atrybutu w konstruktorze? začať sa učiť
|
|
Po prostu wewnątrz konstruktora możemy przypisać wartość początkową, np... self. followers = 0
|
|
|
Jak stworzyć metodę w klasie? začať sa učiť
|
|
def nazwa_metody(self, inne_argumenty) Każda metoda musi mieć jako jeden z argumentów 'self'.
|
|
|
Czym są wyrażenia listowe (list comprehensions)? začať sa učiť
|
|
Wyrażenia listowe to elegancki sposób tworzenia nowej listy na bazie innej listy. Można w nich stosować warunek if else.
|
|
|
Jak wygląda wzór na wyrażenie listowe? začať sa učiť
|
|
[new_item for item in list if test], z else: [new_item if test else new_item2 for item in list] new_item to przepis wg którego ma zostać stworzony element w liście.
|
|
|
začať sa učiť
|
|
turtle to jeden z modułów wbudowanych w Pythona, umożliwiający tworzenie programów rysujących lub edukacyjnych.
|
|
|
Jak stworzyć alias importowanego modułu? začať sa učiť
|
|
|
|
|
Jak zainstalować zewnętrzny moduł? začať sa učiť
|
|
Użyj pip install nazwa_modułu
|
|
|
Czym jest tuple (krotka)? začať sa učiť
|
|
Jest to zbiór wartości podobny do listy, ale niezmienialny (immutable), zapisujemy w nawiasach okrągłych, np. set = (1, 245, 'agks')
|
|
|
Czym jest moduł colorgram? začať sa učiť
|
|
To moduł umożliwiający np. zwrócenie listy z zadaną liczbą kolorów najczęściej występujących w pliku graficznym, do którego ścieżkę podajemy w jednej z metod.
|
|
|
Jak przekazać funkcję jako argument? začať sa učiť
|
|
Podając jej nazwę ale bez nawiasów. Nawiasy wywołują funkcję w miejscu w którym interpreter na nie napotyka, a funkcja jako argument ma się odpalić w innym momencie.
|
|
|
Czym jest funkcja wyższego rzędu (Higher Order Function)? začať sa učiť
|
|
Jest to funkcja która przyjmuje inną funkcję jako argument. HOF są częste w Pythonie.
|
|
|
Jak wstrzymać wykonywanie programu na określony czas? začať sa učiť
|
|
Należy zaimportować moduł time, a następnie użyć time. sleep(seconds) Jako parametr podajemy liczbę sekund.
|
|
|
Czym jest dziedziczenie klas? začať sa učiť
|
|
Klasa może dziedziczyć atrybuty i metody z innej klasy i rozszerzać je o nowe.
|
|
|
Jak odziedziczyć inną klasę? začať sa učiť
|
|
class NowaKlasa(StaraKlasa): def __init__(self): super().__init__() Jako argument w nowej klasie podajemy inną klasę, a w konstruktorze nowej klasy wpisujemy super() (superior class) i jej konstruktor.
|
|
|
Jak wyciągnąć część listy? (slicing) začať sa učiť
|
|
Możemy użyć zapisu z dwukropkiem: lista[2:5], lista[2:], lista[:5], lista[2:5:2], lista[:-1] 1. zakres, 2. od elementu do końca, 3. od początku do elementu, 4. zakres z krokiem (3 liczba), 5. od końca
|
|
|
Jak stosować slicing listy? začať sa učiť
|
|
Slicing (z użyciem dwukropka) najlepiej używać w pętli for, aby działać tylko na wybranych elementach tablicy.
|
|
|
Jak otworzyć plik w Pythonie? (2 sposoby) začať sa učiť
|
|
1. Użyj open(plik, tryb) i przypisz do zmiennej, ale na końcu pracy z plikiem należy go zamknąć (plik. close()), 2. Użyj with open(plik, mode): i po wcięciu napisz resztę kodu. Nie trzeba pamiętać o zamykaniu pliku. Plik zostanie zamknięty po wykonaniu wciętego bloku kodu.
|
|
|
Różnica między open(plik) a plik. read() začať sa učiť
|
|
Open otwiera plik do pracy, rezerwując na niego zasoby w pamięci (dlatego aby je zwolnić, należy po skończonej pracy go zamknąć). Plik. read() zwraca tekstową zawartość otwartego pliku jako string. Jako jeden z argumentów open() podaje się tryb - w (write), r (read), a (append)
|
|
|
Tryby pracy z plikiem tekstowym začať sa učiť
|
|
1. 'w' - write, nadpisuje wszystko w dokumencie, jeśli plik nie istnieje to zostanie stworzony, 2. 'r' (domyślny) - odczytuje jako string, 3. 'a' (append) - dołącza zawartość tekstową do już istniejącej
|
|
|
Zapis do pliku tekstowego začať sa učiť
|
|
Otwórz plik za pomocą open(plik, mode) z trybem 'w' lub 'a', po czym zastosuj plik. write('tekst') W nadpisze wszystko, A - dołączy do pliku
|
|
|
Czym jest ścieżka relatywna do pliku? začať sa učiť
|
|
Jest to ścieżka względem głównego pliku (np... main. py). Jeśli coś znajduje się na tym samym poziomie co główny plik, możemy wywołać go bezpośrednio, jeśli w folderze - folder/plik.
|
|
|
Czym jest ścieżka absolutna do pliku? začať sa učiť
|
|
Jest to pełna ścieżka od roota, np... C:/folder/plik. txt.
|
|
|
Jak odczytać plik tekstowy w ten sposób, żeby każda linia była elementem tablicy? začať sa učiť
|
|
Użyj funkcji plik. readlines() Każdy wiersz oddzielony znakiem nowej linii będzie osobnym elementem wynikowej tablicy.
|
|
|
Jak zamienić fragment tekstu w stringu na inny? začať sa učiť
|
|
string. replace('stary_tekst', 'nowy_tekst')
|
|
|
Jak usunąć spacje lub inne znaki z początku i końca stringa? začať sa učiť
|
|
string. strip() - usunie spacje, string. strip(znak) - usunie podane znaki
|
|
|
Czym są dictionary comprehensions? začať sa učiť
|
|
Jest to podobnie jak w list comprehensions łatwiejszy sposób zapisu nowego słownika, bazując na liście lub innym słowniku.
|
|
|
Dictionary comprehension bazujące na liście začať sa učiť
|
|
{new_key: new_value for item in list}
|
|
|
Dictionary comprehension bazujące na słowniku začať sa učiť
|
|
{new_key: new_value for (key, value) in dict. items()}
|
|
|
Dictionary comprehension bazujące na dataframe (iterujące po wierszach) začať sa učiť
|
|
{new_key: new_value for (index, row) in dataframe. iterrows()}
|
|
|
začať sa učiť
|
|
Jest to moduł do tworzenia graficznego UI, domyślnie wbudowany w Pythona.
|
|
|
Tkinter - co to jest canvas i jak go stworzyć? začať sa učiť
|
|
Canvas to "płótno", które należy stworzyć aby umieścić na nim obraz. Tworzymy je za pomocą canvas = tkinter. Canvas(width=, height=)
|
|
|
Przekazywanie argumentów do funkcji začať sa učiť
|
|
1. W takiej kolejności, w jakiej zdefiniowano parametry (nie trzeba wtedy podawać ich nazwy), 2. W dowolnej kolejności, ale dla jasności trzeba podać nazwę wpisywanego parametru. def function(a, b,c) 1. function(2,3,4), 2. function(b=3, a=2, c=4)
|
|
|
Nadawanie parametrom funkcji domyślnych wartości w przypadku ich niewpisania začať sa učiť
|
|
def my_function(a=2, b=3, c=6): W przypadku nie wpisania któregoś argumentu podczas wywoływania funkcji, zostanie on zastąpiony domyślnym.
|
|
|
Jak napisać funkcję która przyjmuje wiele argumentów (jako tuple)? začať sa učiť
|
|
Używamy w tym celu *args, np... def add(*args): (nazwa args może być dowolna, ale ważna jest *). Funkcja może przyjąć dowolnie wiele argumentów które zostaną zapisane jako tuple i po których można potem iterować (ważna kolejność): for n in args:
|
|
|
Jak napisać funkcję która przyjmuje wiele argumentów klucz-wartość? začať sa učiť
|
|
Używamy w tym celu **kwargs (keyword arguments), zwróci dictionary z podanymi wartościami, po którym można iterować. np... calculate(add=3, multiply=5)
|
|
|
Pobieranie wartości ze słownika po kluczu - dwa sposoby začať sa učiť
|
|
1. słownik['klucz'] - wyrzuci błąd w przypadku nieistniejącego klucza, 2. słownik. get('klucz') - w przypadku nieistniejącego klucza zwróci None
|
|
|
Czym jest dynamiczne typowanie w Pythonie? začať sa učiť
|
|
Jest to możliwość przypisania do zmiennej przechowującej wartość danego typu wartości innego typu, np... do zmiennej z intem można przypisać stringa.
|
|
|
Czym jest moduł pyperclip? začať sa učiť
|
|
To moduł umożliwiający łatwą pracę z operacjami wytnij/wklej.
|
|
|
Czym jest Exceptions Catching? začať sa učiť
|
|
Jest to wyłapywanie wyjątków - zabezpieczanie się przed ewentualnościami, dzięki czemu program się nie wysypie.
|
|
|
Jak tworzymy wyłapywanie wyjątków? začať sa učiť
|
|
4 słowa kluczowe - try:, except:, else:, finally: 1. W try wpisujemy coś co może spowodować wyjątek, 2. W except - co zrobić jeśli wyjątek się pojawi, 3. Else - zrób coś gdy nie było żadnych wyjątków, 4. Zrób coś nieważne od wyniu poprzednich
|
|
|
Tworzenie obsługi wyjątku w try catch začať sa učiť
|
|
Wyjątek obsługujemy w bloku except, ale samo except jest zbyt ogólne - możemy sprecyzować o jaki błąd chodzi - np... except FileNotFoundError. W przeciwnym razie blok kodu wykona się przy dowolnym błędzie w try. Można również wpisać wiele wyrażeń except, obsługującyh różne błędy.
|
|
|
Tworzenie własnego wyjątku začať sa učiť
|
|
Używamy słówka raise, a po nim typ błędu, np. raise KeyError - zostanie wywołany gdy program napotka tą linę. Gdy np... Spodziewamy się wartości z zadanego przedziału, ale użytkownik poda złe dane, możemy wywołać raise ValueError('Wrong values, it can't be correct')
|
|
|
Jak pracować z JSONem w Pythonie? začať sa učiť
|
|
Należy zaimportować moduł json. Chcąc odczytać lub zapisać JSON w pliku, należy otworzyć go z odpowiednim trybem (open()), a potem użyć json. dump, json. load lub json. update.
|
|
|
začať sa učiť
|
|
Otwórz plik z mode='w', następnie json. dump(słownik, otwarty_plik, indent=n) - zapisuje słownik (bo ma taki sam format jak json) jako json do pliku, opcjonalnie indent - liczba spacji do wcięcia
|
|
|
začať sa učiť
|
|
Otwórz plik z mode='r', a następnie w json. load() podaj otwarty plik.
|
|
|
Jak używać json. update()? začať sa učiť
|
|
1. otwórz plik z 'r' i wczytaj do zmiennej za pomocą json. load(), 2. zmodyfikuj powstały słownik - data. update(nowe_dane), 3. otwórz plik z 'w' i zapisz json. dump()
|
|
|
Kiedy nie stosować try catch? začať sa učiť
|
|
Nie stosuj try catch wtedy gdy da się go zastąpić instrukcją if/else. Używaj go tylko w przypadkach gdzie może zostać wyrzucony błąd i dla czegoś co się dzieje rzadko
|
|
|
Moduł służący do wykonywania czynności związanych z wysyłaniem maili. začať sa učiť
|
|
smtplib - jest to smtp protocol client, a samo SMTP oznacza Simple Mail Transfer Protocol
|
|
|
Moduł do operacji związanych z czasem i datą začať sa učiť
|
|
np... Import datetime as dt > now = dt. datetime. now() > year = now. year
|
|
|
Jak można zapisać datę do zmiennej? začať sa učiť
|
|
Użyj modułu datetime, np... Date_of_birth = dt. datetime(year=, month=, day=)
|
|
|
W jaki sposób można uruchamiać kod Pythona o dowolnej porze na zdalnym serwerze? začať sa učiť
|
|
Można skorzystać ze strony pythonanywhere.com, gdzie można hostować swój kod wraz ze wszystkimi plikami.
|
|
|
Czym jest API (Application Programming Interface)? začať sa učiť
|
|
Jest to zbiór komend, funkcji, protokołów i obiektów które ożna używać do komunikacji z zewnętrznymi systemami.
|
|
|
začať sa učiť
|
|
Jest to lokalizacja z której możemy pobrać dane przez API, zwykle po prostu URL. Zwraca informację w JSON.
|
|
|
Moduł do wykonywania zapytań do API začať sa učiť
|
|
requests - nie jest domyślnie zainstalowany w Pythonie, jest to najpopularniejszy z modułów do obsługi API.
|
|
|
W jaki sposób wykonać zapytanie do API używając requests? začať sa učiť
|
|
response = requests. get(url=") - zwróci cały obiekt response, z kodem, treścią i innymi informacjami. Aby wyciągnąć z niego informację, należy skorzystać z response. json()
|
|
|
začať sa učiť
|
|
1xx - Hold On, 2xx - Here you go, 3xx - Go away, 4xx - you screwed up, 5xx - I screwed up np... 200 - status ok, 404 - not found, 403 - forbidden, 500 - server error
|
|
|
Jak zabezpieczyć się w wypadku gdy response zwróci error? začať sa učiť
|
|
response. raise_for_status() W przypadku błędu zgłosi HTTPError, dobrze dodać go zaraz po requeście
|
|
|
Jak przekazać parametry do zapytania HTTP? začať sa učiť
|
|
Stwórz słownik z wartościami opisanymi w dokumentacji, a potem przekaż go jako parametr params np... Request. get(url=", params=słownik); parametry zostaną dołączone w adresie endpointa po znaku zapytania, np... api.com/api/endpoint? key=value&key2=value2
|
|
|
Zapytanie GET z użyciem modułu requests začať sa učiť
|
|
response = requests. get(url=' ', params=parametry, headers=opcjonalne_headery)
|
|
|
Zapytanie POST z użyciem modułu requests začať sa učiť
|
|
response = requests. post(url=' ', json=dane_w_json, headers=headery) W tym przypadku interesuje nas głównie odpowiedź serwera, czy udało się wysłać dane.
|
|
|
Zapytanie PUT z użyciem modułu requests začať sa učiť
|
|
response = requests. put(url=' ', json=dane_w_json, headers=headery)
|
|
|
Zapytanie DELETE z użyciem modułu requests začať sa učiť
|
|
response = requests. delete(url=' ', headers=headery) Przekazujemy tylko zasób do usunięcia.
|
|
|
W jaki sposób najlepiej przesyłać credentiale w requestach API? začať sa učiť
|
|
Dobrze wykorzystać w tym celu headers, credentiale nie są wtedy widoczne w adresie url.
|
|
|
začať sa učiť
|
|
DNS (Domain Name System) to usługa odpowiedzialna za przypisywanie adresów IP nazwom internetowym (domenom) czytelnym dla człowieka.
|
|
|
W jakim celu twórcy API stosują autentykację kluczem API? začať sa učiť
|
|
Niektóre API zawierają cenne informacje które ciężko zdobyć, mogące być wykorzystane przez firmy w celach zarobkowych. Dzięki uwierzytelnieniu mogą naliczać opłaty i kontrolować dostęp.
|
|
|
začať sa učiť
|
|
Są to kody zastępujące znaki specjalne, np... Spację lub backspace
|
|
|
začať sa učiť
|
|
Moduł ten udostępnia narzędzia do manipulowania kodem HTML, zawiera przydatne w tym celu metody, np... Html. escape
|
|
|
Używanie modułu tkinter z mainloop() a pętli while začať sa učiť
|
|
Nie można używać pętli while z pętlą mainloop jednocześnie. Tkinter udostępnia w tym celu swoją metodę
|
|
|
W jaki sposób możemy w Pythonie wymusić typ zmiennej? začať sa učiť
|
|
Typ zmiennej możemy ustalić przy tworzeniu zmiennej, a następnie przypisać do niej wartość, np... age: int ->> age = 12 Przypisanie do tej zmiennej np... Stringa wyrzuci błąd
|
|
|
W jaki sposób możemy ustalić typ przyjmowanego parametru w deklaracji funkcji? začať sa učiť
|
|
Możemy go zapisać tak: def funkcja(argument: typ) Można również ustalić typ zwracanej z funkcji wartości.
|
|
|
začať sa učiť
|
|
Twilio udostępnia API, za pomocą którego można wysyłać SMSy lub innego typu wiadomości.
|
|
|
Czym są zmienne środowiskowe i dlaczego są używane? začať sa učiť
|
|
Są to nazwane wartości, przechowywane i zarządzane przez powłokę systemową. Każdy proces ma swój zestaw zmiennych środowiskowych. Dużo bezpieczniej przechowywać w nich np. klucze API lub credentiale.
|
|
|
začať sa učiť
|
|
Znajduje się tu szereg funkcji umożliwiających pozyskiwanie informacji na temat plików i folderów na dysku, a także tworzenie i usuwanie tychże plików. Za pomocą modułu os możemy działać również np... ze zmiennymi środowiskowymi.
|
|
|
Jak zapisać datę w dowolnym formacie? začať sa učiť
|
|
Użyj metody strftime z modułu date, jako argument podaj string ze wzorem (doczytaj w dokumentacji)
|
|
|
Do czego służy metoda timedelta z modułu datetime? začať sa učiť
|
|
Tworzy ona obiekt reprezentujący pewien okres. Można ją dodać lub odjąć od zmiennej reprezentującej datę, aby uzyskać przesunięcie; data1 = data2 +/- timedelta('argumenty')
|
|
|
Do czego służy moduł bs4 (beautiful soup)? začať sa učiť
|
|
Służy on do pozyskiwania danych z dokumentu HTML (webscrapingu). Za jego pomocą można pobrać całą stronę i zamienić na obiekt, na którym można wywoływać metody z modułu.
|
|
|
Jak zaimportować stronę do pracy z BeautifulSoup? začať sa učiť
|
|
Zaimportuj moduł bs4, pobierz stronę jako response metody requests. get(), następnie stwórz obiekt soup z klasy BeautifulSoup, jako argument podając response. Należy również dodać parser jako drugi argument, np... 'html. parser'
|
|
|
Jak wyświetlić odpowiednio sformatowany obiekt soup? začať sa učiť
|
|
|
|
|
Jak wybrać element z soup korzystając z selektorów CSS? začať sa učiť
|
|
Użyj metody soup. select_one('selektor') lub soup. select('selektor'). Pierwsza wybierze tylko jeden, pierwszy element. Druga utworzy tablicę ze wszystkimi znalezionymi elementami.
|
|
|
Pobieranie atrybutu wybranego elementu (bs4) začať sa učiť
|
|
Wcześniej pobierz element za pomocą select_one lub select
|
|
|
Jakie dane można raczej bezpiecznie pobierać przez webscraping? začať sa učiť
|
|
1. publicznie dostępne, 2. do niekomercyjnego użytku, 3. nie wymagające wcześniejszego logowania/autentykacji, 4. nie wymienione w /robots. txt Nie używaj webscrapingu do pozyskania danych dostępnych przez API, nie wysyłaj zbyt wielu requestów na raz
|
|
|
Moduł selenium (Selenium Webdriver) začať sa učiť
|
|
Jest to moduł do automatyzacji obsługi przeglądarki, przydatny przy webscrapingu (umożliwia zautomatyzowane korzystanie z przycisków, inputów etc) pip install selenium; from selenium import webdriver
|
|
|
Jak zainicjalizować moduł selenium? začať sa učiť
|
|
Zaimportuj moduł - from selenium import webdriver, ściągnij driver dla odpowiedniej przeglądarki i stwórz obiekt driver = webdriver. Chrome('scieżka_do_drivera') Zamiast do Chrome, można ściągnąć driver do dowolnej przeglądarki, jego wersja musi być identyczna z przeglądarką.
|
|
|
Selenium - jak otworzyć podaną stronę w przeglądarce? začať sa učiť
|
|
driver. get('URL') (należy najpierw zainicjować obiekt driver klasy webdriver)
|
|
|
Selenium - jak zamknąć wcześniej otwartą stronę? začať sa učiť
|
|
driver. close() - zamknie kartę, driver. quit() - zamknie całe okno
|
|
|
Selenium - jak złapać element na otwartej stronie? začať sa učiť
|
|
element = driver. find_element_by_css_selector('selektor') Również wersja 'selectors'. Użyj atrybutu. text aby otrzymać jego zawartość lub. get_attribute('atrybut') żeby otrzymać atrybut.
|
|
|
Selenium - jak złapać element po ścieżce xpath? začať sa učiť
|
|
element = driver. find_element_by_xpath('scieżka')) Przydatne, gdy szukany element jest nieunikalny.
|
|
|
Selenium - kliknij na wybranym elemencie začať sa učiť
|
|
|
|
|
Selenium - wybierz link po jego tekście začať sa učiť
|
|
element = driver. find_element_by_link_text('tekst_linku') Często używany przy pracy z linkami
|
|
|
Selenium - wpisywanie do pola tekstowego začať sa učiť
|
|
input = driver...; input. sent_keys('tekst_do_wstawienia')
|
|
|
Selenium - jak wpisać ENTER lub BACKSPACE w pole tekstowe? začať sa učiť
|
|
from selenium. webdriver. common. keys import Keys; search. send_keys(Keys. ENTER) Keys zawiera wiele stałych odpowiadających konkretnym klawiszom.
|
|
|
začať sa učiť
|
|
Flask to jeden z popularniejszych frameworków Pythona do webdevelopmentu, należy go najpierw zainstalować.
|
|
|
Minimalna aplikacja Pythona začať sa učiť
|
|
from flask import Flask -> app = Flask(__name__) -> @app. route('/') -> def hello_world(): -> return 'Hello world' -> if __name__ == '__main__': -> app. run()
|
|
|
Czym jest dekorator funkcji? začať sa učiť
|
|
@nazwa_dekoratora - dekorator dodaje dodatkową funkcj. do istniejącej funkcji: funkcja przyjmująca funkcję, nadpisująca działanie i wracająca wewn. Funkcję. Jest to syntactic sugar dla zwykłego wywołania w funkcji.
|
|
|
Dodawanie zmiennych do URL začať sa učiť
|
|
https://testowy. ts/<nazwa_zmiennej> - Python weźmie to co w URL i zapisze do zmiennej nazwa_zmiennej. Można dodać jeszcze typ, np. <int: nazwa_zmienej>.
|
|
|
Włączenie debuggera (zawierającego reloader serwera) w Flask začať sa učiť
|
|
|
|
|
Jak wyrenderować plik HTML i pliki statyczne w Flask? začať sa učiť
|
|
należy doimportować metodę render_template, a następnie użyć jej w return, podając plik html, np. return render_template('index. html') Żeby metoda zadziałała, należy pliki HTML umieścić w folderze templates, a pliki - w folderze static.
|
|
|
Jak wykonać tzw. hard reload Chrome? (czyszczący cache) začať sa učiť
|
|
|
|
|
začať sa učiť
|
|
Jest to templating language instalowany z Pythonem. Umożliwia używanie specjalnej składni do określania, które elementy pliku HTML mają być zastępowane. To co umieścimy w podwójnych nawiasach klamrowych zostanie odczytane jako kod Pythona: {{5*6 }}
|
|
|
Jak pisać jednoliniowe wyrażenia w HTML używając Jinja? začať sa učiť
|
|
Użyj podwójnych nawiasów klamrowych, np... {{5*6 }} - obliczy działanie i zwróci wynik
|
|
|
Jak korzystać w template z wyrażeń które wymagają importu dodatkowych modułów? začať sa učiť
|
|
Należy je najpierw zaimportować w server. py, a następnie przekazać potrzebny wynik do template, nazywając go, np... Return_template('index. html', num=random_number)
|
|
|
začať sa učiť
|
|
Jest to usługa umożliwiająca przechowywanie plików JSON i odwoływanie się do nich przez udostępnione API. Przydatne przy testowaniu np... Wpisów na blogu.
|
|
|
Jak pisać wieloliniowe wyrażenia w HTML używając Jinja? začať sa učiť
|
|
Należy je zawrzeć w {% %}, np... {% for blog_post in posts: %} -> działania jednoliniowe -> {% endfor %} Endfor to słowo kluczowe pokazujące gdzie zakończyć pętlę. If else również posiada takie słowo -endif
|
|
|
Obsługa formularza w Flask začať sa učiť
|
|
@app. route('/login', methods=["POST"]) -> def receive_data(): -> if request. method == 'POST': -> username = request. form['username']... Należy stworzyć formularz w HTML, nazwać inputy, a następnie wykonać powyższe. Można dodać więcej metod ('POST', 'GET')
|
|
|