Średnia z dowolnej liczby argumentów
Treść zadania
Napisz funkcję srednia(*liczby), którą można wywołać z dowolną liczbą argumentów — np. srednia(2, 4), srednia(1, 2, 3, 4, 5) albo srednia(). Funkcja zwraca średnią arytmetyczną otrzymanych liczb, a jeśli nie dostała żadnego argumentu — zwraca None.
Program wczytuje linię z liczbami, przekazuje je do funkcji jako osobne argumenty (srednia(*liczby)) i wypisuje wynik.
Dane wejściowe
Jedna linia: zero lub więcej liczb rzeczywistych oddzielonych spacjami. Pusta linia oznacza brak liczb.
Dane wyjściowe
Jedna linia:
- średnia z dokładnością do dwóch miejsc po przecinku albo
Brak danych, jeśli funkcja zwróciłaNone.
Uwagi
- Gwiazdka w nagłówku
def srednia(*liczby):sprawia, że wszystkie argumenty wywołania trafiają do jednej krotkiliczby. Np. po wywołaniusrednia(2, 4, 9)zmiennaliczbyto(2, 4, 9), a posrednia()— pusta krotka(). - Po krotce przejdziesz pętlą
for x in liczby:, a liczbę jej elementów podalen(liczby). - Gwiazdka przy wywołaniu działa odwrotnie:
srednia(*liczby)„rozpakowuje” listęliczbyna osobne argumenty. - Linia
liczby = [float(x) for x in input().split()]w kodzie startowym zamienia wczytaną linię na listę liczb — listy poznasz dokładnie w rozdziale 9. Noneto specjalna wartość oznaczająca „brak wyniku”. Sprawdzamy ją warunkiemwynik is None.
Przykład
2 4 9
5.00
$\frac{2 + 4 + 9}{3} = 5$.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 6
Zadania w tym rozdziale uczą pisania funkcji: definiowania ich instrukcją def, przekazywania argumentów i zwracania wyniku instrukcją return.
Konwencje wspólne:
- Każde zadanie (i każdy podpunkt a, b, c…) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Treść mówi, jaką funkcję napisać (nazwa, parametry, zwracana wartość). Program wczytuje dane, wywołuje funkcję i wypisuje zwrócony przez nią wynik.
- „Funkcja zwraca” oznacza użycie instrukcji
return. Funkcja nie wczytuje danych i nie wypisuje wyniku sama — robi to reszta programu (chyba że treść zadania mówi inaczej). - Sekcja „Kod startowy” zawiera gotowy szkielet: nagłówek funkcji oraz linie, które wczytują dane i wypisują wynik. Wystarczy uzupełnić ciało funkcji.
- Liczby na wejściu podane są w osobnych liniach — wczytuj je dokładnie w podanej kolejności.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono(brak)
Brak danych
Test 2
Nie uruchomiono7
7.00
Test 3
Nie uruchomiono1 2
1.50
Test 4
Nie uruchomiono-3 -1 4 10 0
2.00
Test 5
Nie uruchomiono1.5 2.25 3
2.25
Test 6
Nie uruchomiono10 20 30 40 50 60
35.00