while, break - w którym miejscu?

0

Cześć, zacząłem uczyć się pythona i mam pewien problem.

Rozumiałem wszystko (Tak mi się wydaje), do momentu gdy chcę zatrzymać pętlę while. Faktycznie, pętla się zatrzymuje, ale potem wypisuje mi tekst, który miał się pojawić dopiero, gdy jeden if będzie true. A w tym wypadku nie jest on true, bo pętla się przerywa.
po tym gdy 5 razy nie odgadnę to mam komunikat:

print("nie udalo Ci sie.")
print("Brawo! Ta liczba to", liczba)
print("Udalo Ci sie to zrobic w liczbie", proby, "prob!")
input("aby zakonczyc, wcisnij klawisz Enter.")
import random  
print("masz 5 prób, spróbuj odgadnąć tą losową liczbę!")
liczba = random.randint(1, 100)
losowanie = int(input("liczba to: "))
proby = 1


while losowanie != liczba:
    if proby > 5:
        print("nie udalo Ci sie.")
        break
    if losowanie > liczba:
        print("Za duża!")
    else:
        print("Za mała!")
            
    losowanie = int(input("liczba to: "))
    proby += 1
    
    
print("Brawo! Ta liczba to", liczba)
print("Udalo Ci sie to zrobic w liczbie", proby, "prob!")
input("aby zakonczyc, wcisnij klawisz Enter.")

W różne miejsca tego ifa z break dawałem to się wysypywało. :(

screen jak to wygląda: user image

Pomoc dla newbie, proszę. Chcę przejść dalej z książką, ale nie w momencie, gdy nie rozumiem czegoś do końca.
Pozdrawiam!

1

Nie bardzo rozumiem o czym ty piszesz. break powoduje przerwanie pętli i skok na jej koniec. A u ciebie te komunikaty są ZA pętlą i nie są opatrzone żadnym ifem więc zawsze się wypiszą. Gdzie tu jest jakieś dziwne zachowanie?

potem wypisuje mi tekst, który miał się pojawić dopiero, gdy jeden if będzie true

Pokaż mi tego ifa. I dare you. Bo ja w tym kodzie widzę dwa ify:
if proby > 5:
if losowanie > liczba:
i żaden z nich nijak się ma do tych printów na końcu.

0

I WIDZISZ. Dzięki wielkie, zrozumiałem od razu :D

import random  
print("masz 5 prób, spróbuj odgadnąć tą losową liczbę!")
liczba = random.randint(1, 100)
losowanie = int(input("liczba to: "))
proby = 1


while losowanie != liczba:
  
    if losowanie > liczba:
        print("Za duża!")
    else:
        print("Za mała!")
            
    losowanie = int(input("liczba to: "))
    proby += 1

    if losowanie == liczba:
        print("Brawo! Ta liczba to", liczba)
        print("Udalo Ci sie to zrobic w liczbie", proby, "prob!")

    if proby > 4:
        print("nie udalo Ci sie.")
        break


    
input("aby zakonczyc, wcisnij klawisz Enter.")

teraz działa tak jak powinno!

1 użytkowników online, w tym zalogowanych: 0, gości: 1