-
Notifications
You must be signed in to change notification settings - Fork 4
Loops
Python has two primitive loop commands:
while
loops
for
loops
With the
while
loop we can execute a set of statements as long as a condition is true.
Print i
as long as i
is less than 6
:
i = 1
while i < 6:
print(i)
i += 1
Note: remember to increment
i
, or else the loop will continue forever.
The
while
loop requires relevant variables to be ready, in this example we need to define an indexing variable,i
, which we set to1
.
A
for
loop is used for iterating over a sequence (that is either a list, a tuple, a dictionary, a set, or a string).This is less like the
for
keyword in other programming languages, and works more like an iterator method as found in other object-orientated programming languages.With the
for
loop we can execute a set of statements, once for each item in alist
,tuple
,set
etc.
Print each fruit in a fruit list:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
car_dict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
for x, y in car_dict.items():
print(x, y)
if you don't want to use y
in the loop, write _
instead of y
:
for x, _ in car_dict.items():
print(x)
Even strings are iterable objects, they contain a sequence of characters.
Loop through the letters in the word "banana":
for x in "banana":
print(x)
With the
break
statement we can stop the loop even if thewhile
condition is true.
Exit the loop when 'i' is 3:
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
With the
break
statement we can stop the loop before it has looped through all the items.
Exit the loop when x
is "banana":
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
With the
continue
statement we can stop the current iteration, and continue with the next:
Continue to the next iteration if i
is 3:
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
Do not print banana:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
for
loops cannot be empty, but if you for some reason have afor
loop with no content, put in thepass
statement to avoid getting an error.
for x in [0, 1, 2]:
pass
With the
else
statement we can run a block of code once when the condition no longer is true:
Print a message once the condition is false:
i = 1
while i < 6:
print(i)
i += 1
else:
print("i is no longer less than 6")
The
for
loop does not require an indexing variable to set beforehand.Note: The
else
block will NOT be executed if the loop is stopped by abreak
statement.
Break the loop when x
is 3
, and see what happens with the else
block:
for x in range(6):
if x == 3: break
print(x)
else:
print("Finally finished!")
To loop through a set of code a specified number of times, we can use the
range()
function,The
range()
function returns a sequence of numbers, starting from0
by default, and increments by1
(by default), and ends at a specified number.
Using the range()
function:
for x in range(6):
# Note that range(6) is not the values of 0 to 6, but the values 0 to 5.
print(x)
The
range()
function defaults to0
as a starting value, however it is possible to specify the starting value by adding a parameter:range(2, 6)
, which means values from2
to6
(but not including 6).
Using the start parameter:
for x in range(2, 6):
print(x)
The
range()
function defaults to increment the sequence by1
, however it is possible to specify the increment value by adding a third parameter:range(2, 30, 3)
.
Increment the sequence with 3
(default is 1):
for x in range(2, 30, 3):
print(x)
casting range object to list:
print(list(range(1, 11)))
The
else
keyword in afor
loop specifies a block of code to be executed when the loop is finished.
Print all numbers from 0
to 5
, and print a message when the loop has ended:
for x in range(6):
print(x)
else:
print("Finally finished!")
A nested loop is a loop inside a loop.
The "inner loop" will be executed one time for each iteration of the "outer loop".
Print each adjective for every fruit:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
- Introduction
- Variables
- Data Types
- Numbers
- Casting
- Strings
- Booleans
- Operators
- Lists
- Tuple
- Sets
- Dictionaries
- Conditionals
- Loops
- Functions
- Lambda
- Classes
- Inheritance
- Iterators
- Multi‐Processing
- Multi‐Threading
- I/O Operations
- How can I check all the installed Python versions on Windows?
- Hello, world!
- Python literals
- Arithmetic operators and the hierarchy of priorities
- Variables
- Comments
- The input() function and string operators
Boolean values, conditional execution, loops, lists and list processing, logical and bitwise operations
- Comparison operators and conditional execution
- Loops
- [Logic and bit operations in Python]
- [Lists]
- [Sorting simple lists]
- [List processing]
- [Multidimensional arrays]
- Introduction
- Sorting Algorithms
- Search Algorithms
- Pattern-matching Algorithm
- Graph Algorithms
- Machine Learning Algorithms
- Encryption Algorithms
- Compression Algorithms
- Start a New Django Project
- Migration
- Start Server
- Requirements
- Other Commands
- Project Config
- Create Data Model
- Admin Panel
- Routing
- Views (Function Based)
- Views (Class Based)
- Django Template
- Model Managers and Querysets
- Form
- User model
- Authentification
- Send Email
- Flash messages
- Seed
- Organize Logic
- Django's Business Logic Services and Managers
- TestCase
- ASGI and WSGI
- Celery Framework
- Redis and Django
- Django Local Network Access
- Introduction
- API development
- API architecture
- lifecycle of APIs
- API Designing
- Implementing APIs
- Defining the API specification
- API Testing Tools
- API documentation
- API version
- REST APIs
- REST API URI naming rules
- Automated vs. Manual Testing
- Unit Tests vs. Integration Tests
- Choosing a Test Runner
- Writing Your First Test
- Executing Your First Test
- Testing for Django
- More Advanced Testing Scenarios
- Automating the Execution of Your Tests
- End-to-end
- Scenario
- Python Syntax
- Python OOP
- Python Developer position
- Python backend developer
- Clean Code
- Data Structures
- Algorithms
- Database
- PostgreSQL
- Redis
- Celery
- RabbitMQ
- Unit testing
- Web API
- REST API
- API documentation
- Django
- Django Advance
- Django ORM
- Django Models
- Django Views
- Django Rest Framework
- Django Rest Framework serializers
- Django Rest Framework views
- Django Rest Framework viewsets