Transcript for:
Python na maturze – praktyczny przewodnik

pon czyli najpopularniejszy język do pisania na maturze według tego co napisaliście chociaż w niektórych szkołach nadal o tym nie wiedzą bo to troszkę nowość nie jest to dzieło sprzed 20 lat na tutaj takie język dla młodych programistycznych świrów którzy no chcą nieco poddymia a nie bawić się w jakieś śmieszki chz z pamięcią i z jakimiś tam tablicami miejscami Pointer ami innymi takimi tylko po prostu prosto lecisz krok po kroku co chcesz piszesz do komputera jak do człowieka po angielsku trzeba się tam zabawiać jakieś dziwne rzeczy naprawdę wszystko fajnie konkretnie No i tutaj wielu prosiło pod ostatnim filmem z c+ Plusa o programowaniu właśnie na maturze żeby zrobić jedno zadanko w pycharmie znaczy w pythonie No i teraz właśnie tutaj zrobimy jedno spoko zadanko na warsztat weźmiemy nie zeszłoroczne bo zeszłoroczne było w tamtym filmie tylko weźmiemy 2020 Czyli w sumie maturę którą ja pisałem ale pisałem Ją akurat w c+ Plusie więc tutaj taki lekki Twist mamy jakiś plik pary znajduje się tam 100 wierszy każdy wiersz zawiera parę danych składając z liczby całkowitej od trójki do setki No czyli to są dosyć małe liczby więc na pewno spoko byśmy byli w c+ Plusie może byśmy musieli się zastanawiać czy może trzeba dać inta Long longa coś no w ponie nie ma takich problemów po prostu piszemy że coś jest po prostu zmienną i on pon sam rozk że to jest liczba słowa ciągów znaków bla bla bla alfabet tego od 1 do 5 liczba i słowo są oddzielone znakiem spacji Napisz program dobra pierwsze zadanie mocna hipoteza goldbacha O czyli coś ciekawego coś Czy można często przy trolować świrów przed maturą z matematyki bo wygląda to w miarę legitnie ale udowodnienie tego no nie jest proste mówi o tym że każda parzysta liczba całkowita większa od 4 jest sumą dwóch nieparzystych liczb pierwszych na przykład liczba 20 jest rów 3 + 17 lub 7 + 13 Każdą liczbę pierwszą z pliku pary TXT Przedstaw w postaci sumy dwóch liczb pierwszych wypisz te liczby oraz składniki Okej okej czyli co mamy 24 i musimy rozpisać ją właśnie na liczby pierwsze tezy goldbacha czyli cli 5 19 dobra czyli co musimy do tego zrobić po pierwsze co musimy zrobić pobrać i wstawić tutaj do naszego programu nasze dane tekstowe więc pobieramy standardowo gdzieś tutaj to mamy Trzeba to otworzyć i będzie trzeba wszystko wrzucić tak samo do tego samego folderu w którym jest nasz projekt więc po prostu przesuwamy wrzucamy mamy tutaj wszystkie w tym samym folderze No i teraz widzimy że tutaj też nam się gdzieś wyświetla w pie charmie Czy w jakimkolwiek środowisku jesteśmy No i to na pewno daje nam ten komfort że nie będziemy musieli ustawiać jakichś dziwnych puffów nic się z tym nie pierdolić w tańcu więc elegancko to będzie No i teraz jeszcze standardowo Zobaczmy co to jest mamy tutaj zadanie w pary TXT więc Sprawdźmy co ciekawego jest w pary TXT żeby wiedzieć jak wygląda ten plik widzimy że mamy najpierw jakąś liczbę a potem jakiś string i to co nas tutaj interesuje przede wszystkim No to są te liczby nie potrzebujemy stringów Do tego pierwszego zadania więc będziemy po prostu musieli wziąć tych linijek tutaj jest Jest tam parę jest ich dokładnie 100 No ale w pythonie po prostu użyjemy elegancko otwieracza pliku i nie będzie tam trzeba ani forować ani ować po prostu jest to wszystko zrobione za nas że jesteśmy w środowisku wiemy co chcemy zrobić to po prostu na początku musimy zacząć od otwarcia naszego pliku i jakość wzięcia tych danych tak jak tutaj widzieliśmy to wygląda tak mam najpierw jakąś liczbę i potem mamy jakiś string więc Co teraz robimy Musimy po prostu najpierw otworzyć nas plik jakoś tutaj użyjemy po prostu zwykłej konstrukcji Open czyli wpisujemy że jakąś pod zmienną File Będziemy trzymać nasz plik i tutaj otworzymy właśnie t pary TXT oczywiście wszystko trzeba tutaj dać w cudzysłowie albo apostrofach to nie ma znaczenia w pythonie i jeszcze możemy seie dodać że tryb tylko do odczytu czyli tutaj rka z angielskiego read po to żeby No nie nadpisać sobie tego tego pliku nic tam zego nie zrobić więc po prostu będziemy mogli tylko czytać No i teraz po prostu musimy wrzucić wszystkie wszystkie te rzeczy które tam mamy do jakieś tutaj naszej tablicy czy co chcemy z tym zrobić więc jak to zrobić po pierwsze musimy przelecieć przez cały plik czyli zróbmy for l File czyli przejeżdżamy przez cały plik I wszystko będziemy przeczytać To będzie nasza linia i to co mamy w jednej linijce tekstu No i teraz co musimy zrobić musimy musimy jakoś zczytać całą linię czyli po pierwsze zróbmy Sob najpierw jakąś tablicę będziemy przetrzymywać wszystkie nasze dane w których mamy które potrzebujemy do zadania czyli na przykład Nazwijmy sobie data i zróbmy że to będzie lista No i tak jak widzimy będziemy mieli listę i jako chcielibyśmy że jako każdy element będzie jedna linijka i jeszcze każdy element tej tablicy będzie kolejną pod tablicą w którym będzie pierwszy element czyli liczba i druga czyli ten string No czyli na początku musimy to wszystko będziemy to wrzucać do tej tablicy czyli będziemy dodawać do końca czyli robimy data k append bo będziemy do końca dorzucać No i teraz co potrzebujemy bierzemy linię czyli naszą linię pliku Line teraz co musimy na tej linii zrobić Po pierwsze jak on to nam sczytuje No to sczytuje nam jeszcze białe znaki czyli tutaj znak końca linii czyli tak zwany enter cli Po pierwsze musimy to usunąć do tego używamy funkcji Strip KR Strip No i teraz jeszcze Chcemy rozdzielić tak żeby w jednym elemencie tablicy data była tablica dwuelementowa i najpierw Pierwsza była właśnie liczba a drugi był ten string więc teraz tutaj użyjemy do tego funkcji Split z angielskiego Rozdziel po czym będziemy rozdzielacz no po spacji więc Tutaj wpisujemy że on ma nam rozdzielić po spacji No i teraz zobaczmy czy to działa wypruje sobie datę klikamy Run No i widzimy że elegancko jest jakaś tablica pierwszy element d elementowy Zgadza się Zgadza się Zgadza się Zgadza się więc wszystko jak najbardziej fajnie więc spoko mamy już to zaimportowany ten plik mamy tutaj wrzucone dat wszystkie co potrzebujemy dane więc możemy teraz coś z nimi robić Zobaczmy jeszcze raz polecenie zadania musimy tak Każdą liczbę parzystą z pliku pary wstawić w postaci sumy dwóch liczb pierwszych czyli po pierwsze przydałaby się nam jakaś funkcja która mówiły czy liczba jest pierwsza jak to robimy No zdefiniujemy sobie najpierw taką funkcję Nazwijmy ją is Prime będziemy sprawdzać czy jest pierwsza is Prime z angielskiego jest jest pierwsza no i tutaj od czego ona będzie zależeć no od jakieś liczby Powiedzmy że ta liczba będzie pod zmienną n i teraz jak sprawdzamy czy liczba jest pierwsza liczba pierwsza to taka liczba która dzieli się przez siebie samą i jeszcze przez jedynkę Czyli jeżeli będzie jakaś inna liczba ją dzieli no to wtedy jest przypał No i teraz jak to zrobimy po pierwsze musimy przejechać się po wszystkie liczby i sprawdzić jaki jest modulo z nich czyli zaczynamy for number in Range teraz jaki od Po jakich liczbach Będziemy przejeżdżać Po pierwsze od dwójki do naszej liczby ale można to usprawnić polecimy do pierwiastka z naszej liczby i tutaj byśmy musieli wpisać Security n czyli pierwiastek kwadratowe No oczywiście Security nie ma czegoś takiego wbudowanego w pythonie więc trzeba jeszcze tutaj zowa moduł moduł matematyczny czyli import ma a raczej nawet możemy zrobić taką sztuczkę że from ma import Security I w tym wypadku on nam już to z importuje i nie będziemy musieli dawać teraz so przedrostka ma i zaimportować kryty czyli pierwiastek kwadratowy No i teraz będziemy lecieć od właśnie od dwójki do pierwiastka kwadratowego No bo czemu do pierwiastka kwadratowego No bo jeżeli na przykład mamy liczbę 36 No to jeżeli Wypisz jej dzielniki dzielniki 36 No to będzie co 1 2 3 4 6 i widzimy że teraz szóstka jak podzielimy 36 na 6 to będzie 6 x 6 jak podzielimy teraz na czwórkę to będziemy mieli 4 x 9 tu byśmy mieli 9 na 13 12 na 2 18 i na 1 36 więc widzimy że do tego jest odpowiedni ten dzielnik znajdziemy już ten dzielnik No to zawsze znajdziemy też ten drugi więc jeżeli dojdziemy do pierwiastka kwadratowego No to wszystkie znajdziemy bo każdy musi mieć jakiś odpowiadający inny dzielnik No okej Jeżeli mamy już to no teraz musimy sprawdzić czy dzieli Czyli teraz Jeżeli jeżeli nasz nasza Liczba n podzielimy ją przez właśnie nasz number przez który właśnie przelatują no to wtedy powinniśmy zwrócić false No bo się dzieli i nie jest no i ewentualnie w przeciwnym wypadku jeżeli przelecimy przez wszystkie liczby nie dojdziemy do tego że jakaś liczba zrzuciła false i wyszła z tej funkcji No to po prostu musim zwrócić i oczywiście są jeszcze przypadki takie jak dwójka No wiadomo dwójka jest liczbą pierwszą czyli na początku wypadałoby napisać tak że damy jeszcze jakiś warunek czyli If n równe 2 i n mnie od 2 No bo jedynka nie jest liczbą pierwszą zer tak samo liczby ujemne tego nie sprawdzamy w sumie możemy nawet napisać jeżeli to nam nie przejdzie No to możemy żebyśmy nie musieli tego parę razy sprawdzać okej kmy jeszcze cont control alt l żeby ładnie to wyglądało było sformatowane No i teraz sprawdźmy stestuj czy nasza funkcja jest poprawna Sprawdźmy na przykad Prime od poy DW potem od piątki potem od jakieś tam 36 Run No i mamy Pierwszy problem Object as integer no czyli tutaj faktycznie jeżeli mamy pierwiastek No to on nam zrobi pierwiastek z pi pierwiastek z pi nie jest liczbą całkowitą więc może mieć tutaj problem więc po prostu zrzutu jmy sobie to na inta i nie powinno być teraz problemu okej dwójka jest liczbą pierwszą piątka jest liczbą pierwszą 36 nie jest liczbą pierwszą True false i wygląda na to że w miarę sensownie wygląda nasza funkcja sprawdzająca czy liczba jest teraz przychodzi też pyon mogliśmy zrobić to zupełnie inaczej moglibyśmy skorzystać z budowanej funkcji trze zaimportować i oczywiście teraz jest problem bo nie mamy tej biblioteki musielibyśmy ją zainstalować WC tutaj odpal [Aplauz] terminala z czy zadziała Print is Prime od 36 No nie jest pierwsza więc okej i z piątki jest pierwsza więc tutaj moglibyśmy to po prostu zaimportować no tylko mus musimy mieć to zainstalowane musimy to sobie zainstalować wcześniej wszystkie biblioteki nie wiem na ile to jest możliwe na maturze ale chyba jeżeli jest to setup nowanie komputera można wtedy sobie przyjść przed i poinstalacyjne zdefiniować sami dobra ale jak już to mamy Zobaczmy w ogóle co musimy zrobić C musimy znaleźć Każdą liczbę parzystą w naszym pliku prawić w postaci sumy dwóch liczb pierwszych wypisz te liczbę oraz dwa składniki sumy w kolejności niemalejącej Teraz po prostu musimy sobie przejechać właśnie przez to co mieliśmy w naszej zmiennej data czyli for powiedzmy nie wiem number in data czyli Będziemy przejeżdżać przez każdy element tablicy naszej w dacie teraz interesuje nas tylko ten numerek na początku musimy sprawdzić czy jest parzysty czyli If jeżeli jest parzysty nasz numer czyli If number i oczywiście trzeba pamiętać że to jest tablica dwuelementowa w pierwszej jest nasz numerek a w drugim elemencie jest jest nasz string Więc potrzebujemy element zerowy czyli If number od zera jest parzysty czyli modulo 2 będzie równe 0 w takim wypadku musimy odpalić proces sprawdzania i szukania dwóch liczb pierwszych czyli powinniśmy zacząć teraz znowu p for powiedzmy for n in Range i znowu lecimy od czego możemy zacząć od dwójki No bo od jedynki nie ma co Bo jedynka nie jest pierwsza od dwójki to i tutaj też pytanie możemy po prostu bezpiecznie pójść do number od zero Ale równie dobrze moglibyśmy prawdopodobnie też pójść do number przez d no bo wiadomo że gdzieś tam jeżeli znajdziemy na przykład jedną liczbę No to ona musi się zmapować z tą po drugiej stronie ale d tej bezpieczeństwa nie musimy się bać jakąś optymalizację o to będzie za dużo operacji czy nie mamy liczby do 100 więc to nawet nie poczujemy różnicy więc możemy dać bezpiecznie od D do do zer i teraz co musimy zrobić Prime po prostu sprawdzamy czy nasza Liczba n jest pierwsza teraz w momencie gdy jeżeli ona jest pierwsza No to w tym momencie powinniśmy sprawdzić czy Pierwsza jest liczba number od zera właśnie min n czyli ta właśnie odpowiadająca temu liczba jeżeli obie są pierwsze No to powinniśmy wypisać Wypisać na ekran naszą odpowiedź czyli po pierwsze number od zera który jest i potem jeszcze te liczby które odpowiadają czyli n i number od zera minus n no i teraz Oczywiście po tym jak już to zrobimy powinniśmy się zbrezne co my robimy Oczywiście że nie bo sprawdzamy za każdym razem czy liczba jest pierwsza moglibyśmy sobie ustawić jakieś takie hito erasta czy cokolwiek jakąś tablicę która by nam pokazywała wszystkie liczby pierwsze bo mamy dany zakres a tak to musimy po kolei sprawdzać No ale nie musimy się tutaj o to martwić więc teraz znowu Control alt ctrl Alt l żeby ładnie to wyglądało klikamy enter i patrzymy czy wszystko działa No oczywiście jest problem bo nam pisze not All arguments converted during string formatting bo wiadomo wpisując tutaj importując co tutaj mieliśmy wszystko to co mieliśmy to było podane jako string więc teraz on tutaj nam bierze tą liczbę number od zera jako string No a to jest coś czego nie chcemy więc teraz co możemy zrobić albo tutaj za każdym razem rzutować sobie na inta albo tutaj jeszcze wcześniej ustawić żeby to był in czyli zróbmy Przejdźmy sobie jeszcze raz po właśnie dacie czyli for x in data po prostu teraz musimy każdy element który mieliśmy pod zerem ustawić na ten sam element tylko że rzutowany na inta czyli na liczbę całkowitą robimy taky Run i widzimy wszystko działa wpisuje nam to jakieś liczby wygląda to w miarę sensownie tylko teraz Oczywiście Sprawdźmy na przykład TXT czy to faktycznie działa tak jak powinno w przykładzie TXT więc odpalamy Run i porównajmy na przykład TXT prawid odpowiedzi jest 245 19 6 33 6 33 to my tutaj mamy 2 4 2 4 hm pytanie co jest nie tak Zobaczmy A bo każda liczba większa od cztery jest sumą dwóch nieparzystych liczb pierwszych czyli te liczby muszą być nieparzyste A my tutaj Zaczęliśmy od dwójki cli to był dosyć spory błąd musimy zacząć od trójki teraz Jeżeli to odpalimy Run wimy że jest 6 C3 wszystko jest okej no i tutaj jeszcze możemy dodać tego jednego IFA że jeżeli ta liczba parzysta jest większa od cztery chociaż to prawdopodobnie nam Nie podadzą tego ale możemy tutaj dodać że If number od zera większy od 4 No i tut dopisujemy sobie enda będzie klasa dla przykładu TXT działa sensownie Zobaczmy jeszcze dla Zobaczmy jeszcze dla pary TXT Run 58 5 3 43 31 633 28 325 No wygląda to w miarę sensownie bo zawsze to są jakieś małe liczby piątki i tak dalej nie ma nic dziwnego więc Okej to jest w porz klikamy Notepad i wpisujemy odpowiedzi teraz tak dla każdego pliku słowa z pliku pary TXT Znajdź długość najdłuższego spójnego fragmentu tego słowa złożonego z identycznych liter Wypisz znalezione fragmenty słów ich długości oddzielone spacją po jednej parze w każdym wierszu Istnieją dwa fragmenty takiej długości Podaj Pierwszy z nich Wyniki podaj Wolności bla bla bla i dla słowa zxy z jest wynikiem Z4 bo z występuje tutaj cztery razy okej I musimy znaleźć najdłuższy podciąg naszego stringu stringa No i znowu będziemy musieli przeć przez każdy string który tutaj jest właśnie nam podany możemy zrobić w tej pętli No bo on i tak to już przelatuje tu zrobi to dla numerków co jest potrzebne a tutaj po każdym numerku zrobi to samo dla tego stringa co musimy zrobić musimy znaleźć najdłuższy pod i możemy przez każdy każdy string sobie elegancko przejechać No bo string jest tablicą literek Before letter in właśnie nasz number od jedynki Czyli pierwszy element w którym schowaliśmy tego stringa no teraz zobaczymy że będzie ciężko nam się odwołać do następnego elementu więc tu jest lekki przypał więc może po prostu lepiej i najprościej będzie po prostu przejechać przez na przykład jakiś i będzie w Range number długości właśnie naszego stringa i będziemy po prostu Mieli iterator i będziemy mogli teraz elegancko przechodzić No i oczywiście żeby nie wyjść poza indeks mamy tutaj minus ję będziemy porównywać dany element z następnym elementem teraz na początku ustawmy sobie Max jakiś Max letter ustawmy to na zero i teraz będziemy sprawdzać w sumie wystarczy na jen bo zawsze będzie o długości je zostawmy jeszcze Max letter length i po prostu Max letter jako pusty string bo to będziemy mieli tą najdłuższą literkę No i teraz co musimy zrobić po pierwsze jeżeli nasza literka czyli If tu mamy dosyć problematyczne że mamy number od 1 tak niefajnie to pokazane czyli ustawmy że nasze na przykład letter to będzie na przykład Word to będzie letter nasz Word to będzie number od 1 żebyśmy nie musieli tutaj tak brzydko tego wypisywać i nie zgubić się w kodzie czyli If nasza pierwsza literka jest równa literce następnej w takim wypadku Potrzebujemy jeszcze jakiegoś temporary licznika którego Powiedzmy że ustawmy na początku temp Counter na jedynkę i w tym wypadku teraz ustawmy że jeżeli mamy takie samą literkę na jednej pozycji i na drugiej No to ten temp Counter damy plus równe 1 No i w momencie gdy temp Counter będzie większy od naszego Max letter length to wtedy Max letter length powinno być równe temp Counter A nasze Max letter powinno być równe tej literce czyli Word of i no i oczywiście jeżeli nie jest równa ta literka Jeżeli nie są sobie równe no to w takim wypadku El Musimy ustawić temp Counter jedynkę powrotem żeby mieć to podane i teraz po przejściu przez każdą literkę zobaczmy czy on nam to dobrze wypisuje czyli sprintować Max letter l No i obok tego Max letter tutaj Sob jeszcze wykuj to żeby nam nie wypisywał tego wyżej No i widzimy że jest tu w miarę sensownie oczywiście Zobaczmy to na przykład TXT czy na przykład TXT nam to działa Run tutaj dużo tego jest dla przykład TXT Przykład d przykład odpowiedzi pod w odpowiedzi przykład cli trzeba znaleźć odpowiedzi przykład I co nam nam wypisuje tu jest AA pić razy Potem t zamow cter razy Czyli wygląda to w miarę sensownie do tego co my tu mamy cki ttt jest okej Oczywiście tutaj trzeba by jeszcze ustawić w międzyczasie przed tym wypisywaniem żeby nam elegancko inaczej wypisywał maxl czyli zamiast Max letter wypisywał nam Max letter tyle razy Czyli zróbmy że max letter Max letter rów 4 X MAX letter wcześniejszy No i teraz jak to z ranj widzimy że już nam wuje Elegancko tak jak powinien Oj oczywiście nie cztery razy cter razy działa tylko dla te tutaj lekka pomyłka dla Max letter lęk przemnóż myy to teraz widzimy że jest czwórka tutaj jest szóstka tu jest dwójka piątka i elegancko pant zgadza się z tym co jest tutaj napisane teraz jeszcze zobaczymy jeszcze raz Jak działa dla naszych pary TXT Run No i widzimy że tu jest je je to znaczy że nie znalazł żadnej wartości d tych pytanie czy jeżeli jest o długości je to trzeba wypisywać czy nie C Istnieją dwa fragmenty o takiej samej długości Podaj Pierwszy z nich to mamy załatwione No bo pierwszy będzie zrobiony Wypisz znalezione sów i długości oddzielone spacją po jednej parze w każdym wierszu na długość najdłuższego spójnego tego fragmentu sanego z identycznych liter No i tu jest pytanie czy to trzeba zrobić czy nie Z tego co wiem co się orientowałem należało to zrobić Ja tu dałem yfa że jeżeli jest równe 1 i nic nie znalazło Co jest większe No to nie wypisuje ale z tego co wiem odjęli mi za to punkty więc chyba trzeba było jednak to wypisać więc soie byśmy musieli dodać jeżeli Max letter jest jedynką i tutaj If wcześniej Max letter l równe 1 czyli znaczy że nic nam nie znalazł w środku no to Max letter powinno być równe Word od z0 czyli pierwszego elementu Run i teraz widzimy że to i to działa No i spoko trzeba teraz se wziąć to zaznaczyć tu jest całkiem sporo tego zaznaczamy i wrzucamy do naszych odpowiedzi 42 skopiowane mamy to klasa No i ostatnie zadanie para liczba Liczba słowo jest od licba słowo Gdy liczba pierwsza jest mniejsza od liczby drugiej albo liczba pierwsza jest równa liczby drugiej oraz słowo jest leksyk graficznie mniejsze od słowa para 1bb jest mniejsza od pary natomiast para 3aa jest mniejsza od pary 3ab to znaczy jest leksykograficznie mniejsza ale tutaj na szczęście można porównać po prostu stringa jednego drugiego sprawdzić że jest mniejszy i on nam to zrobi w porządku leksykograficznym i będzie w porządku Rozważ wszystkie par zapisane d których liczba równa długości rozac Wszystkie pary zapisane dla których liczba Liczba jest równa długości słowa wśród nich wybierz taką parę która zmniejsza wszystkich pozostałych Aha czyli na początku musimy zrobić że na pewno długość słowa będzie równa tej liczbie którą mamy i powiedzmy że dodamy do nowej tablicy Zróbmy sobie jakąś powiedzmy nową tablicę tablica za TR możemy naet nazwać obojętnie whatever nie ma to znaczenia z 3 No i teraz w momencie jak już tutaj mamy ten przejazd przez każdą tu przejeżdżamy przez każdy element naszej wcześniejszej tablicy tutaj dam prostu jednego IFA czyli l Właśnie naszego Word mieliśmy to w Wordzie jest równe naszej właśnie długości number od zera to co mieliśmy ten numerek no to w takim razie W takim wypadku mieliśmy to w number po prostu zapu jemy sobie do zadania trzeciego naszej tablicy tam sobie wrzucimy number zwykły mamy to spruj zad 3 Zobaczmy co nam tu wypisuje jest parę takich rzeczy tu widać że jest trzy tu 9 też 3 3 9 wygląda to w miarę sensownie No i teraz pytanie co dalej musimy z tym zrobić Zobaczmy Rozważ Wszystkie pary pane dla których liczba jest równość równa długości słowa dobra to mamy i wypisz spośród nich taką parę która jest mniejsza od wszystkich pozostałych Dobra czyli w takim razie możemy po prostu przelecieć przez wszystko po kolei może nie jest to najbardziej optymalne rozwiązanie ale na pewno będzie poprawne czyli For In Z3 czyli prujemy przez każdą parę musimy teraz ją porównać z każdą inną parą czyli for pair nz3 pair nz3 No bo będziemy każdy z każdym porównywać pytanie Czy te same będą ale jeżeli będą te same to będą równe więc na pewno nie będą mniejsze czyli teraz będzie to raczej spoko No i zobaczmy kiedy jest mniejsza c Po pierwsze jest mniejsza od wszystkich czyli liczba par musi być czy par od zer No czyli właśnie nasza liczba musi być mniejsza od par dwójeczki a potem dobra i to jest jedno czyli w takim wypadku mniejsze od par 2 jest OK A my potrzebujemy dla wszystkich czyli tutaj możemy sobie zrobić zmienną taką pomocniczą flagę ustawimy to na początku na True I teraz jeżeli jest mniejsza to jest OK czy jeżeli byłaby większa to faktycznie wtedy nie było prawdziwe węc sobie teraz Usuniemy to na false w przeciwnym wypadku jeżeli te dwie wartości byłyby sobie równe byłyby sobie równe i w takim wypadku O tutaj par 2 też musimy wziąć numer zerowy czyli właśnie element tablicy którym jest liczba i w takim wypadku jeszcze słowo 1 jest mniejsze od słowa 2 czyli par od jedynki jest mniejsze od par 2 No wtedy 1 zer bo faktycznie zawsze od zera numerujemy to w takim wypadku byłoby OKE okej no ale jeżeli byłoby większe no to wtedy jest nie okej i ustawimy smaller false No i teraz przejechaliśmy przez każdą parę i teraz tutaj Jeżeli jest smaller nadal jest okej No to powinno nam wprować par naszą parę No i teraz zobaczmy czy to działa d pary TXT mamy 3 ASD zobaczmy czy D przykład TXT nam się to mapuje i jest odpowiednie wychodzi 6 ABC czyli to samo co mieliśmy tu podane Czyli możemy stwierdzić że no jeżeli to zrobiliśmy ma w miarę sens Wygląda okej No to jeżeli teraz odpalimy to dla głównego też powinno być okej zwłaszcza że wyszła nam tylko jedna taka para to jest dobre no bo tutaj napisali że jest tylko jedna taka para więc teraz bierzemy tutaj kopiujemy Oj to nie ten plik pary też to nie ten plik i to jest ten tutaj 43 kopiujemy wrzucamy Oczywiście możemy tutaj ładnie napisać tak jakby chcieli bez tych Python nowych klamerek klasa mamy zrobione Zapisujemy i zadanie z programowania zrobione no i tak to tutaj wygląda w pythonie Oczywiście pewnie wiele z tych rzeczy dałoby się zrobić nawet o wiele szybciej jeżeli znali byśmy jakieś inne wbudowane funkcje tak samo jak z tym is Prime mogliśmy od razu zbudować korzystać z wbudowanej funkcji No ale trzeba by mieć przygotowaną tą bibliotekę TR mieć ją zainstalowaną wcześniej No bo jeżeli nie macie internetu to w trakcie egzaminu sobie nie zainstaluje cie biblioteki ale warto sobie Postal tam te wszystkie nump jakieś te właśnie Collection syp wszystkie naprawdę biblioteki które ułatwiają algorytmy i tak dalej na pewno jest ich sporo wystarczy sobie dobrze poszukać i wtedy prawdopodobnie możecie tego użyć bez problemu No ale tutaj faktycznie trzeba się przygotować wiedzieć co można instalować co nie I czemu jak i gdzie no i potem wiadomo można to optymalizować robić to o wiele szybciej wszystko no Ale tu nie chodzi o to żeby było optymalnie chodzi o to żeby było prosto przejrzyście nie pogubić się w rozwiązaniu i dostać odpowiednią odpowiedź a i tak działam tutaj na takich małych liczbach że ten kod nie musi być najszybszy nie musi byzie najpiękniejszy Ważne żebyśmy my wiedzieli co się dzieje i się z tym nie zgubili i doszli do poprawnej odpowiedzi Więc to tyle w tym odcinku powodzenie na maturze trzymajcie się cześć pa