List of Keywords in Python
List of Keywords in Python
Keywords are the reserved words in Python. We cannot use a keyword as a variable name,
The above keywords may get altered in different versions of Python. Some extra might get
added or some might be removed. You can always get the list of keywords in your current
True, False
True and False are truth values in Python. They are the results of comparison operations or
>>> 1 == 1
True
>>> 5 > 3
True
>>> True or False
True
>>> 10 <= 1
False
>>> 3 > 7
False
>>> True and False
False
Here we can see that the first three statements are true so the interpreter returns True and
returns False for the remaining three statements. True and False in python is same as 1 and 0.
None
None is a special constant in Python that represents the absence of a value or a null value.
It is an object of its own datatype, the NoneType. We cannot create multiple None objects but
>>> None == 0
False
>>> None == []
False
>>> None == False
False
>>> x = None
>>> y = None
>>> x == y
True
Void functions that do not return anything will return a None object automatically. None is also
returned by functions in which the program flow does not encounter a return statement. For
example:
def a_void_function():
a=1
b=2
c=a+b
x = a_void_function()
print(x)
Output
None
This program has a function that does not return a value, although it does some operations
inside. So when we print x, we get None which is returned automatically (implicitly). Similarly,
def improper_return_function(a):
if (a % 2) == 0:
return True
x = improper_return_function(3)
print(x)
Output
None
Although this function has a return statement, it is not reached in every case. The function will
and, or , not
and, or, not are the logical operators in Python. and will result into True only if both the
operands are True. The truth table for and is given below:
A B A and B
or will result into True if any of the operands is True. The truth table for or is given below:
A B A or B
not operator is used to invert the truth value. The truth table for not is given below:
A not A
True False
False True
as
as is used to create an alias while importing a module. It means giving a different name (user-
Here we imported the math module by giving it the name myAlias. Now we can refer to
the math module with this name. Using this name we calculated cos(pi) and got -1.0 as the
answer.
assert
>>> a = 4
>>> assert a < 5
>>> assert a > 5
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
AssertionError
For our better understanding, we can also provide a message to be printed with
the AssertionError.
>>> a = 4
>>> assert a > 5, "The value of a is too small"
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
AssertionError: The value of a is too small
is equivalent to,
if not condition:
raise AssertionError(message)
async, await
The async and await keywords are provided by the asyncio library in Python. They are used to
import asyncio
asyncio.run(main())
In the above program, the async keyword specifies that the function will be executed
asynchronously.
Here, first Hello is printed. The await keyword makes the program wait for 1 second. And then
break, continue
break and continue are used inside for and while loops to alter their normal behavior.
break will end the smallest loop it is in and control flows to the statement immediately below the
loop. continue causes to end the current iteration of the loop, but not the whole loop.
for i in range(1,11):
if i == 5:
break
print(i)
Output
1
2
3
4
Here, the for loop intends to print numbers from 1 to 10. But the if condition is met when i is
equal to 5 and we break from the loop. Thus, only the range 1 to 4 is printed.
for i in range(1,11):
if i == 5:
continue
print(i)
Output
1
2
3
4
6
7
8
9
10
Here we use continue for the same program. So, when the condition is met, that iteration is
skipped. But we do not exit the loop. Hence, all the values except 5 are printed out.
class
class is used to define a new user-defined class in Python.
Class is a collection of related attributes and methods that try to represent a real-world situation.
This idea of putting data and functions together in a class is central to the concept of object-
Classes can be defined anywhere in a program. But it is a good practice to define a single class
class ExampleClass:
def function1(parameters):
…
def function2(parameters):
…
def
Function is a block of related statements, which together does some specific task. It helps us
organize code into manageable chunks and also to do some repetitive task.
def function_name(parameters):
…
del
del is used to delete the reference to an object. Everything is object in Python. We can delete a
>>> a = b = 5
>>> del a
>>> a
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
NameError: name 'a' is not defined
>>> b
5
Here we can see that the reference of the variable a was deleted. So, it is no longer defined.
>>> a = ['x','y','z']
>>> del a[1]
>>> a
['x', 'z']
When we want to test some condition and execute a block only if the condition is true, then we
use if and elif. elif is short for else if. else is the block which is executed if the condition is false.
def if_example(a):
if a == 1:
print('One')
elif a == 2:
print('Two')
else:
print('Something else')
if_example(2)
if_example(4)
if_example(1)
Output
Two
Something else
One
Here, the function checks the input number and prints the result if it is 1 or 2. Any input other
than this will cause the else part of the code to execute.
Exceptions are basically errors that suggests something went wrong while executing our
program. IOError, ValueError, ZeroDivisionError, ImportError, NameError, TypeError etc. are few
examples of exception in Python. try...except blocks are used to catch exceptions in Python.
We can raise an exception explicitly with the raise keyword. Following is an example:
def reciprocal(num):
try:
r = 1/num
except:
print('Exception caught')
return
return r
print(reciprocal(10))
print(reciprocal(0))
Output
0.1
Exception caught
None
Here, the function reciprocal() returns the reciprocal of the input number.
When we enter 10, we get the normal output of 0.1. But when we input 0, a ZeroDivisionError is
raised automatically.
This is caught by our try…except block and we return None. We could have also raised
the ZeroDivisionError explicitly by checking the input and handled it elsewhere as follows:
if num == 0:
raise ZeroDivisionError('cannot divide')
finally
Using finally ensures that the block of code inside it gets executed even if there is an unhandled
try:
Try-block
except exception1:
Exception1-block
except exception2:
Exception2-block
else:
Else-block
finally:
Finally-block
Here if there is an exception in the Try-block, it is handled in the except or else block. But no
matter in what order the execution flows, we can rest assured that the Finally-block is executed
for
for is used for looping. Generally we use for when we know the number of times we want to
loop.
In Python we can use it with any type of sequences like a list or a string. Here is an example in
which for is used to traverse through a list of names:
names = ['John','Monica','Steven','Robin']
for i in names:
print('Hello '+i)
Output
Hello John
Hello Monica
Hello Steven
Hello Robin
from, import
import keyword is used to import modules into the current namespace. from…import is used to
import specific attributes or functions into the current namespace. For example:
import math
will import the math module. Now we can use the cos() function inside it as math.cos(). But if we
wanted to import just the cos() function, this can done using from as
from math import cos
now we can use the function simply as cos(), no need to write math.cos().
global
global is used to declare that a variable inside the function is global (outside the function).
If we need to read the value of a global variable, it is not necessary to define it as global. This is
understood.
If we need to modify the value of a global variable inside a function, then we must declare it
with global. Otherwise, a local variable with that name is created.
globvar = 10
def read1():
print(globvar)
def write1():
global globvar
globvar = 5
def write2():
globvar = 15
read1()
write1()
read1()
write2()
read1()
Output
10
5
5
Here, the read1() function is just reading the value of globvar. So, we do not need to declare it
as global. But the write1() function is modifying the value, so we need to declare the variable
as global.
We can see in our output that the modification did take place (10 is changed to 5).
The write2() also tries to modify this value. But we have not declared it as global.
Hence, a new local variable globvar is created which is not visible outside this function. Although
we modify this local variable to 15, the global variable remains unchanged. This is clearly visible
in our output.
in
in is used to test if a sequence (list, tuple, string etc.) contains a value. It returns True if the
>>> a = [1, 2, 3, 4, 5]
>>> 5 in a
True
>>> 10 in a
False
for i in 'hello':
print(i)
Output
h
e
l
l
o
is
is is used in Python for testing object identity. While the == operator is used to test if two
variables are equal or not, is is used to test if the two variables refer to the same object.
We know that there is only one instance of True, False and None in Python, so they are identical.
>>> [] == []
True
>>> [] is []
False
>>> {} == {}
True
>>> {} is {}
False
An empty list or dictionary is equal to another empty one. But they are not identical objects as
they are located separately in memory. This is because list and dictionary are mutable (value
can be changed).
Unlike list and dictionary, string and tuple are immutable (value cannot be altered once defined).
Hence, two equal string or tuple are identical as well. They refer to the same memory location.
lambda
lambda is used to create an anonymous function (function with no name). It is an inline function
that does not contain a return statement. It consists of an expression that is evaluated and
a = lambda x: x*2
for i in range(1,6):
print(a(i))
Output
2
4
6
8
10
Here, we have created an inline function that doubles the value, using the lambda statement.
nonlocal
The use of nonlocal keyword is very much similar to the global keyword. nonlocal is used to
declare that a variable inside a nested function (function inside a function) is not local to it,
meaning it lies in the outer inclosing function. If we need to modify the value of a non-local
variable inside a nested function, then we must declare it with nonlocal. Otherwise a local
variable with that name is created inside the nested function. Following example will help us
clarify this.
def outer_function():
a=5
def inner_function():
nonlocal a
a = 10
print("Inner function: ",a)
inner_function()
print("Outer function: ",a)
outer_function()
Output
Inner function: 10
Outer function: 10
Hence, we see from the output that the variable was successfully modified inside the
nested inner_function(). The result of not using the nonlocal keyword is as follows:
def outer_function():
a=5
def inner_function():
a = 10
print("Inner function: ",a)
inner_function()
print("Outer function: ",a)
outer_function()
Output
Inner function: 10
Outer function: 5
Here, we do not declare that the variable a inside the nested function is nonlocal. Hence, a new
local variable with the same name is created, but the non-local a is not modified as seen in our
output.
pass
placeholder.
Suppose we have a function that is not implemented yet, but we want to implement it in the
def function(args):
in the middle of a program will give us IndentationError. Instead of this, we construct a blank
def function(args):
pass
class example:
pass
return
If we do not return a value explicitly, None is returned automatically. This is verified with the
following example.
def func_return():
a = 10
return a
def no_return():
a = 10
print(func_return())
print(no_return())
Output
10
None
while
The statements inside a while loop continue to execute until the condition for the while loop
i=5
while(i):
print(i)
i=i–1
Output
5
4
3
2
1
With
with statement is used to wrap the execution of a block of code within methods defined by the
context manager.
Context manager is a class that implements __enter__ and __exit__ methods. Use
of with statement ensures that the __exit__ method is called at the end of the nested block. This
This example writes the text Hello world! to the file example.txt. File objects
have __enter__ and __exit__ method defined within them, so they act as their own context
manager.
First the __enter__ method is called, then the code within with statement is executed and finally
the __exit__ method is called. __exit__ method is called even if there is an error. It basically
Yield
yield is used inside a function like a return statement. But yield returns a generator.
Generator is an iterator that generates one item at a time. A large list of values will take up a lot
of memory. Generators are useful in this situation as it generates only one value at a time
99. We can generate the numbers using the next() function as shown below.
>>> next(g)
1
>>> next(g)
2
>>> next(g)
4
>>> next(g)
8
>>> next(g)
16
And so on… This type of generator is returned by the yield statement from a function. Here is an
example.
def generator():
for i in range(6):
yield i*i
g = generator()
for i in g:
print(i)
Output
0
1
4
9
16