Menu
Coddy logo textTech

Funkcje iter() i next()

Lekcja 2 z 13 w kursie Iteratory w Pythonie w Coddy.

W Pythonie funkcje iter() i next() są podstawą pracy z iteratorami. Przyjrzyjmy się tym funkcjom i zobaczmy, jak używać ich do tworzenia i obsługi podstawowych iteratorów.

Funkcja iter()

Funkcja iter() służy do tworzenia obiektu iteratora z obiektu iterowalnego. Jej podstawowa składnia to:

iter(iterable)

Wywołana na obiekcie iterowalnym funkcja iter() zwraca obiekt iteratora, którego można używać do uzyskiwania kolejnych elementów obiektu iterowalnego.

Funkcja next()

Funkcja next() służy do pobierania następnego elementu z iteratora. Jej podstawowa składnia to:

next(iterator)

Za każdym razem, gdy wywołasz next() na iteratorze, funkcja zwróci następny element z sekwencji. Jeśli nie ma już więcej elementów, zgłosi wyjątek StopIteration.

Używanie iter() i next()

Zobaczmy, jak te funkcje współpracują ze sobą:

# Utwórz listę (obiekt iterowalny)
fruits = ['apple', 'banana', 'cherry']

# Utwórz iterator na podstawie listy
fruit_iterator = iter(fruits)

# Użyj next(), aby pobrać elementy z iteratora
print(next(fruit_iterator))  # Wynik: apple
print(next(fruit_iterator))  # Wynik: banana
print(next(fruit_iterator))  # Wynik: cherry
# print(next(fruit_iterator))  # Spowodowałoby to zgłoszenie wyjątku StopIteration

W tym przykładzie tworzymy iterator fruit_iterator z listy fruits, używając funkcji iter(). Następnie używamy funkcji next(), aby pobrać każdy element iteratora.

Tworzenie podstawowego iteratora niestandardowego

Możesz także utworzyć własny iterator, implementując metody __iter__() i __next__() w klasie:

class CountUp:
    def __init__(self, start, end):
        self.current = start
        self.end = end
    
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.current > self.end:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1

# Użycie własnego iteratora
counter = CountUp(1, 3)
print(next(counter))  # Wynik: 1
print(next(counter))  # Wynik: 2
print(next(counter))  # Wynik: 3

Ten niestandardowy iterator CountUp zlicza w górę od liczby początkowej do końcowej. Metoda __iter__() zwraca sam obiekt iteratora, a metoda __next__() określa sposób pobierania następnej wartości.

Zrozumienie działania iter() i next() jest kluczowe podczas pracy z iteratorami w Pythonie, ponieważ pozwala efektywnie tworzyć sekwencje danych i nimi zarządzać.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Łatwy

Utwórz iterator, który generuje ciąg liczb parzystych aż do podanego limitu. Użyj funkcji iter() i next(), aby zaimplementować ten iterator.

Otrzymujesz:

  • Liczbę całkowitą limit jako dane wejściowe

Twój iterator powinien:

  • Generować liczby parzyste, zaczynając od 2
  • Zatrzymać się, gdy osiągnie podany limit lub go przekroczy

Wypisz każdą wygenerowaną liczbę parzystą w nowej linii.

Dane wejściowe zostaną przekazane jako ciąg znaków reprezentujący liczbę całkowitą.

Spróbuj swoich sił

# Wczytaj dane wejściowe
limit = int(input())

# TODO: Napisz tutaj swój kod
# Zaimplementuj iterator liczb parzystych, używając iter() i next()

# Przykład, jak wyświetlić wynik
# print(next_even_number)

Wszystkie lekcje w sekcji Iteratory w Pythonie

Poćwicz samodzielnie: Kompilator Python online