Siema. Proszę podpowiedzcie mi co tutaj jest źle? już nie wiem sam
9862475d-eb8e-42cb-b873-99700ad05f9d
mejwen

@Jokohama spróbuj postawić breakpointy na pierwszym warunku. Jaką wartość przyjmuje dana przed ifem. Debugowałeś?

dsol17

@Jokohama Chwila moment,a dlaczego niby zakładasz,że min_liczba będzie None na starcie ?

Próbowałeś min_liczba zdefiniować jako zero ?

Pewności nie mam,ale to czasem nie jest namepointer exception ?

Aha i jak się pytasz to taguj #python albo #programowanie

saqala-bilaabayso

Problem jest z linią nr 10. Jeśli program ma po prostu wyświetlać najmniejszą liczbę, to wywal linię nr 10 (i popraw wcięcia w liniach 11 i 12), i całość będzie działać

Jokohama

@dsol17 wstawienie zera nic nie zmienia. Działanie jest takie same. Chciałbym wiedzieć co do mnie mówisz z tym namepointer xD zacząłem dopiero naukę pythona. To jest pierwsze ćwiczenie nad którym siedzę dłużej. Nie chce robić tego z chatgpt. Chce to sam napisać, ale już niewiem.

Jokohama

@saqala-bilaabayso rzeczywiście działa, ale nie tak jak chce. Chcę aby z podanych przeze mnie liczb (5 albo 10, ile chce) znalazło najmniesza z nich

dsol17

@Jokohama Aha już mam. Nie wiem czy tylko to czy to co podałem też może mieć znaczenie ,ale uruchomiłem twój kod w prostszej wersji bez try. Wygląda na to,że python zabezpiecza cię przed iterowaniem zmiennych float. Kurwa,powinienem to zauważyć, przecież to oczywiste,floatów się nie iteruje.


Dlaczego nie iteruje się float i double ? bo masz spore ryzyko pętli nieskończonej to jest inna struktura zmiennej. Dlatego właśnie wywalenie fora cokolwiek dało.


A co do nauki - niestety ja też wystarczająco go nie umiem. Przeczytaj może kilka książek na początek choć o pytku.

korpowyrobnik

@Jokohama Kurde tak czytam te komentarze i trochę mi zajęło ogarniecie o co Ci może chodzić, chcesz na wejściu jako input podawać listę liczb? Funkcja input defaultowo zwraca 1 string, wiec jak napiszesz w inpucie 1, 2 ,3 to w kodzie będzie to odpowiadać stringowi "1, 2, 3", żeby takiego stringa zamienić na listę po której będziesz iterował musisz użyć np funkcji split. Rzutowanie na floata rób dopiero w pętli na pojedynczych elementach listy, funkcja float() przyjmuje na wejscie tylko liczbe albo string, nie mozesz jej uzyc na liscie, tupli etc

A i jak dopiero się uczysz podstaw to nie używaj w ogóle try/except, będzie to powodowało ze nie będziesz widział błędów które Cie naprowadza na to co jest nie tak w twoim kodzie

Jokohama

@dsol17 Właśnie czytam i tam na końcu każdego rozdziału są ćwiczenia i to właśnie jest jedno z nich.

@korpowyrobnik Tak chcę podać listę liczb, która po wpisaniu 'ok' wypluje mi najmniejszą i największą z nich.

Daje zdj tych ćwiczeń i rozwiązanie pierwszego z nich, które działa.

26b4224d-e322-4554-a6ce-300ed0b8f73f
c18bb69a-b85a-4f03-81f7-581a0751f187
Jokohama

Dla zainteresowanych: Poniższy kod robi to co ma robić. Musiałem poradzić się chatu gpt, który dodał .append, który rozwiązał sprawe. Nie znałem tego wcześniej, w książce nie było. Chociaż ciekaw jestem jak wyglądałby kod wg klucza. Dzieki za pomoc wszystkim

@korpowyrobnik @dsol17 @saqala-bilaabayso @mejwen

saqala-bilaabayso

@Jokohama W takim razie oprócz wywalenia 10 linii trzeba jeszcze podawanie najmniejszej liczby dać poza pętlę (tak jak masz w rozwiązaniu ćwiczenia nr 1). W zdjęciu rozwiązanie oparte na Twoim. Powodzenia w nauce

4cb2ead2-613e-4516-8383-11545d86a8f9
Jokohama

@saqala-bilaabayso Dzięki! Właśnie potem mnie olśniło, że podanie min i max liczby musi być na końcu. Ale uważam, że robienie błędów to forma nauki. Miłej soboty!

dsol17

@korpowyrobnik No fakt, powinniśmy wszyscy najpierw zapytać co on z tym kodem chce zrobić.

Zaloguj się aby komentować