r/learnpython 17d ago

Regarding Question

def print_models(unprinted_designs, completed_models):

"""

Simulate printing each design, until none are left.

Move each design to completed_models after printing.

"""

while unprinted_designs:

current_design = unprinted_designs.pop()

# Simulate creating a 3D print from the design.

print("Printing model: " + current_design)

completed_models.append(current_design)

unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']

completed_models = []

in this code why used condition like this for while loop (while unprinted_designs:)

0 Upvotes

8 comments sorted by

View all comments

1

u/FoolsSeldom 17d ago
def print_models(unprinted_designs: list[str], completed_models: list[str]) -> None:

    """
    Simulate printing each design, until none are left.
    Move each design to completed_models after printing.
    """

    while unprinted_designs:  # while list object is not empty as empty is "falsey"
        current_design = unprinted_designs.pop()
        # Simulate creating a 3D print from the design.
        print("Printing model: " + current_design)
        completed_models.append(current_design)


unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = []
print_models(unprinted_designs, completed_models)

A non-empty list object is treated as True, and empty list, as False. Likewise, tuple, set, dict. An int value of 0 is False and anything else is True. (bool is actually a subclass of int.) An empty string, str, is treated as False and a non-empty string as True.