x-kom hosting

[python] szukanie liczby zadanie

saqr
utworzono
utworzono (edytowane)

Witam. Uczę się programowania w pythonie. Mam zadanie polegające na tym, że użytkownik wybiera liczbę z przedziału od 1 do 100 i komputer ma ją odgadnąć. 

To mój kod programu:

# Komputer zgaduje liczbę
import random

x = int(input("Wybierz liczbę od 1 do 100: "))
y = random.randint(1, 100)
while y != x:
    if y > x:
        print("Za duża...")
    elif y < x:
        print("Za mała...")
    else:
        print("Twoja liczba to:", y)
    y = random.randint(1, 100)
print("Twoja liczba to ", y)
input("\n\nAby zakończyć program wciśnij enter.")

Jak widzicie wstawiłem dwukrotnie print("Twoja liczba to", y). Jak usunę tę linijkę print z końca kodu program nie wykonuje instrukcji print w warunku else. Nie wypisuje wybranej przeze mnie liczby. Z tą linijką na końcu wszystko przebiega pomyślnie. Program odgaduje liczbę i kończy pętlę. 

fernandez
komentarz
komentarz

Ja ci napiszę tak. "u mnie działa!" ;)

 

https://onlinegdb.com/zjQbuCn4h

 

pytanie jest jak chcesz dokładnie żeby działało.

Na koniec, jak w końcu "random" wylosuje dobrą liczbę, wypisuje ją i program się kończy (czeka na input).

saqr
komentarz
komentarz (edytowane)

W drugim zadaniu również ten sam problem. Program nie wykonuje instrukcji print w warunku else

# Odgadnij liczbę w 10 próbach

import random

print("Witaj w programie odgadnij liczbę!")
print("Masz 7 prób aby odgadnąć liczbę jaką wybrałem")

liczba = random.randint(1, 100)
x = int(input("Wybierz liczbę: "))
próba = 10
while x != liczba:
    if próba == 0:
        print("Wykorzystałeś wszystkie próby")
        break
    elif x < liczba:
        print("Twoja liczba jest za mała")
    elif x > liczba:
        print("Twoja liczba jest za duża")
    else:
        print("Brawo! Chodziło mi liczbę", x)
    x = int(input("Wybierz liczbę: "))
    próba -= 1

input("\n\nAby zakończyć program naciśnij enter")

Co robię źle?

@fernandez Program działa dobrze, ale nie wypisuje @fernandez Sprawdź drugi program, który dodałem. Jest ten sam problem. Kiedy liczba jest za mała na konsoli pojawia się komunikat, że jest za mała. Kiedy jest za duża również komputer zwraca informację. Ale gdy odgadnę liczbę wybraną wylosowaną przez komputer nie zwraca napisu, że odgadłem liczbę tylko kończy pentlę.  A w warunku else jest print("Brawo! Chodziło mi o liczbę", x).

Na innym forum polecili mi alternatywę w postaci pętli while true. Wszyscy śmiga jak w zegarku. Chociaż napisali, że moja wersja też była prawidłowa tylko, że trzeba było dodać instrukcję print po za pętlą. Więc wszystko ok. Teraz będę pamiętał. 

fernandez
komentarz
komentarz

wszystko sie wykonuje i wypisuje

moze jakos dziwnie używasz stndardowego wyjścia, albo dziwnego IDE

przekopoiwalem twój skrypt do interpertera sieciowego (dałem link) i wszystko się wypisuje

 

 

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.