#python

36
134

Bardzo dobry kanał, polecam.

Zaloguj się aby komentować

Z takimi sztukami warto uważać bardzo, np. sztuczka przypisania globala do locala fajna, ale promuje złe praktyki.

Zaloguj się aby komentować

o moze na jave mają

@koszotorobur To CodeCamp? Dlaczego oni to wstawili a nie Harward? (Tak jak MIT wstawia na swój kanał?)

Zaloguj się aby komentować

Jak nauczyć nastolatka Pythona?

Nie szukam teoretycznych informacji bo to sam jestem w stanie sobie znaleźć.

Szukam praktycznych rad i opinii osob które mają doświadczenie w uczeniu programowania młodych osób - nawet jeśli odnieśli porażkę to mogą być w stanie poradzić czego nie robić/unikać.

Hejto pomóż!

#programowanie #python
25

@koszotorobur to zależy czego chcesz nauczyć.


Przygotowanie do olimpiady informatycznej to jest jakaś opcja i UW ma dużo materiałów na ten temat oraz są dostępne zadanka https://szkopul.edu.pl/p/default/problemset/oi/19


Ja w tym wieku jak się uczyłem sam to chyba najprostsza była logomocja (z żółwiem) bo było widać gdzie się znajduje żółw po odpaleniu programu i co skopałem. Też są jakieś zawody, ale tu byś musiał poszukać.


No chyba że dzban, to mu pokaż Django i niech klepie CRUDy aż mu się znudzi xD

Weż mu apke zainstaluj np Python x albo Mimo

Z resztą sam sobie zainstaluje.

Niech zacznie od prostych rzeczy żeby się nie znirchecił na starcie

Zaloguj się aby komentować

Cython sprawia, że pisanie rozszerzeń C dla Pythona jest tak proste, jak sam Python!

Język Cython jest nadzbiorem języka Python, który dodatkowo obsługuje wywoływanie funkcji C i deklarowanie typów C na zmiennych i atrybutach klas. Dzięki temu kompilator może wygenerować bardzo wydajny kod C z kodu Cythona. Wygenerowany kod C jest następnie kompilowany przy pomocy jednego z dostępnych kompilatorów C/C++ do zoptymalizowanego modułu, który może zostać zaimportowany i użyty przez program napisany w Pythonie.

W skrócie Cython to Python ale z typami danych C - co pozwala mu być jednym z najlepszych i najprostszych narzędzi do przyspieszania programów napisanych w Pythonie!

Przykładowo w Cythonie napisane są moduły Pythona znane ze swojej szybkości jak:


Oficjalny poradnik jak zacząć z Cythonem można zaleźć pod adresem: https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html

#technologia #programowanie #python #cython
dc103c9b-f99d-48d3-b674-ba7bc1d19ec4
3

@koszotorobur @rust-n-dust dzięki! dobry kontent

Zaloguj się aby komentować

@jerekp coś mi ten post przypomina #kryptowaluty

Zaloguj się aby komentować

#anonimowehejtowyznania

#it #programowanie #programista15k #python #cpp

Zastanawiam się nad przejściem z C++ na Pythona - jest dużo więcej zdalnych ofert, stawki też całkiem niezłe. Czy ktoś z was ma coś podobnego za sobą i może podpowiedzieć jak to wygląda? Co robić w przypadku braku typowo komercyjnego doświadczenia z pythonem? Po prostu wysyłać CV i liczyć, że ktoś mnie zaprosi na rozmowę czy robić jakieś certyfikaty? Mam ~5 lat doświadczenia w it. Początkowo jako support, większość jako software developer - C++, trochę Javy, python na wewnętrzne potrzeby firmy. Do tego sporo pobocznych skilli na umiarkowanym poziomie - m.in.: js, HTML, CSS.

Piszę z anonimowych, bo nie chcę udostępniać sczegółów ze swojego konta.



Kliknij tutaj, aby odpowiedzieć w tym wątku anonimowo
Kliknij tutaj, aby wysłać OPowi anonimową wiadomość prywatną
ID: #655dedb8cf4ac0227e44bf8a
Post dodany za pomocą AnonimoweHejtoWyznania: https://anonimowehejto.pl - Zaakceptowane przez: HannibalLecter
4

W czasach eksplozji LLM'ów to bym się raczej zastanowił nad przejściem z C++ na przykład na budowlankę albo rolnictwo

