#28 Python Programming – Conditional Statements and Dictionary

Python Programming – Conditional statements and Dictionary

Python

Python conditional statements

Python Conditional Statements

if statement

  • The if statement contains a logical expression using which data is compared and  a decision is made based  on the result of  the comparison

if( condition-expression ):

Syntax :

if( condition-expression ):

    Operation Block

  • If the Boolean expression evaluates to True, then the block of statement(s) inside the if statement is executed.
  • If Boolean expression evaluates to False, then the first set of code after the end of the if statement(s) is executed.
  • Note: The indentation is important in python. After conditional statement, on the next line followed by indent, write down true block operation

if..else style

  • An else statement can be combined with an if statement
  • If the condition is not True , the control will go to the else block part

Syntax :

if (condition):

True Block operation

else:

False Block operation

  • Note: After the else statement, the next line followed by the indentation is the False block operation

if..elif..elif..else style

  • Based on the outcome, if we need to determine which action to take place and which statements to execute, then the choice will be Multi conditional statements

Syntax:-

if ( condition1) :

         True block -1

elif  ( condition2):

         True Block-2

elif (condition3):

         True Block-3

elif (conditionN):

         True Block-N

else:

         False Block

  • Python will test the condition1 expression, if condition1 is True, the control will go to Trueblock -1, executes the python code then exits from the block
  • If condition1 fails, then the control will test the condition2 block
  • If condition2 is True, execute True Block-2 operation, then exit from control statement so on
  • Only if all the conditions are failed control will go to else block

Example :

if ( “AB” == “AB”) :

       print (“Im True Block1”)

elif (100 >50):

       print (“Im True Block2”)

elif (“SAB” != “sab”) :

       print (“Im True Block3”)

else :

        print (“False Statement”)

  • In the above example, all the given conditions are True
  • As per the flow, the Python will test the 1st condition ( “AB” == “AB”)
  • Here condition1 is True, so the control will go to True block
  • In case if 1st condition is False, the control will go to next condition

Result :   “Im True Block1”

Looping in Python

  • A looping statement allows us to execute the code blocks more than one time
  • Python looping statements are executed in two ways
    • List style – Execution of the block depends on the number of elements in the list
    • Conditional style – – Execution of the block depends on the conditional statement

Python for loop

Syntax

for variable in list-of-elements:

Operation block

# Note:

Just like conditional statements, looping statements also needs proper indentation.

forin are keywords.

  • If a list-of-elements in turn contains a list or a tuple or an unnamed expression list, the loop evaluates them first
  • And then, the first item in the list is assigned to the iterating variable
  • Next, the statements block is executed.
  • Further, each item in the list is assigned to iterating variable, and the statement(s) block is executed until the entire list  is finished

Example 1

for var in "host01","host02","host03" :  
  print "Host name:",var       # Block will run 3 times

Result :-

Host name:host01

Host name:host02

Host name:host03

Example 2

IPs=['10.20.30.40','10.20.30.50','10.20.30.60','10.20.30.66','10.20.40.60']
for var in IPs:
      print "System IP:",var
      print "-------------------"

Result:-

System IP: 10.20.30.40

———————————–

System IP:10.20.30.50

———————————–

System IP:10.20.30.60

———————————–

System IP:10.20.30.66

———————————–

System IP:10.20.40.60


  • The above looping statement will run 5 times
  • List variable IPs is holding 5 elements so block will run 5 times

Example 3

#  Display the CPU Load Balance for 5 times

import os
for v in 1,2,3,4,5:
         os.system("uptime")

Example 4

import os
for v in [1,2,3,4,5]: <======= List contains 5 elements
            os.system("uptime")

Example 5

import os
for v in (1,2,3,4,5):  <======= tuple contains 5 elements
              os.system("uptime")

Example 6

import os
for v in ('data1','data2','data3','data4','data5'):   <======= tuple contains 5 elements
              os.system("uptime")
  • All the above examples have same result.
  • It displays the current CPU load balance result 5 times

range()

By using the range() method, we can iterate over the  looping operations, The range function takes number (any integer),say n as argument and returns a list of values start from 0 to n-1

Example: 

