Witam wszystkich.
Uczę się Pythona od niedawna. Korzystam z kursów na Udemy, Książek i zasobów Internetu.
Przy okazji dużo pracuję, więc traktuję to na razie hobbystycznie.
W jednej z książek znalazłem zadanie:
Ćwiczenie 1. Napisz program, który odczytuje liczby tak długo, aż użytkownik
wprowadzi „gotowe”. Po wpisaniu „gotowe” wydrukuj sumę, ile wprowadzono liczb
oraz średnia z tych liczb. Jeśli użytkownik wprowadzi cos innego niż liczba, wykryj
jego błąd, używając try i except, wypisz komunikat o błędzie oraz przejdź do
następnej liczby.
[tak ma wyglądać przykładowe rozwiązanie]
Wprowadź liczbę: 4
Wprowadź liczbę: 5
Wprowadź liczbę: złe dane
Nieprawidłowe wejście
Wprowadź liczbę: 7
Wprowadź liczbę: gotowe
16 3 5.333333333333333
Niestety, potrafię zrobić tylko tyle:
lista = []
while True:
try:
x = int(input('Wprowadź liczbę: '))
lista.append(x)
continue
except ValueError:
print('Oops, nie wprowadziłeś liczby. Kończymy.')
break
x = sum(lista)
y = len(lista)
srednia = round((x/y), 2)
print('Podałeś następujące liczby:', lista,'Średnia podanych liczb, to:', srednia)
Próbowałem dodawać if i else, zmienną x wystawiać przed try, ale nie wychodzi mi dodanie działającej instrukcji, która po wpisaniu 'gotowe' zrobi to, co robi teraz except ValueError. Szukałem na necie, ale nie znalazłem czegoś, co mogłoby mi pomóc, albo co mógłbym zrozumieć, aby wykonać to zadanie.
Oczywiście, oprócz rozwiązania, prosiłbym też o krótkie wyjaśnienie rozwiązania. Wszelka konstruktywna krytyka mile widziana :)
Dziękuję.