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 (145 KB) - ściągnięć: 112
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.
ok, masz sobie funkcję:
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.
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.
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ł
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).
# 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()
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.
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
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:
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ł.
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?
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.