range(5)  ==>  [0,1,2,3,4]
range(n,m)  ==> start from 'n' value to 'm-1' value
range(1,5)  ==> [1,2,3,4]
range(n,m,count)   ==>  start from 'n' value to 'm-1' for every count occurrence
range(1,7)   ==>  start from 1 to 6   ==> [ 1,2,3,4,5,6 ]   ==>  for every occurrence single increment
range(1,7,3)  ==> every 3 increment  ==> [1,4]

How to use range() in for loop statements ?

Example:

for v in range(5) :   # [0,1,2,3,4]  No.of elements in the list is 5 ,so block will run 5 times
           print "Hello..",v

Result:-

Hello..0

Hello..1

Hello..2

Hello..3

Hello..4

for v in range(1,10,3): 
          print "value of v:",v  # Block will run 3 times

Result :-

value of v:1

value of v:4

value of v:7

Using else Statement with Loops

  • Python supports the usage of an else statement with a loop statement
  • In case the else statement is used with a for loop, the else statement is executed when the loop has finished iterating the list
  • Generally else statements are optional in looping statements and are usually used to write a footer message
  • else block can be used with both for and while loops

Example:-

for v in range(5):
         print "Hello-->",v
else:
         print "Thank you"

Result:-

Hello–>0

Hello–>1

Hello–>2

Hello–>3

Hello–>4

Thank you

Python While loop

A while loop in Python continuously executes a statement as long as the given condition is true.

syntax

While (condition ) :

Operation –block

  • The Loop will test the condition. If condition is True, the operation block is executed and again the condition is tested and if condition is True again, it repeat the operation
  • This goes on until the condition fails where the loop terminates
  • Here the operation block execution is determined only by the condition and not by the list, tuple or list of values

Example:-

count=0
while(count<5):
  print "Count value :",count
  count=count+1

Result :

Count value : 0

Count value : 1

Count value : 2

Count value : 3

Count value : 4

While with else statement

Example :-

count=0
while(count<5):
  print "Count value :",count
  count=count+1
else :
   print "Thank you"

Result

Count value : 0

Count value : 1

Count value : 2

Count value : 3

Count value : 4

Thank you

Looping statements

1) break – Terminate from loops

  • The most common use of break is when some external condition is triggered requiring a hasty exit from a loop
  • The break statement can be used in both while and for loops

Example

while True:

Fname=raw_input( “Enter a first name:”):
if( Fname == “Ram” ):
          print “Matched”
          break  # Exit from while loop 
  • The above loop is an un-conditional ( always  true ) infinite loop
  • Once the condition is matched, block will get terminate

2) Continue-continues on the next iteration of the loop

  • It returns the control to the beginning of the while loop
  • The continue statement rejects all the remaining statements in the current iteration of the loop and moves the control  back to the top of the loop
  • The continue statement can be used in both while and for loops

Example :

for  var in [‘Mon’,’Tue’,’Wed’,’Thu’,’Fri’]:
if(var == “Wed”):
      continue # Skip the wed, continue to the next statement
else:
      print var

Result:

Mon

Tue

Thu

Fri

3) Pass statement

  • The pass statement is a null operation; nothing happens when it executes
  • The pass is also useful in places where your code will eventually go, but has not been written yet (e.g., in stubs for example) ?

Example:

for letter in 'Python':
       if letter == 'h':
             pass
             print 'This is pass block'
             print 'Current Letter :', letter
             print "Good bye!"

Result:-

Current Letter : P

Current Letter : y

Current Letter : t

This is pass block

Current Letter : h

Current Letter : o

Current Letter : n

Dictionary

  • Python dictionary is an unordered collection of data items
  • Like list python dictionary is also modifiable
  • A dictionary contains collection of items, which is of (key,value)  pair

Syntax :-

Dictionaryname={‘Key’ : ‘Value’ }

  • Keys are unique string whereas value can duplicate
  •  Each key is separated from its value by a colon (:), the items are separated by commas, and the whole thing is enclosed in curly braces
  • The values of a dictionary can be of any type, but the keys must be of an immutable data type such as strings, numbers, or tuples

How to create a dictionary?

  • Creating a dictionary is as simple as placing items inside curly braces { } separated by comma

Syntax :-

Dictionaryname={‘Key1’ : ‘Value1’, ‘Key2’: ‘Value2’…….’Key N’: ‘Value N’ }

