Wpis z mikrobloga

W ramach dalszej praktyki #programowanie w #python napisałem prosty program dodający lub odejmujacy liczbę dni od dzisiejszej daty. Nie jest to może coś niesamowitego, ale satysfakcja osobista ogromna ( ͡° ͜ʖ ͡°) wrzucam poniżej, może ktoś się zainspiruje lub podejmie rozbudowy w ramach własnej praktyki. Miłego. https://pastebin.com/rN65zD08
Copperhead - W ramach dalszej praktyki #programowanie w #python napisałem prosty prog...

źródło: comment_1627498294FLcNlPkDFpHGaB7xy5YwEG.jpg

Pobierz
  • 29
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Tank1991: to kolejny już z takich programów. Dziękuję :) sam próbuje dojść do rozwiązania. Miałem problem ze zwróceniem daty w formacie który jest teraz. Chcąc zmieścić wszystko w jednej linii program zwracał mi datę w taki sposób ( '2021', "-", '7', '-', '29'), chociaż wszystko było na moje oko w porządku. Może wiesz gdzie mógł być problem?
  • Odpowiedz
  • 2
@Copperhead daty nie printuje się w taki sposób. Każdy obiekt daty ma metodę, która pozwala zwrócić dowolny format daty w oparciu o parametry. Poczytaj o strftime. Stringi też można ładniej łączyć. Ogólnie nie jest źle ale zawsze można lepiej. 3maj się i rozwijaj się
  • Odpowiedz
@Zazu: Wiadomo, że moje rozwiązanie nie wyczerpuje tematu :) siądę jeszcze do tego i spróbuję rozbudować o dodatkowe funkcje, jednocześnie zwracając uwagę na ulepszenie tego co już jest ( ͡° ͜ʖ ͡°)
  • Odpowiedz
  • 1
@Copperhead no więc jedziemy dalej z review. Nadmiarowe jest użycie funkcji (i to 2) których ciało ma jedną linijkę logiki. Skoro juz używasz nadżędnej zmienney days_ to zŕób ifa bez funkcji robiącego plus lub minus na dacie i w ostatniej linijce wyprintuj tylko sformatowany wynik. Zredukujesz kod o jakieś 70%
  • Odpowiedz
imho:
1. pozbądź się spacji z daty, poprzez join;
2. dodaj spację w wpisie liczby dni, po ":" ;
3. dodaj dzień tygodnia; jaki jest dziś i jaki to będzie w wyznaczonej dacie.

wtedy wszystko bedzie ładnie, ale to tylko moje zdanie.
  • Odpowiedz
Nadmiarowe jest użycie funkcji (i to 2) których ciało ma jedną linijkę logiki


@Copperhead: Muszę się ostro sprzeciwić tej poradzie od @Zazu . Kod masz pisać tak, żeby bez problemu można było go przeczytać. Jeśli nazwa funkcji dobrze oddaje przeznaczenie kawała kodu, to należy tak to napisać. Nie dostaje się premii uznaniowej za oszczędzanie znaków w pliku źródłowym.
Powiedzmy, że masz kod w którym używasz wzoru na obliczenie pola
  • Odpowiedz
  • 0
@ProfesorBigos przeczytaj Zen pythona a później podyskutujmy jak tworzenie nadmiarowych funkcji poprawia zrozumienie kodu. Dajmy na to, że jego projekt urośnie i nagle definicja funkcji nie będzie w module wykonywalnym tylko będzie importowana z innego modułu. Fajnie się analizuje kod skacząc w IDE do jednolinijkowych funkcji w 4 modułach dalej? Nie mówiąc już o zasadzie DRY czyli Do Not Repeat Yourself, która w w/w przypadku jest złamana kilkukrotnie. Rozdzielanie IF'a a
  • Odpowiedz
@Zazu: Oczywiście, że nie przejdzie code review, bo autor się dopiero uczy i nie ma jeszcze płynności w posługiwaniu się językiem. Ale miał właściwą intuicję, że skoro program może pójść dwiema ścieżkami, w zależności od wyboru użytkownika, to każdą może reprezentować inna funkcja. Najwyraźniej inaczej rozumiemy to Zen.
Jeśli nazwa funkcji dobrze opisuje jej działanie, to nie potrzebuję zaglądać w jej bebechy. A poza tym żyjemy w 2021 roku i
  • Odpowiedz