Space Python Ładowanie Pythona…

Dowolna liczba wartości

Napisz kodŁatwy 2 etapy

Inżynierowie cały dzień sprawdzają średnie: trzy wyrywkowe odczyty wpisane ręcznie, cały przelot z bazy danych, czasem tylko dwie liczby. Funkcja, która chce listy, sprawia, że każde z tych wywołań jest trochę bardziej niezgrabne, niż musiałoby być.

Napisz średnią, która przyjmuje wartości tak, jak przychodzą, a potem daj jej opcję zaokrąglania.

Napisz average(*values), która przyjmuje dowolną liczbę liczb i zwraca ich średnią. Wywołaj ją z trzema luźnymi wartościami, a potem z rozpakowaną listą readings, i wypisz:

Trzy wyrywkowe pomiary: 401.0
Cały przelot: 419.5

W funkcji values to krotka, więc działają na niej sum() i len(). W drugim wywołaniu average(*readings) przekazuje pięć odczytów jako pięć osobnych argumentów.

Dwa rodzaje wywołań
Dowolna liczba wartości

Ukończ etap 1, aby odblokować ten etap.

Dodaj opcję zaokrąglania, decimals=1, po *values i zwracaj None, gdy nie ma żadnych wartości. Zaokrąglij cały przelot do dwóch miejsc i dodaj wywołanie bez niczego w środku:

Trzy wyrywkowe pomiary: 401.0
Cały przelot: 419.5
Brak wartości: None

Ponieważ stoi po *values, decimals można przekazać tylko po nazwie: average(*readings, decimals=2).

Zaokrąglij i obsłuż brak wartości
decimals tylko po nazwie
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Dowolna liczba argumentów *args

*args zbiera dowolną liczbę argumentów pozycyjnych do krotki. Przydatne gdy nie wiesz ile argumentów otrzymasz.
dowolna-liczba-argumentow-args.py
# *args - dowolna liczba argumentów

def sensor_report(*readings):
    """Przetwarza dowolną liczbę odczytów."""
    print(f"Otrzymano {len(readings)} odczytów:")
    for i, reading in enumerate(readings, 1):
        print(f"  Sensor {i}: {reading}")
    if readings:
        average = sum(readings) / len(readings)
        print(f"Średnia: {average:.2f}")
    print()

# Różna liczba argumentów
sensor_report(10, 15, 12)
sensor_report(20, 18, 22, 19, 21)
sensor_report(100)
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].