Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[python] problem z pętlą

Ostatnio zmodyfikowano 2023-03-21 06:11
Autor Wiadomość
rychu909
Temat założony przez niniejszego użytkownika
[python] problem z pętlą
» 2022-01-28 13:39:50
Cześć, mam problem ze znalezieniem przyczyny dlaczego nie działa mi pętla.
Po wylosowaniu liczby większej niż 5, pętla powinna wrócić do początku, a obecnie jest tak, że jeśli wylosuje wyżej niż 5 to nie wraca.
Nie zlinczujcie mnie jeśli są jakieś buble, albo czegoś nie wiem, uczę się we własnym zakresie i pomaga mi znajomy :)
Pod spodem wklejam cały kod:



print ("Witaj przyjacielu! Masz niepowtarzalną okazję, by poznać swojąprzyszłość!",
    "\n\nPrzed Tobą jest pięć ciastek z wróżbą.")

input ("Aby wybrać ciastko, naciśnij klawisz Enter.")

import random
cake = random.randint (1, 30)

print ("\n\nTwoja wróżba mówi, że ")

total = cake
   
while total <= 5:
    if total == 1:
        print ("pojedziesz na wakacje.")
        break
    elif total == 2:
        print ("wygrasz na loterii.")
        break
    elif total == 3:
        print ("to twój szczęśliwy dzień.")
        break
    elif total == 4:
        print ("to będzie ciężki weekend.")
        break
    elif total == 5:
        print ("spotka Cię szczęście.")
        break
    elif total >= 6:
        continue
P-179237
aaadam
» 2022-01-28 14:21:14
musisz losować cake w pętli, zmienić total na cake w ifach, oraz zmienić warunek pętli na nieskończony najlepiej
P-179238
jamila2
» 2023-03-21 06:11:25
W twoim kodzie jest kilka błędów, które powodują awarię pętli. Oto kilka pomysłów, jak to rozwiązać:
Instrukcja losowego importu powinna znajdować się przed instrukcją print na początku kodu.
Ponieważ zmienna total nie jest aktualizowana w pętli, pętla będzie działać w nieskończoność. Zamiast tego podczas pętli wygeneruj nową liczbę losową, aby zaktualizować zmienną sumaryczną.
Ponieważ każda instrukcja reprezentuje inny warunek, instrukcje elif w pętli należy zastąpić instrukcjami if.
Instrukcja continue jest niepotrzebna w pętli, ponieważ pętla automatycznie przejdzie do następnej iteracji.
Oto poprawiona wersja Twojego kodu, która zawiera następujące zmiany:

import random

print("Hello my friend! You have a unique opportunity to know your future!")
input("To select a cookie, press Enter.")

while True:
    cake = random.randint(1, 30)
    total = cake % 5 + 1

    print("\nYour divination says", end=" ")

    if total == 1:
        print("you will go on vacation.")
    elif total == 2:
        print("you will win the lottery.")
    elif total == 3:
        print("is your lucky day.")
    elif total == 4:
        print("it will be a hard weekend.")
    elif total == 5:
        print("you will be lucky.")

    if total <= 5:
        break

Pętla w tej wersji tworzy za każdym razem nową liczbę losową i zmienia zmienną total na wartość od 1 do 5. Pętla działa do momentu utworzenia liczby mniejszej lub równej 5, w którym to momencie wypisywana jest powiązana fortuna i pętla jest przerwana.
P-180064
« 1 »
  Strona 1 z 1