Examples:-

Hosts={‘ip’ : ’10.20.30.40’, ‘file’:’/etc/hosts’ , ‘port’ : 22 }

Hosts is the name of the dictionary

ip is a key & its value is  an IP address (10.20.30.40 )

file  is a key & its value is /etc/hosts

port is a key & its value is 22

Generally, dictionaries have a key and the corresponding value expressed as a pair, key: value

How to access the elements from a dictionary?

  • Similar to list, in order to get the data from a dictionary, we use index [ ] notation

Using index [  ]  : 

dict_name[‘key’]

  • Keys can also be used with the get() method to access the elements from a dictionary.

Using get() :  

dict_name.get(‘key’)

Examples:-

emp={‘name’ : ‘Mr.Kris’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
print “Emp name is:”, emp[‘name’]
print emp[‘name’],” Working department is:”,emp.get(‘dept’)
Mr.Kris Working department is: sales

Size of a dictionary

  • We use len() function to display the size of a dictionary 
emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
print len(K) 
3
  • Data inside a dictionary are unordered elements
  • In order to get list of keys from dictionary, we use keys() function

Syntax:-

dictionary_name.keys()

keys() returns a collection of values and its return type will be of list type.

K=emp.keys()

# Determine keys() return type

type(K) 

(or)

type(emp.keys())

Dictionary Manipulation

 Dictionary are mutable, which means that we can add new data (key:value) into an existing dictionary or we can update/modify the value of an existing dictionary using an assignment operator

Adding new data to a dictionary

Whenever adding a new data to an existing dictionary, we should define a new unique key and a value

Syntax :-

dictionary_name[‘Key’]=”Value”

Examples:-

>>>emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>>print  len(emp.keys())
3
>>>emp[‘phone’]=”+91 9901233456”
>>>emp[‘place’]=”Bangalore”
>>>print  len(emp.keys())
5
Modifing an existing data in a dictionary

Syntax:-

dictionary_name[‘Key’]=”Updated Value”

Example:-

>>>emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’, ’phone’ : ’+91 9901233456’, ‘place’ : ‘Bangalore’}
>>>print “Before Modification : “, emp[‘dept’]
>>>emp[‘dept’]=”PRODUCTION” # modify existing value
>>>print “After Modification : ”,emp[‘dept’]

Result:-

After Modification : PRODUCTION

Before Modification : sales

Delete a single record from dictionary

Syntax :- del(dictionary_name[‘Key’])

To clear the entire contents of a dictionary
Syntax:-

dictionary_name.clear( )

Example:-

>>>emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>>print “Total no.of records :”,len(emp.keys())  
Total no.of records : 3
>>>del(emp[‘dept’] ) # to delete a single record
>>>print “Total no.of records :”,len(emp.keys())
Total no.of records : 2
>>>emp.clear( ) # remove all entries in  emp dictionary 
>>>print “Total no.of records :”,len(emp.keys())
Total no.of records : 0
To delete an entire dictionary

del(emp)

Dictionary methods and examples

Syntax

dictionary_name.clear()  #removes all elements of dictionary 

>>>emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>>emp.clear()  - Now the size of dictionary is zero

Syntax : dictionary_name.setdefault(key,default=None)

  • The method setdefault() is similar to get(), but the difference is that it sets dictionary_name[key]=default  if the key does not exist in the dictionary
  • Similar to get() method, it returns the value corresponding to the key
  • In case if the given key is not available; it returns the provided default value
emp={‘name’:’Vishnu’,’dept’:’sales’}
emp.setdefault(‘name’)  # displays name (key) value as Vishnu.
#If passed as invalid key as an argument , it will return as None.
emp.setdefault(‘Name’) -> None 
if(emp.setdefault(‘Name’)==None):
             print “Invalid Key”
  • The above program input key (‘Name’) is an invalid key, so the default value (None) will be returned
  • Here the condition is True .So the control goes to True block  and the script say ‘Invalid key
if(emp.setdefault(‘name’) ==None):
                 print “Invalid key”
else:
                 print “value of name is :”,emp[‘name’]

In the above code, the given key is a valid key (‘name’). Hence it returns a  string(“Vishnu”) and not ‘None’.

