Movatterモバイル変換


[0]ホーム

URL:


Python Control Flow

Python control flow

Control flow is the order in which individual statements, instructions, or function calls are executed or evaluated. The control flow of a Python program is regulated by conditional statements, loops, and function calls.

Comparison Operators

OperatorMeaning
==Equal to
!=Not equal to
<Less than
>Greater Than
<=Less than or Equal to
>=Greater than or Equal to

These operators evaluate to True or False depending on the values you give them.

Examples:

>>>42==42True>>>40==42False>>>'hello'=='hello'True>>>'hello'=='Hello'False>>>'dog'!='cat'True>>>42==42.0True>>>42=='42'False

Boolean Operators

There are three Boolean operators:and,or, andnot. In the order of precedence, highest to lowest they arenot,and andor.

Theand Operator’sTruth Table:

ExpressionEvaluates to
True and TrueTrue
True and FalseFalse
False and TrueFalse
False and FalseFalse

Theor Operator’sTruth Table:

ExpressionEvaluates to
True or TrueTrue
True or FalseTrue
False or TrueTrue
False or FalseFalse

Thenot Operator’sTruth Table:

ExpressionEvaluates to
not TrueFalse
not FalseTrue

Mixing Operators

You can mix boolean and comparison operators:

>>>(4<5)and(5<6)True>>>(4<5)and(9<6)False>>>(1==2)or(2==2)True

Also, you can mix use multiple Boolean operators in an expression, along with the comparison operators:

>>>2+2==4andnot2+2==5and2*2==2+2True>>># In the statement below 3 < 4 and 5 > 5 gets executed first evaluating to False>>># Then 5 > 4 returns True so the results after True or False is True>>>5>4or3<4and5>5True>>># Now the statement within parentheses gets executed first so True and False returns False.>>>(5>4or3<4)and5>5False

if Statements

Theif statement evaluates an expression, and if that expression isTrue, it then executes the following indented code:

>>> name='Debora'>>>if name=='Debora':...print('Hi, Debora')...# Hi, Debora>>>if name!='George':...print('You are not George')...# You are not George

Theelse statement executes only if the evaluation of theif and all theelif expressions areFalse:

>>> name='Debora'>>>if name=='George':...print('Hi, George.')...else:...print('You are not George')...# You are not George

Only after theif statement expression isFalse, theelif statement is evaluated and executed:

>>> name='George'>>>if name=='Debora':...print('Hi Debora!')...elif name=='George':...print('Hi George!')...# Hi George!

theelif andelse parts are optional.

>>> name='Antony'>>>if name=='Debora':...print('Hi Debora!')...elif name=='George':...print('Hi George!')...else:...print('Who are you?')...# Who are you?

Ternary Conditional Operator

Many programming languages have a ternary operator, which define a conditional expression. The most common usage is to make a terse, simple conditional assignment statement. In other words, it offers one-line code to evaluate the first expression if the condition is true, and otherwise it evaluates the second expression.

<expression1> if <condition> else <expression2>

Example:

>>> age=15>>># this if statement:>>>if age<18:...print('kid')...else:...print('adult')...# output: kid>>># is equivalent to this ternary operator:>>>print('kid'if age<18else'adult')# output: kid

Ternary operators can be chained:

>>> age=15>>># this ternary operator:>>>print('kid'if age<13else'teen'if age<18else'adult')>>># is equivalent to this if statement:>>>if age<13:...print('kid')...else:...if age<18:...print('teen')...else:...print('adult')...# output: teen

Switch-Case Statement

Switch-Case statements

In computer programming languages, a switch statement is a type of selection control mechanism used to allow the value of a variable or expression to change the control flow of program execution via search and map.

TheSwitch-Case statements, orStructural Pattern Matching, was firstly introduced in 2020 viaPEP 622, and then officially released withPython 3.10 in September 2022.

Official Tutorial

ThePEP 636 provides an official tutorial for the Python Pattern matching or Switch-Case statements.

Matching single values

>>> response_code=201>>>match response_code:...case200:...print("OK")...case201:...print("Created")...case300:...print("Multiple Choices")...case307:...print("Temporary Redirect")...case404:...print("404 Not Found")...case500:...print("Internal Server Error")...case502:...print("502 Bad Gateway")...# Created

