Python błąd invalid syntax linijka 11

Ktoś może mi ktoś powiedzieć dlaczego nie może powiedzieć dlaczego w linijce 11 jest błąd `Tekst
number = 23
running = True
while running:
guess = int(input("Podaj liczbę całkowitą: "))
if guess == number:
# Blok warunkowy zaczyna się w tym miejscu
print(“tak jest.”)
print(“nie trafione”)
# Tu kończy się blok warunkowy. Konczy se także petla!
running = False
elif guess > number:
else:
# Drugi blok
print(“Nie, liczba powinna być większa”)
# Koniec drugiego bloku …

print(“Nie, liczba powinna być mniejsza”)
# ten blok zostanie wykonany tylko gdy guessed > number
else:
print(“Koniec”)

Niby błąd masz z powodu braku wcięcia linię wyżej (a wkleiłeś jako czysty tekst to wcięć nie widać…):

running = False
elif guess > number:

a niby interperter chce:

 running = False
elif guess > number:

Wtedy niby mamy nowy błąd w linii 19:

File "<string>", line 19
    else:
    ^
SyntaxError: invalid syntax

mi pokazuje elif guess > number:
nie wiem dlaczego?

Tu nie powinno być else?

Kod nie powinien wyglądać tak?

number = 23
running = True

while running:
    guess = int(input("Podaj liczbę całkowitą: "))

    if guess == number:
        print("Tak jest")
    elif guess > number:
        print("Liczba powinna być mniejsza")
    elif guess < number:
        print("Liczba powinna być większa")
    else:
        print("Nie trafione")
        running = False
        print("Koniec")
        break

Co chcesz dokładnie osiągnąć?

Po prawie roku może napisał poprawnie od zera.

1 polubienie

Morze jest szerokie i głębokie, a w tym morzu mieszka ryba, co nazywa się chyba.

To wygląda na kurs lub stare zadanie domowe, dostał pewnie dwóję do indeksu i zapomniał.

Nie ważne, może komuś innemu się przyda i nie będzie musiał już zakładać tematu. Nie każdy leci od razu na formu :wink:

Teraz zadania domowe odrabia się na specjalistycznych portalach np http://www.pracadomowa.pl/ czy https://www.zadania.pl nieźle, co? A tego jest więcej, też coś słyszałem ze mozna zapłacić i rozwiązanie od razu.

Może i zadanie domowe, ale autor nie prosi o gotowca, tylko pyta dlaczego ma błąd w kodzie.

Jeśli chcesz wyłapać cwaniaczków, zawsze można wrzucić bardziej rozbudowany kod, nauczyciel czy wykładowca powinien wyłapać gotowca, np.:

class Main:
    def __init__(self):

        self.guess_number()

    def guess_number(self):
        number = 23
        running = True

        while running:
            guess = int(input("Podaj liczbę całkowitą: "))

            if guess == number:
                print("Tak jest")
                break
            elif guess > number:
                print("Liczba powinna być mniejsza")
            elif guess < number:
                print("Liczba powinna być większa")
            else:
                print("Nie trafione")
                running = False
                print("Koniec")
                break

if __name__ == "__main__":
    Main()

Lub

class Main:
    def __init__(self):

        self.guess_number()

    def check_number(self, guess):
        return guess


    def guess_number(self):
        number = 23
        running = True

        guess = int(input("Podaj liczbę: "))
        result = self.check_number(guess)

        while running:
            if result == number:
                print("Tak jest")
                break
            elif result > number:
                print("Liczba powinna być mniejsza")
                break
            elif result < number:
                print("Liczba powinna być większa")
                break
            else:
                print("Nie trafione")
                running = False
                print("Koniec")
                break

if __name__ == "__main__":
    Main()

Można zawsze pójść dalej i napisać bardziej rozbudowany kod, którego, oczekujący gotowca nie będzie umiał wytłumaczyć nauczycielowi/wykładowcy :slight_smile:

pyminifier + ręczne poprawki przyjmuje wyzwanie :wink:

class s:
    I = True
    Q = int
    g = input
    j = print
    R = False

    def __init__(self):
        self.H()

    def c(self, T):
        return T

    def H(self):
        N = 23
        t = self.I
        T = self.Q(self.g("Podaj liczbę: "))
        U = self.c(T)
        while t:
            if U == N:
                self.j("Tak jest")
                break
            elif U > N:
                self.j("Liczba powinna być mniejsza")
                break
            elif U < N:
                self.j("Liczba powinna być większa")
                break
            else:
                self.j("Nie trafione")
                t = R
                self.j("Koniec")
                break


if __name__ == "__main__":
    s()

Swoją drogą, warunek else chyba nie ma prawa wystąpić?

1 polubienie

Tak, ale oczekujący na gotowca nie musi o tym wiedzieć. Jeśli zdaje sobie z tego sprawę, to znaczy że nie oczekuje na gotowca, bo przetestował skrypt i ciągnie dyskusję dalej i tu można się domyślać, że chce zrozumieć działanie skryptu i być może czegoś się nauczyć :slight_smile:

1 polubienie

Domyślam się co autor chciał osiągnąć, ale to tylko domysły.