value of name is: Vishnu

Syntax

dictionary.update(dict2)

  • The method update() adds the dictionary dict2’s key-values pairs in to dict
  • This function does not return anything
  • But all items of dict2 is added into dict1
Items={‘code’:’P-123’,’cost’:1000.54}
Files={‘fname’:’Invoice.txt’, ‘size’:’100M’}
Items.update(Files) # Files dictionary is added into Items dictionary 
>>> Items
{‘code’:’P-123’,’fname’:’Invoice.txt’,’cost’:1000.54,’size’:’100M’}
# Note that dictionary are unordered data type
>>> print “Total no.of records :”,len(Items.keys())
Total no.of records:4

Syntax

dictionary_name.keys()

  • This method returns a list of all keys available in a given dictionary
>>>emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>>emp.keys()
[‘name’, ’ID’, ’dept’ ]
  • The return type of keys() will be always list type of data

Syntax

dictionary_name.items()

  • The method items() returns a list of dictionary’s (key, value) tuple pairs
>>>  emp={‘name’ : ‘Mr.Vinu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>> emp.items()
[('dept', 'sales'), ('name', 'Mr.Vinu'), ('ID', ‘E123')]

Syntax:

dictionary_name.has_key(Key)

  • This method has_key() returns True if a given key is available in the dictionary, otherwise it returns a False.
>>>  emp={‘name’ : ‘Mr.Vinu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>> emp.has_key(‘name’)
True
>>> emp.has_key(‘NAME’)  # invalid input key
False
  • Since dictionary_name.has_key(Key) returns a Boolean values (True / False ), it is mostly used in testing or validation
if(emp.has_key(‘name’)):  # input key is valid return will be True
               print “Name is Found:”,emp[‘name’]
else:
                print “Invalid key”
  • Since the condition satisfies, the above code displays ‘Name is Found: Mr.Vinu’
if(emp.has_key(‘NAME’)):  # input key is invalid return will be False
          print “Valid Key”
else:
          print “Invalid Key”   
  • Here the function returns false and hence it displays ‘Invalid Key’.
Other dictionary methods

pop() method

  • The pop() method removes and returns an element from a dictionary having the given key.

syntax :

dictionary.pop(key[, default])

  • Similar to deleting a single key   del(dict[‘key’]) 
emp={‘name’ : ‘Mr.Vinu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>>  emp.pop(‘dept’)  # same as  del (emp[‘dept’])
sales
>>> emp
{‘ID’:’E123’,’name’:’Mr.Vinu’}

pop( ) Parameters

  • The pop() method takes two parameters:
  • key – key which is to be searched for removal
  • default – value which is to be returned when the key is not in the dictionary
  • Return value from pop()
  • The pop() method returns:
  • If key is found – remove/pop the element from the dictionary
  • If key is not found – value specified as the second argument (default)
  • If key is not found and default argument is not specified – KeyError exception is raised
emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>> emp.pop(‘ID’)
‘E123’
>>>emp.pop(‘post’,’manager’)
‘manager’
>>>emp.pop(‘K1’)  # invalid key
KeyError: ‘K1’
 

popitem() 

The popitem() returns and removes an arbitrary element (key, value) pair from the dictionary.

syntax:-

dict.popitem()

The popitem() doesn’t take any parameters

Return Value from popitem()

  • returns an arbitrary element (key, value) pair from the dictionary.
  • When you run the program, the output will be
>>>emp={‘name’ : ‘Mr.Vishnu’ , ‘ID’ : ‘E123’, ‘dept’:’sales’}
>>>emp.popitem()
(‘ID’,’E123’)  
>>>emp
{‘dept’ : ‘sales’, ‘name’ : ‘Mr.Vishnu’ }
>>>emp.popitem()
(‘dept’:’sales’)
>>>emp
{‘name’ : ‘Mr.Vishnu’}
>>>emp.popitem()
(‘name’ : ‘Mr.vishnu’)
>>> emp
{}  # empty dictionary
>>> emp.popitems()  
KeyError : ‘popitem(): dictionary is empty’

Reference

https://www.python.org/

https://www.anaconda.com/

Continue exploring at Teknonauts.com

Leave a Reply

Your email address will not be published. Required fields are marked *