Matching with the or Pattern

In this example, the pipe character (| oror) allows python to return the same response for two or more cases.

>>> response_code=502>>>match response_code:...case200|201:...print("OK")...case300|307:...print("Redirect")...case400|401:...print("Bad Request")...case500|502:...print("Internal Server Error")...# Internal Server Error

Matching by the length of an Iterable

>>> today_responses=[200,300,404,500]>>>match today_responses:...case[a]:...print(f"One response today:{a}")...case[a, b]:...print(f"Two responses today:{a} and{b}")...case[a, b,*rest]:...print(f"All responses:{a},{b},{rest}")...# All responses: 200, 300, [404, 500]

Default value

The underscore symbol (_) is used to define a default case:

>>> response_code=800>>>match response_code:...case200|201:...print("OK")...case300|307:...print("Redirect")...case400|401:...print("Bad Request")...case500|502:...print("Internal Server Error")...case_:...print("Invalid Code")...# Invalid Code

Matching Builtin Classes

>>> response_code="300">>>match response_code:...caseint():...print('Code is a number')...casestr():...print('Code is a string')...case_:...print('Code is neither a string nor a number')...# Code is a string

Guarding Match-Case Statements

>>> response_code=300>>>match response_code:...caseint():...if response_code>99and response_code<500:...print('Code is a valid number')...case_:...print('Code is an invalid number')...# Code is a valid number

while Loop Statements

The while statement is used for repeated execution as long as an expression isTrue:

>>> spam=0>>>while spam<5:...print('Hello, world.')...     spam= spam+1...# Hello, world.# Hello, world.# Hello, world.# Hello, world.# Hello, world.

break Statements

If the execution reaches abreak statement, it immediately exits thewhile loop’s clause:

>>>whileTrue:...     name=input('Please type your name: ')...if name=='your name':...break...>>>print('Thank you!')# Please type your name: your name# Thank you!

continue Statements

When the program execution reaches acontinue statement, the program execution immediately jumps back to the start of the loop.

>>>whileTrue:...     name=input('Who are you? ')...if name!='Joe':...continue...     password=input('Password? (It is a fish.): ')...if password=='swordfish':...break...>>>print('Access granted.')# Who are you? Charles# Who are you? Debora# Who are you? Joe# Password? (It is a fish.): swordfish# Access granted.

For loop

Thefor loop iterates over alist,tuple,dictionary,set orstring:

>>> pets=['Bella','Milo','Loki']>>>for petin pets:...print(pet)...# Bella# Milo# Loki

The range() function

Therange() function returns a sequence of numbers. It starts from 0, increments by 1, and stops before a specified number:

>>>for iinrange(5):...print(f'Will stop at 5! or 4? ({i})')...# Will stop at 5! or 4? (0)# Will stop at 5! or 4? (1)# Will stop at 5! or 4? (2)# Will stop at 5! or 4? (3)# Will stop at 5! or 4? (4)

Therange() function can also modify its 3 defaults arguments. The first two will be thestart andstop values, and the third will be thestep argument. The step is the amount that the variable is increased by after each iteration.

# range(start, stop, step)>>>for iinrange(0,10,2):...print(i)...# 0# 2# 4# 6# 8

You can even use a negative number for the step argument to make the for loop count down instead of up.

>>>for iinrange(5,-1,-1):...print(i)...# 5# 4# 3# 2# 1# 0

For else statement

This allows to specify a statement to execute in case of the full loop has been executed. Only useful when abreak condition can occur in the loop:

>>>for iin[1,2,3,4,5]:...if i==3:...break...else:...print("only executed when no item is equal to 3")

Ending a Program with sys.exit()

exit() function allows exiting Python.

>>>import sys>>>whileTrue:...     feedback=input('Type exit to exit: ')...if feedback=='exit':...print(f'You typed{feedback}.')...         sys.exit()...# Type exit to exit: open# Type exit to exit: close# Type exit to exit: exit# You typed exit

Relevant links

Previous pageBuilt-in functions Next pageFunctions

Subscribe to pythoncheatsheet.org

Join16,702+ Python developersin a two times a month and bullshit freepublication, full of interesting, relevant links.


[8]ページ先頭

©2009-2025 Movatter.jp