Nie znam Cię, więc nie wiem jak to się ma do Ciebie ale podzielę się swoim doświadczeniem z tych okolic. Pracuję w projekcie gdzie mamy część pythonową (zarządzanie) i cpp (faktyczne mielenie ruchu i danych). Jest duża różnica w myśleniu, postrzeganiu problemów i tworzeniu rozwiązań.

Zarówno ja rozumiem kod cpp, jestem w stanie go poprawić albo zmienić, tak samo inni są w stanie zrozumieć mój kod albo go zmienić. Ale każdy jednak w nie swojej bajce "zrobiłby to inaczej". I wydaje mi się że tutaj jest największy problem takiego przejścia: że nie tylko musisz się nauczyć innych narzędzi ale przede wszystkim zacząć inaczej myśleć

OP: @HannibalLecter co do samego języka się zgodzę, ale co z całą resztą? Konkretna dziedzina, frameworki itd. W tej chwili programuję bliżej niż dalej sprzętu, a python to głównie inne tematy - backendy webowe, analiza danych, bazy danych, cloudy itd. Z tym nie mam dużego doświadczenia (ale też nie zerowe).




Ten komentarz został dodany przez osobę dodającą wpis (OP)


Zaakceptował: HannibalLecter

Zaloguj się aby komentować

@stg Nigger encode sendall xD

@stg A możesz powiedzieć skąd ten soft, jak go wykryłeś i do jakiego urządzenia miał by być przeznaczony ?

Mam postawiony m.in. Node-Red do zarządzania. Przez moją nieuwagę został wystawiony do internetu na około 2 dni. Dzisiaj zobaczyłem node, którego nie tworzyłem, a który odpalał skrypt o którym mowa

Zaloguj się aby komentować

Olx Scraper.
Czasami przeglądam #olx w poszukiwaniu rzeczy do naprawy lub teraz auta bo moje zostało skasowane. Każdorazowe wyszukanie produktów i ustawienie odpowiednich filtrów zajmuje sporo czasu, dlatego kiedyś napisałem sobie skrypcik w #python który to automatyzował. Teraz postanowiłem opakować to w #ui . Napisałem apke scrapującą olx, która będzie działać na platformach


Funkcjonalność

  1. Dodawanie( i usuwanie) przedmiotów do obserwowania poprzez wklejenie linka do nich. Wystarczy wejść na strone olx. Wyszukać co nas interesuje, ustawić sobie filtry jakie chcemy, skopiować link i wkleić je do apki.
  2. Zapamiętywanie dodanych wyszukiwań w bazie danych aby nie trzeba było powtarzać powyższej czynności w kółko
  3. Wyświetlanie interesujących nas przedmiotów w rzędach. Po kliknięciu na kafelek z jakimś przedmiotem, apka odpala domyślną przeglądarkę i kieruje nas to strony z opisem przedmiotu ( już na platformie olx)

Jak narazie apka spełnia te założenia ale jest jeszcze sporo do poprawy.

  1. Optymalizacja. Apka działa płynnie na moim 7 letnim #xiaomi ale i tak jest mega nie zoptymalizowana.
  2. Czasami obok ceny pojawiają się artefakty z #html . Pewnie ogarnę to jakimś #regex , bo nie chce mi się już poprawiaćtego scrapera który w 99% przypadków działa.
  3. Jeśli dane ogłoszenie przekierowuje nas z olx na otomoto to po gliknięciu kafelka z nim dostaniemy error 404. ( źle sklejam url)
  4. Apka działa tylko z olx. Zamierzam to zmienić aby działała też z allegro i otomoto.
  5. Na platformach desktopowych., przesuwanie poziomej listy działa tylko jeśli korzystamy z laptopa i używamy touchPada. Na PC trzeba coś wykombinować. Pewnie dodam przyciski przesuwające listę.
  6. Dodanie zdjęcia przedmiotu do kafelka z nazwą i ceną

I to chyba tyle z rzeczy, o których na tą chwile pamiętam. Co o tym myślicie? Co mogę jeszcze poprawić/zrobić? Poniżej zdjęcie wersji desktop i film z mobilnej(android).

https://streamable.com/1yzc1s

#programowanie #diy #webscraping #scraping #flutter
2645c55d-3b54-4b20-8924-85514b8eaa8a
20

to tylko #chwalesie czy owocami pracy zamierzasz częstować? (´・‸・ ` )

