PYTHON Napisz program, który będzie wczytywał z klawiatury dane tak długo, aż użytkownik wpisze liczbę całkowitą dodatnią. Jeśli użytkownik wprowadzi coś innego niż liczba całkowita dodatnia (typu int), wykryj jego błąd używając tryi except, wypisz komunikat o błędzie oraz przejdź do następnej liczby. Po wprowadzeniu poprawnej liczby wypisz ją na ekranie.
konrad509
ale w przypadku liczby niedodatniej nie "wywali" błędu
animaldk
Tak. Ale pętla będzie działać. Przy wpisaniu czegoś innego niż liczba całkowita wyrzuci błąd.
animaldk
Jeżeli miało to też wyrzucić błąd (przejście do except), to dla mnie robienie czegoś na siłę. Ja bym dopisał else pod try z odpowiednim komunikatem.
konrad509
no właśnie o to chodzi, że chyba ma wyrzucić błąd - tak przynajmniej ja zrozumiałem polecenie
Odpowiedź:
Skrypt bez komentarzy w załączniku .txt
Wyjaśnienie:
Jak dobrze zrozumiałem polecenie, to skrypt poniżej:
a=0 #"sztuczna" zmienna potrzebna do pętli
while a==0: #rozpoczęcie pętli
b=input('Podaj liczbę: ') #nie deklarujemy rodzaju wprowadzonej danej
try: #sprawdzamy poprawność wprowadzonej danej
b=int(b) #deklaracja, że b jest typu integer. Jeżeli nie będzie, to program przejdzie do except
if b>0: #sprawdzenie warunku dodatności wprowadzonej danej
print(b) #jeżeli jest spełniony, to ją drukuje
a=a+1 #zmiana wartości zmiennej a, po to, aby zakończyć pętlę
except: #wyjątek, jak wprowadzona dana nie będzie liczbą całkowitą
print('Błędnie wprowadzona dana.')