#!/usr/bin/python3 '''Program pobierający od użytkownika w dzielną, a następnie - w pętli - dzielniki i sprawdzający czy dzielą one dzielną bez reszty. Jeśli tak, podają iloraz, jeśli nie, iloraz i resztę. Nie podanie niczego kończy program. Podobnie podanie czegoś, co nie da się skonwertować na liczbę całkowitą. ''' a=int(input("Podaj liczbę, którą chcesz podzielić:")) d=input("Podaj dzielnik:") #Tu jeszcze się wstrzymujemy z konwersją na int - to będzie w punkcie następnym while d: #Jeśli użytkownik nic nie poda, d = "", a ciąg pusty ma wartośc logiczną false, więc pętla się nie wykona #Obsługa wyjątku gdy użytkownik poda string, który nie da się skonwertować na liczbę całkowitą #Gdybyśmy nie przechwycili tego błędu, interpreter Pythona przerwałby program i wypisał na ekran ValueError try: #Spróbuj wykonać polecenia w bloku poniżej... d=int(d) except ValueError: #...a jeśli wysypią się z błędem ValueError (zła wartość - nie da się skonwertować na int), to: print("To nie liczba całkowita, foch!") break #Przerwij pętlę (a że za nią nic już więcej nie ma, to i program) if d == 0: print("Cholero, nie dziel przez zero!") d=input("Podaj dzielnik:") continue #Przeskocz do początku pętli (czyli pomiń resztę bloku) q,r=divmod(a,d) #Inny sposób na jednoczesne wykonanie r=a%d i q=a//d if r == 0: print("Liczba",d,"JEST dzielnikiem liczby",a) print(q,"*",d,"=",a) else: print("Liczba",d,"NIE JEST dzielnikiem liczby",a) print(q,"*",d,"+",r,"=",a) d=input("Podaj dzielnik:")