@VonTrupka kod będzie publicznie dostępny. A jak ktoś będzie chciał to moge podrzucić też skomilowaną wersje

Tez mnie irytowało to wyszukiwanie w otomoto i olx i napisałem w pythonie skrypt który sprawdza co 5 min czy pojawiła sie jakaś nowa aukcja przy zadanych parametrach filtra i skrypt wysyłał link i opis telegramem na telefon. Tutaj możesz powiadomienia o tym zagnieździć w apce.


Jescze jedno co jest beznadziejne w olx i otomoto. Jeśli ogłoszenie jest zakończone to znika i to tez mogłoby być w powiadomieniach i dodatkowo gdzieś zachowany screenshot strony z oferta albo sam opis.

@Yellowbike po czym identyfikowałeś aukcje ?

W otomoto każda aukcja tzn ogłoszenie ma swój nr i modyfikując filtr o dodanie np &min_id=61158400

Wyświetlają sie tylko te ktore maja wyższe numery czyli sa nowsze.

Miałem tez jakis sposób na konwertowanie nr id z paska adresu ogłoszenia bo tam jest to jakby zaszyfrowane w literach i cyfrach.l ale musiałbym pogrzebać w kodzie bo tak na szybko nie pamietam.

@Gitler czego używasz do deploy'u pythona na androida?

@psalek niczego. Za dużo ebania. Przepisałem skrypt na darta

Zaloguj się aby komentować

Zaloguj się aby komentować

Kod na uruchamianie funkcji synchronicznych w Pythonie w asynchroniczny sposób:

# Oczywiście warto używać modułów natywnie asynchronicznych od razu jeśli jest to możliwe: https://github.com/timofurrer/awesome-asyncio

import asyncio
import urllib.request

def get_page(url):
‎ ‎ ‎ ‎ with urllib.request.urlopen(url) as f:
‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ return f.read(100).decode('utf-8') # Zwraca jedynie 100 pierwszych znaków dla zobrazowania jako przykład

async def main():
‎ ‎ ‎ ‎ urls = [' https://www.google.pl' for _ in range(10)] # Ta sama strona 10 razy jako przykład - ale tu należy podać swoją listę stron
‎ ‎ ‎ ‎ tasks =[asyncio.to_thread(get_page, url) for url in urls]
‎ ‎ ‎ ‎ return await asyncio.gather(*tasks)

results = asyncio.run(main())
[print(result) for result in results]

Kod działa jedynie z Pythonem 3.9 lub wyższym.
Dla starszych wersji Pythona można użyć staroszkolnego podejścia z ThreadPoolExecutor lub metody run_in_executor dla loop z modułu asyncio.

#technologia #komputery #programowanie #python
2

Brakuje tutaj kolorowania składni :d

@hejto - @rayros mówi, że brakuje tutaj kolorowania składni .

A brakuje przede wszystkim możliwość umieszczania bloków kodu.

Zaloguj się aby komentować

Przez lata skompilowałem sobie listę pytań, z którymi najczęściej spotkałem się na rozmowach kwalifikacyjnych - może komuś się przyda:

  • Czym w ogóle jest Python i jakie ma wady i zalety?
  • Jakie prymitywne typy danych oferuje Python i jakie mają właściwości?
  • Które złożone typy danych są mutowalne i dlaczego jest to przydatne?
  • Jakie znasz różnice pomiędzy Pythonem 2 a 3?
  • Podaj metody formatowania ciągów znaków (stringów) i interpolacji zmiennych
  • Wymień kilka najczęściej używanych modułów z biblioteki standardowej i ich zastosowanie
  • Z jakimi zewnętrznymi modułami lubisz pracować najbardziej?
  • Wyjaśnij wyrażenia listowe (list comprehensions) i podaj ich przykład
  • Jak wykonać kod Pythona asynchronicznie?
  • Podaj przykład obsługi błedów w Pythonie
  • Jak używać menedżera kontekstu (context manager)?
  • Czym jest GIL (Global Interpreter Lock) i jak go obejść?
  • Jeśli klasa dziedziczy z innej klasy ale obie klasy mają tę samą metodę, to metoda z której klasy zostanie użyta? Tip: MRO (Method Resolution Order)
  • Wyjaśnij dekoratory i podaj różnice pomiędzy "@classmethod" i "@staticmethod"
  • Jak funkcja zwana "super()" pomaga w zarządzaniu dziedziczeniem?
  • Jak przyspieszyć wykonywanie kodu Pythona?
  • Jak testujesz swoje programy napisane w Pythonie?

