Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Generator Functions | Function Return Value Specification
Python Functions Tutorial
course content

Contenido del Curso

Python Functions Tutorial

Python Functions Tutorial

1. What is Function in Python?
2. Positional and Optional Arguments
3. Arbitrary Arguments
4. Function Return Value Specification
5. Recursion and Lambda Functions

bookGenerator Functions

A generator function is a special type of function that uses the yield keyword instead of return to generate a sequence of values. When a generator function is called, it returns an iterator object, which can be iterated over to retrieve values one at a time.
The main advantage of generator functions is their memory efficiency. Generator functions generate values on-the-fly as they are needed, rather than generating the entire sequence upfront. This makes them memory efficient, especially when dealing with large datasets or infinite sequences.

Let's look at the example of the simple generator:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling `next()` to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling `next()` to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Let's break down each step in more detail:

  • Defining the cat name generator;

In this step, we create a function cat_name_generator which is a generator. The generator uses the keyword yield to return values one by one. In our case, the generator yields cat names from the cat_names list.

  • Creating an instance of the generator;

Here, we create an instance of the generator by calling the cat_name_generator() function. Now, cat_name_gen is a generator object that can be used to retrieve cat names.

  • Calling next() to get the first name;

We call the next() function to retrieve the first value from the generator. The generator runs up to the first yield statement, returns the value ("Whiskers"), and pauses. This value is assigned to the variable first_cat_name, and we print it using print().

After executing these steps, we get the following output:

This way, we obtained the first cat name using the cat name generator and the next() function.

  • Calling next() to get the second name;

Now, we call next() again to retrieve the next value from the generator. The generator resumes from where it left off (after the first yield). If there are no more values to return, next() returns the error. After executing these steps, we get the following output:

Therefore, we obtained the second cat name "Fluffy".

Tarea

Create a generator that generates unique identifiers. The identifiers can be, for example, strings in the format "ID_1", "ID_2", and so on. Each time you call next(), the generator should return a new unique identifier.

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
toggle bottom row

bookGenerator Functions

A generator function is a special type of function that uses the yield keyword instead of return to generate a sequence of values. When a generator function is called, it returns an iterator object, which can be iterated over to retrieve values one at a time.
The main advantage of generator functions is their memory efficiency. Generator functions generate values on-the-fly as they are needed, rather than generating the entire sequence upfront. This makes them memory efficient, especially when dealing with large datasets or infinite sequences.

Let's look at the example of the simple generator:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling `next()` to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling `next()` to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Let's break down each step in more detail:

  • Defining the cat name generator;

In this step, we create a function cat_name_generator which is a generator. The generator uses the keyword yield to return values one by one. In our case, the generator yields cat names from the cat_names list.

  • Creating an instance of the generator;

Here, we create an instance of the generator by calling the cat_name_generator() function. Now, cat_name_gen is a generator object that can be used to retrieve cat names.

  • Calling next() to get the first name;

We call the next() function to retrieve the first value from the generator. The generator runs up to the first yield statement, returns the value ("Whiskers"), and pauses. This value is assigned to the variable first_cat_name, and we print it using print().

After executing these steps, we get the following output:

This way, we obtained the first cat name using the cat name generator and the next() function.

  • Calling next() to get the second name;

Now, we call next() again to retrieve the next value from the generator. The generator resumes from where it left off (after the first yield). If there are no more values to return, next() returns the error. After executing these steps, we get the following output:

Therefore, we obtained the second cat name "Fluffy".

Tarea

Create a generator that generates unique identifiers. The identifiers can be, for example, strings in the format "ID_1", "ID_2", and so on. Each time you call next(), the generator should return a new unique identifier.

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
toggle bottom row

bookGenerator Functions

A generator function is a special type of function that uses the yield keyword instead of return to generate a sequence of values. When a generator function is called, it returns an iterator object, which can be iterated over to retrieve values one at a time.
The main advantage of generator functions is their memory efficiency. Generator functions generate values on-the-fly as they are needed, rather than generating the entire sequence upfront. This makes them memory efficient, especially when dealing with large datasets or infinite sequences.

Let's look at the example of the simple generator:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling `next()` to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling `next()` to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Let's break down each step in more detail:

  • Defining the cat name generator;

In this step, we create a function cat_name_generator which is a generator. The generator uses the keyword yield to return values one by one. In our case, the generator yields cat names from the cat_names list.

  • Creating an instance of the generator;

Here, we create an instance of the generator by calling the cat_name_generator() function. Now, cat_name_gen is a generator object that can be used to retrieve cat names.

  • Calling next() to get the first name;

We call the next() function to retrieve the first value from the generator. The generator runs up to the first yield statement, returns the value ("Whiskers"), and pauses. This value is assigned to the variable first_cat_name, and we print it using print().

After executing these steps, we get the following output:

This way, we obtained the first cat name using the cat name generator and the next() function.

  • Calling next() to get the second name;

Now, we call next() again to retrieve the next value from the generator. The generator resumes from where it left off (after the first yield). If there are no more values to return, next() returns the error. After executing these steps, we get the following output:

Therefore, we obtained the second cat name "Fluffy".

Tarea

Create a generator that generates unique identifiers. The identifiers can be, for example, strings in the format "ID_1", "ID_2", and so on. Each time you call next(), the generator should return a new unique identifier.

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

A generator function is a special type of function that uses the yield keyword instead of return to generate a sequence of values. When a generator function is called, it returns an iterator object, which can be iterated over to retrieve values one at a time.
The main advantage of generator functions is their memory efficiency. Generator functions generate values on-the-fly as they are needed, rather than generating the entire sequence upfront. This makes them memory efficient, especially when dealing with large datasets or infinite sequences.

Let's look at the example of the simple generator:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling `next()` to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling `next()` to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Let's break down each step in more detail:

  • Defining the cat name generator;

In this step, we create a function cat_name_generator which is a generator. The generator uses the keyword yield to return values one by one. In our case, the generator yields cat names from the cat_names list.

  • Creating an instance of the generator;

Here, we create an instance of the generator by calling the cat_name_generator() function. Now, cat_name_gen is a generator object that can be used to retrieve cat names.

  • Calling next() to get the first name;

We call the next() function to retrieve the first value from the generator. The generator runs up to the first yield statement, returns the value ("Whiskers"), and pauses. This value is assigned to the variable first_cat_name, and we print it using print().

After executing these steps, we get the following output:

This way, we obtained the first cat name using the cat name generator and the next() function.

  • Calling next() to get the second name;

Now, we call next() again to retrieve the next value from the generator. The generator resumes from where it left off (after the first yield). If there are no more values to return, next() returns the error. After executing these steps, we get the following output:

Therefore, we obtained the second cat name "Fluffy".

Tarea

Create a generator that generates unique identifiers. The identifiers can be, for example, strings in the format "ID_1", "ID_2", and so on. Each time you call next(), the generator should return a new unique identifier.

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
Sección 4. Capítulo 4
Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
some-alt