Błąd w programie

Błąd w programie
X9
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:25
0

Wywołuje funkcje i tak w kółko jak na zdjęciu, żadnej treści wyświetlanej na kosnoli. Program odinstalowany już kilkakrotnie, nie wiem gdzie problem.

Bez tytułu.png

edytowany 1x, ostatnio: xyz91i
superdurszlak
na przyszłość - kod wklejaj jako sformatowany (znaczniki ```) tekst, a nie zrzut ekranu. Przy 3 linijkach na krzyż to nie problem, ale coś większego wypala oczy i utrudnia ewentualne analizowanie problemu.
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:4 dni
  • Lokalizacja:Kraków
  • Postów:2000
1

ok, masz sobie funkcję:

Kopiuj
def foo():
  zrób_cośtam()
  foo()

wywołujesz ją rekurencyjnie wewnątrz, ale nie wywołujesz jej w ogóle z zewnątrz. Bez tego nigdy się nie wykona.


BraVolt
Chyba funkcja która ten kod wywoła powinna wyglądać mieć nazwę Syzyf
X9
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:25
0

Czyli mam dodać jakieś dodatkowe biblioteki, czy też błąd w ustawieniach, bo nie zrozumiałem? Po prostu widziałem taki fragment kodu w internecie i tam działało bez problemu. Nie wiem jak rozwiązać ten problem.

AK
Widziałeś kiedyś w życiu typowy statystyczny kod Pythona? Bo chyba nie ...
AK
ani biblioteki, ani ustawienia. Przeczytać cokolwiek dokumentacji
xDevil2
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Poznań
  • Postów:109
2
Kopiuj
def foo():
  zrób_cośtam()

foo()	

Prawdopodobnie pomoże ;)

BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
0
xyz91i napisał(a):

Wywołuje funkcje i tak w kółko jak na zdjęciu, żadnej treści wyświetlanej na kosnoli. Program odinstalowany już kilkakrotnie

Masz błędy w kodzie (poziom zaawansowania ciut wyżej od Hello World), żeby się ich pozbyć odinstalowujesz i na nowo instalujesz IDE od JetBrains?

Dobrze zrozumiałem?

Gdyby było, że jeszcze poszło formatowanie dysku to bym już nie pytał


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 1x, ostatnio: BraVolt
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:4 dni
  • Lokalizacja:Kraków
  • Postów:2000
1
xyz91i napisał(a):

Czyli mam dodać jakieś dodatkowe biblioteki, czy też błąd w ustawieniach, bo nie zrozumiałem?

Napisałeś funkcję, która wywołuje samą siebie. Po czym nie wywołałeś jej ani razu. Jak ją wywołasz, będzie się wywoływać w nieskończoność (albo raczej - aż zabraknie stosu).

Kopiuj
# to się nigdy nie wywoła
def foo():
  print("foo")
  # wywołanie wewnątrz
  foo()

# to się wywoła raz
def bar():
  print("bar")

#wywołanie na zewnątrz
bar()

# to będzie się wywoływać w nieskończoność aż się wysypie
def baz():
  print("baz")
  # wywołanie wewnątrz
  baz()

#wywołanie na zewnątrz
baz()

PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
2

Należy poprawnie sformatować kod jak pokazał @xDevil2.
Wcięcia w Pythonie są bardzo ważne, decydują o tym jak wykona się program. To, co jest "wcięte", wykona się dla instrukcji z dwukropkiem, np.

Kopiuj
a=1
b=1
if a==b:
    print("To sie wykona jesli a jest rowne b")
print("A to sie wykona niezaleznie od tego czy a jest rowne b")

Jeszcze jeden przykład

Kopiuj
a=1 #zmienna jest globalna, więc widać ją w funkcji
def dupa():
#Od tej pory wszystko wcięte przynajmniej raz będzie w funkcji dupa
#aż do momentu kiedy instrukcja nie będzie wcięta
    b=1#zmienna jest wcięta, więc widać ją TYLKO w funkcji

    if a==b:
        print("To sie wykona jesli a jest rowne b")

#Ta instrukcja print nie jest wcięta, co znaczy, że to już nie jest w funkcji
print("A to sie wykona niezaleznie od tego czy a jest rowne b")

Możemy wybrać czy wcięcia robić tabulatorami czy spacjami pod warunkiem, że w całym pliku robimy tak samo:

  • jeśli tabulator, to tabulator,
  • jeśli dwie spacje, to dwie spacje,
  • jeśli cztery spacje, to cztery spacje,
  • i tak dalej.

W przypadku kiedy w jakiejś linii liczba spacji albo tabów nie będzie się zgadzać z resztą, program dojdzie do linijki z nieprawidłowym wcięciem i się zatrzyma.

Autor za jakiś czas pewnie będzie się śmiał z błędu jaki popełnił.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
edytowany 1x, ostatnio: PerlMonk
IK
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 2 lata
1
xyz91i napisał(a):

A jakim skrótem klawiszowym wyjść bezpośrednio z pętli na początek wiersza?

Czy ty pytasz jak przesunąć kursor w edytorze na początek wiersza?

L7
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 3 lata
  • Postów:9
0

Kiedyś, dawno temu miałem podobny problem (chyba przy jakimś ifie) - jednak przy czymś co miało kilkaset linii kodu. Do dziś wspominam jak to napisany kod zachowywał się czasami niepoprawnie a ja się dziwiłem co jest grane. Wtedy dopiero zaczynałem pisać w pythonie więc wcięcia w kodzie mimo że oczywiście wiedziałem co i jak - to jednak wyglądały dla mnie jeszcze dziwnie i takie sytuacje nie rzucały się w oczy.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.