Często są też zadania programistyczne ja na przykład:

  • Wyświetl określone informacje ze strony internetowej użwając Pythona
  • Zaimplementuj Most Recently Used (MRU) w Pythonie bez użycia modułów zewnętrznych
  • Zaimplementuj dowolny algorytm sortowania w Pythonie

Tych zadań programistycznych w internecie jest sporo ale większość firm używa wariacji tych samych kilku pytań - na szczęście poważne firmy odchodzą od takiego sprawdzania wiedzy, bo to jedynie sprawdza czy ktoś jest w stanie nauczyć się kilku rozwiązań na pamięć.
Jakby, ktoś chciałby zacząć się uczyć, to strona Pythona ma świetny tutorial po polsku: https://docs.python.org/pl/3/tutorial/index.html.
Oczywiście o wiele więcej jest materiałów po angielsku - jak na przykład ten całkiem przyjemny godzinny tutorial dla początkujących: https://youtu.be/kqtD5dpn9C8.

#technologia #programowanie #python
18

Ktoś dzisiaj jeszcze pyta o różnice między pythonem 2 a 3?

@ZohanTSW Jak dla kogos to jest istotne to i tak nie chcesz w tej firmie pracowac

@ZohanTSW - to takie trochę podchwytliwe Pytanie - sprawdza cztery rzeczy:


  • Czy ktoś pracuje z Pythonem na tyle długo by znać te różnice

  • Czy ktoś wie, że Python 2 jest End of Life

  • Czy ktoś wie jakie ulepszenia każda nowa wersja Pythona wprowadziła (i ich potrafi użyć)

  • Czy ktoś po prostu interesuje się Pythonem i jego ekosystemem i w jakim stopniu


Ja zdecydowanie bym nie zaakceptował oferty z firmy która wymaga używania Pythona 2 - niech się inni męczą

@koszotorobur Na pythoninstitute.org jest tez zacny kurs.

Zaloguj się aby komentować

@koszotorobur widze ze ktos zaczal sie uczyc pythona i odrazu przybiegl sie pochwalic internetowym kolegom

@GetBetterSoon - dobrze, że Ty chociaż chwalisz się swoją ponadprzeciętną inteligencją na tym portalu z nieśmiesznymi obrazkami mój internetowy kolego - nie móc ocieplić się w jej blasku byłoby niepowetowaną stratą

konfederacje

@def - Panie i Panowie - mamy zwycięzcę!

Niech posypią się pioruny w nagrodę!

Zaloguj się aby komentować

Napisałem swój pierwszy "poważniejszy" kod w pythonie pod bota z Discorda pod serwery gier Source i Goldensource. Po dodaniu IP serwera do listy, serwer ten jest odpytywany co jakiś czas czy serwer ma jakiś graczy i wydaje odpowiedni komunikat na czacie.
Niby mała rzecz, a przydatna w przypadku martwego multiplayera...
Wystarczy podać w enviromentsach token do bota, id kanału i role, które mają być wołane i odpalić skrypt na swoim hoście.
Jeszcze bede refactorował, póki co chciałem by jakkolwiek działało
https://codeberg.org/xelot/dm_server/src/branch/main/player_activity_bot.py
https://codeberg.org/xelot/dm_server/src/branch/main/.env
#programowanie #gry #python
ade239a7-0e25-4324-95b2-1f76a586ed84
1

Świetna robota Tomeczku!


W kwestii refactoru - całość wygląda nawet git, jedyne co to bym ten fragment bym zmienił, żeby wychodzić z pętli elegancko i ograniczyć liczbę powtórzeń jak request nie działa.


Tutaj cały wątek na SO jak to najlepiej obsłużyć - https://stackoverflow.com/questions/2083987/how-to-retry-after-exception


retries = 3

while retries:

            try:<br />

                players_list = await a2s.aplayers(address)<br />

                retries = 0<br />

            except a2s.BufferExhaustedError:<br />

                print("BufferExhaustedError: retrying in 30 secs")<br />

                retries -= 1<br />

                await asyncio.sleep(30)<br />

            except TimeoutError():<br />

                print("TimeoutError: retrying in 1 minute")<br />

                retries  -= 1<br />

                await asyncio.sleep(60)

Zaloguj się aby komentować