Wyzwanie Python #2: Rozwiązanie
Poniżej rozwiązanie do naszego drugiego wyzwania
W tym zadaniu wybraliśmy pętlę while
, ponieważ nie wiemy z góry, ile razy obliczenia będzie chciał przeprowadzić użytkownik (ani nie da się tego w żaden sposób przewidzieć czy matematycznie obliczyć). Musimy tutaj wykonać pierwszą iterację pętli, gdyż wiemy, że użytkownik będzie chciał przynajmniej raz dokonać obliczeń. Dlatego ustalamy zmienną logiczną koniec
, która na początku przyjmuje taką wartość, aby wejść do pętli. Dopiero na końcu pętli pytamy użytkownika o to, czy chce liczyć dalej i ewentualnie zmieniamy wartość tej zmiennej, aby warunek pętli był fałszywy i w związku z tym zakończyć jej działanie.
Warto zauważyć, że staramy się obsłużyć nietypowe sytuacje: co, gdy użytkownik poda inną operację, niż jedną z pięciu, które obsługujemy? Co, gdy napisze coś innego, niż n
lub t
? My wybraliśmy podejście informujące o otrzymaniu niepoprawnych danych i przerwaniu działania programu poprzez break
(wyskakujemy z pętli, a za pętlą już nic nie ma). Innym podejściem byłoby napisanie pętli, która prosi o podanie poprawnych danych tak długo, aż się na nie doczeka.
def main():
koniec = False
while not koniec:
print("Podaj w oddzielnych wierszach liczbę, operację matematyczną: +,-,*,/,%, a następnie kolejną liczbę:")
liczba1 = float(input())
operacja = input()
liczba2 = float(input())
if operacja == "+":
wynik = liczba1 + liczba2
elif operacja == "-":
wynik = liczba1 - liczba2
elif operacja == "*":
wynik = liczba1 * liczba2
elif operacja == "/":
wynik = liczba1 / liczba2
elif operacja == "%":
wynik = liczba1 % liczba2
else:
print("Niepoprawna operacja")
break
print("Twój wynik to: " + str(wynik))
print("Chcesz wykonać kolejne działanie? Wpisz literę t lub n")
kolejne = input()
if kolejne == "n":
koniec = True
elif kolejne != "t":
print("Niepoprawny wybór")
break
if __name__ == "__main__":
main()
Jeśli macie więcej pytań lub problemów, piszcie do nas śmiało na Facebooku.



