The module function
•
•
•
•
timeit.timeit(stmt, setup, timer, number) accepts four arguments:•
stmt which is the statement you want to measure; it defaults to ‘pass’.•
setup which is the code that you run before running the stmt; it defaults to ‘pass’. We generally use this to import the required modules for our code.•
timer which is a timeit.Timer object; it usually has a sensible default value so you don’t have to worry about it.•
number which is the number of executions you’d like to run the stmt.Python '!=' Is Not 'is not': Comparing Objects in Python
In this tutorial, you’ll learn:
• What the difference is between object equality and identity
• When to use equality and identity operators to compare objects
• What these Python operators do under the hood
• Why using is and is not to compare values leads to unexpected behavior
• How to write a custom
https://realpython.com/python-is-identity-vs-equality/
In this tutorial, you’ll learn:
• What the difference is between object equality and identity
• When to use equality and identity operators to compare objects
• What these Python operators do under the hood
• Why using is and is not to compare values leads to unexpected behavior
• How to write a custom
__eq__() class method to define equality operator behaviorhttps://realpython.com/python-is-identity-vs-equality/
Realpython
Python != Is Not is not: Comparing Objects in Python – Real Python
In this quick and practical tutorial, you'll learn when to use the Python is, is not, == and != operators. You'll see what these comparison operators do under the hood, dive into some quirks of object identity and interning, and define a custom class.
This media is not supported in your browser
VIEW IN TELEGRAM
None is evaluated as False so you can write
>>> results = None
>>> print(results or "No results")# "is" vs "=="
True
True
True
False
# • "is" expressions evaluate to True if two
# variables point to the same object
# • "==" evaluates to True if the objects
# referred to by the variables are equal
>>> a = [1, 2, 3]
>>> b = a
>>> a is bTrue
>>> a == bTrue
>>> c = list(a)
>>> a == cTrue
>>> a is cFalse
# • "is" expressions evaluate to True if two
# variables point to the same object
# • "==" evaluates to True if the objects
# referred to by the variables are equal
# Functions are first-class citizens in Python:
# They can be passed as arguments to other functions,
# returned as values from other functions, and
# assigned to variables and stored in data structures.
<function myfunc at 0x107012230>
5
# They can be passed as arguments to other functions,
# returned as values from other functions, and
# assigned to variables and stored in data structures.
>>> def myfunc(a, b):
... return a + b
...
>>> funcs = [myfunc]
>>> funcs[0]<function myfunc at 0x107012230>
>>> funcs[0](2, 3)5
No switch case in Python. However, we can emulate it with the help of first class function feature of Python.
# Because Python has first-class functions they can
# be used to emulate switch/case statements
16
16
None
None
# be used to emulate switch/case statements
def dispatch_if(operator, x, y):
if operator == 'add':
return x + y
elif operator == 'sub':
return x - y
elif operator == 'mul':
return x * y
elif operator == 'div':
return x / y
else:
return None
def dispatch_dict(operator, x, y):
return {
'add': lambda: x + y,
'sub': lambda: x - y,
'mul': lambda: x * y,
'div': lambda: x / y,
}.get(operator, lambda: None)()
>>> dispatch_if('mul', 2, 8)16
>>> dispatch_dict('mul', 2, 8)16
>>> dispatch_if('unknown', 2, 8)None
>>> dispatch_dict('unknown', 2, 8)None
# Python's list slice syntax can be used without indices
# for a few fun and useful things:
# You can clear all elements from a list:
[]
# You can replace all elements of a list
# without creating a new list object:
[7, 8, 9]
[7, 8, 9]
True
# You can also create a (shallow) copy of a list:
[7, 8, 9]
False
# for a few fun and useful things:
# You can clear all elements from a list:
>>> lst = [1, 2, 3, 4, 5]
>>> del lst[:]
>>> lst[]
# You can replace all elements of a list
# without creating a new list object:
>>> a = lst
>>> lst[:] = [7, 8, 9]
>>> lst[7, 8, 9]
>>> a[7, 8, 9]
>>> a is lstTrue
# You can also create a (shallow) copy of a list:
>>> b = lst[:]
>>> b[7, 8, 9]
>>> b is lstFalse
# Python's list comprehensions are awesome.
# This is equivalent to:
# Example:
[0, 4, 16, 36, 64]
vals = [expression
for value in collection
if condition]# This is equivalent to:
vals = []
for value in collection:
if condition:
vals.append(expression)
# Example:
>>> even_squares = [x * x for x in range(10) if not x % 2]
>>> even_squares[0, 4, 16, 36, 64]
This media is not supported in your browser
VIEW IN TELEGRAM
# Python has a HTTP server built into the
# standard library. This is super handy for
# previewing websites.
# Python 3.x
# Python 2.x
# (This will serve the current directory at
# http://localhost:8000)
# standard library. This is super handy for
# previewing websites.
# Python 3.x
$ python3 -m http.server# Python 2.x
$ python -m SimpleHTTPServer 8000# (This will serve the current directory at
# http://localhost:8000)
# Python 3.5+ supports 'type
# annotations' that can be
# used with tools like Mypy
# to write statically typed Python:
# annotations' that can be
# used with tools like Mypy
# to write statically typed Python:
def my_add(a: int, b: int) -> int:
return a + b