Python - podręcznik

Niniejszy podręcznik stanowi element innowacji społecznej HEAR_IT, która powstała w ramach Inkubatora Włączenia Społecznego. Chcesz dowiedzieć się więcej i poznać podstawy programowania? Wejdź na stronę: www.hearit.pl Niniejszy podręcznik stanowi element innowacji społecznej HEAR_IT, która powstała w ramach Inkubatora Włączenia Społecznego.

Chcesz dowiedzieć się więcej i poznać podstawy programowania?

Wejdź na stronę: www.hearit.pl

bartek.kosinski
from bartek.kosinski More from this publisher
24.08.2022 Views

Przykładowy projektimport randomdef sprawdzanie (wylosowana, wprowadzona):if wylosowana > wprowadzona:print(„Podana liczba jest za duża”)return 0elif wylosowana > wprowadzona:print(„Podana liczba jest za mała”)return 0else:print(„Zgadłeś!”)return 1Losowa=random.randint(1,10)for i in range(3):Liczba=int(input(„Podaj liczbę”))if Liczba < 1 or Liczba > 10:print(„Podałeś liczbę spoza zakresu”)else:Zwrocona_wartosc=sprawdzanie(Losowa, Liczba)if zwrocona_wartosc==1:breakNiestety rozwiązanie to powoduje, że po wprowadzeniu błędnejwartości, użytkownik traci jedną ze swoich trzech szans,gdyż błędna wartość nie podlega sprawdzeniu przez funkcję.Co zrobić, by program wymuszał wprowadzenie poprawnejwartości (czyli wartości z zakresu od 1 do 10), bez utraty szans?Wykorzystajmy do tego pętlę while.70Powrót do spisu treści

Przykładowy projektimport randomdef sprawdzanie (wylosowana, wprowadzona):if wylosowana > wprowadzona:print(„Podana liczba jest za duża”)return 0elif wylosowana > wprowadzona:print(„Podana liczba jest za mała”)return 0else:print(„Zgadłeś!”)return 1Losowa=random.randint(1,10)for i in range(3):Liczba=int(input(„Podaj liczbę”))while Liczba < 1 or Liczba > 10:print(„Podałeś liczbę spoza zakresu”)Liczba=int(input(„Podaj ponownie liczbę”))Zwrocona_wartosc=sprawdzanie(Losowa, Liczba)if zwrocona_wartosc==1:breakTeraz pętla while będzie wykonywała się, dopóki użytkowniknie poda poprawnej wartości. Zwróćmy uwagę na operator logicznyor, który wskazuje, że wartość niższa niż 1 albo wartośćwyższa niż 10 jest niepoprawna. Nie moglibyśmy w tymprzypadku użyć operatora and (choć intuicja mogłaby tak nampodpowiadać), gdyż warunek sprawdzałby, czy podana przeznas wartość jest mniejsza od 1 i większa od 10 jednocześnie. Niema takiej możliwości, więc pętla nigdy by się nie wykonywała,a zatem nadal program działałby niepoprawnie.71Powrót do spisu treści

Przykładowy projekt

import random

def sprawdzanie (wylosowana, wprowadzona):

if wylosowana > wprowadzona:

print(„Podana liczba jest za duża”)

return 0

elif wylosowana > wprowadzona:

print(„Podana liczba jest za mała”)

return 0

else:

print(„Zgadłeś!”)

return 1

Losowa=random.randint(1,10)

for i in range(3):

Liczba=int(input(„Podaj liczbę”))

while Liczba < 1 or Liczba > 10:

print(„Podałeś liczbę spoza zakresu”)

Liczba=int(input(„Podaj ponownie liczbę”))

Zwrocona_wartosc=sprawdzanie(Losowa, Liczba)

if zwrocona_wartosc==1:

break

Teraz pętla while będzie wykonywała się, dopóki użytkownik

nie poda poprawnej wartości. Zwróćmy uwagę na operator logiczny

or, który wskazuje, że wartość niższa niż 1 albo wartość

wyższa niż 10 jest niepoprawna. Nie moglibyśmy w tym

przypadku użyć operatora and (choć intuicja mogłaby tak nam

podpowiadać), gdyż warunek sprawdzałby, czy podana przez

nas wartość jest mniejsza od 1 i większa od 10 jednocześnie. Nie

ma takiej możliwości, więc pętla nigdy by się nie wykonywała,

a zatem nadal program działałby niepoprawnie.

71

Powrót do spisu treści

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!