Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 44

INTRODUCTION TO PYTHON

BY KHAWAR BUTT [CCIE X 7#12353 & CCDE#20110020]


[R/S, SECURITY, SP, VOICE, STORAGE NETWORKING, DATA
CENTER, WIRELESS]
INTRODUCTION TO PYTHON
• PYTHON INTERPRETER

• PYTHON INTEGRATED DEVELOPMENT ENVIRONMENT (IDE)

• INTERACTIVE PYTHON

• VARIABLES & OPERATORS

• CONDITIONAL STATEMENTS

• WHILE LOOPS

• FOR LOOPS

• NETWORK FUNCTIONS
PYTHON INTERPRETER

• ALLOWS YOU TO ISSUE PYTHON COMMANDS INTERACTIVELY

• YOU CAN DOWNLOAD IT FROM HTTPS://WWW.PYTHON.ORG/DOWNLOADS

• NORMAL INSTALLATION PROCEDURE

• INVOKE THE PYTHON APP OR USE IDLE


PYTHON IDE
 PROVIDES A FULL-BLOWN ENVIRONMENT FOR DEVELOPMENT
 FEATURES INCLUDE:
 SYNTAX HIGHLIGHTING
 CODE EDITOR WITH AUTOMATIC CODE FORMATTING
 DEBUGGING CAPABILITIES
 TERMINAL FOR INTERACTIVE PYTHON COMMAND EXECUTION
 SAVING AND LOADING OF PYTHON SCRIPTS / APPLICATION
 BUILT-IN LIBRARIES
 POPULAR IDE’S INCLUDE PYCHARM, VISUAL STUDIO, SPYDER, PYDEV ETC.
INTERACTIVE PYTHON – BASIC MATH
 ADDITION
2 + 5
OUTPUT=7

 SUBTRACTION
99 – 55
OUTPUT=44

 MULTIPLICATION
109 * 55
OUTPUT=5995
INTERACTIVE PYTHON – BASIC MATH
 DIVISION - FLOAT

24 / 6

OUTPUT=4.0

24 / 5

OUTPUT=4.8

 DIVISION - INTEGER

24 // 6

OUTPUT=4

24 // 5

OUTPUT=4
INTERACTIVE PYTHON – BASIC MATH
 COMBINING OPERATIONS
10 - 9 + 7
OUTPUT=8
9 + 7 * 10
OUTPUT=79
(9 + 7) * 10
OUTPUT=160
INTERACTIVE PYTHON – STRINGS

 USING SINGLE OR DOUBLE QUOTES


'KBITS’
OUTPUT=‘KBITS’
"KBITS“
OUTPUT=‘KBITS’
INTERACTIVE PYTHON – STRINGS

 USING BUILT-IN PRINT FUNCTION – SIMPLE

PRINT ('KBITS’)
OUTPUT=KBITS
PRINT ("KHAWAR'S CLASSES")
OUTPUT=KHAWAR’S CLASSES
INTERACTIVE PYTHON – STRINGS

 USING BUILT-IN PRINT FUNCTION – SPECIAL CHARACTERS

SPECIAL CHARACTER – “\”


PRINT ('KHAWAR\'S "CLASSES“’)
OUTPUT=KHAWAR’S “CLASSES”
INTERACTIVE PYTHON – STRINGS
 USING BUILT-IN PRINT FUNCTION – SPECIAL CHARACTERS

SPECIAL CHARACTER – “\N”


PRINT ("KHAWAR’S CURRENT CLASSES\NSECURITY \NEI \NPYTHON”)
OUTPUT=KHAWAR’S CURRENT CLASSES
SECURITY
EI
PYTHON
INTERACTIVE PYTHON – STRINGS
 USING BUILT-IN PRINT FUNCTION – ADDITIONAL FUNCTIONALITIES

USING THE RAW OPTION ("R")


PRINT (R'KBITS.LIVE\NEWCLASSES’)
OUTPUT=KBITS.LIVE\NEWCLASSES
MULTIPLYING STRINGS
PRINT (5 * 'KBITS ')
OUTPUT=KBITS KBITS KBITS KBITS KBITS
INTERACTIVE PYTHON – VARIABLES

 ALLOWS US TO USE A CONTAINER TO HOLD VALUES THAT CAN BE REUSED


 THE CONTAINER IS ASSIGNED A MEMORY LOCATION BY THE INTERPRETER
 VARIABLES CAN BE OF DIFFERENT TYPES:
 INTEGERS
 FLOAT (DECIMALS)
 STRINGS
 THE TYPE IS AUTO-DETECTED AT THE TIME YOU INITIALIZE THE VARIABLE
INTERACTIVE PYTHON – VARIABLES
 INTEGER VARIABLE

DEFINING/INITIALIZING AN INTEGER VARIABLE – SIMPLE


X=2
Y=5
DEFINING/INITIALIZING AN INTEGER VARIABLE – USING AN OPERATION
Z=2 + X * Y
INTERACTIVE PYTHON – VARIABLES
 INTEGER VARIABLE

DISPLAYING THE INTEGER VARIABLE VALUE


PRINT (X)
OUTPUT=2
PRINT (Y)
OUTPUT=5
PRINT (Z)
OUTPUT=12
INTERACTIVE PYTHON – VARIABLES
 FLOAT (DECIMAL) VARIABLE

DEFINING/INITIALIZING A FLOAT VARIABLE – SIMPLE


A=1.5
B=10.0
DEFINING/INITIALIZING A FLOAT VARIABLE – USING AN OPERATION
C=2 * A + B
INTERACTIVE PYTHON – VARIABLES
 FLOAT (DECIMAL) VARIABLE

DISPLAYING THE FLOAT VARIABLE VALUE


PRINT (A)
OUTPUT=1.5
PRINT (B)
OUTPUT=10.0
PRINT (C)
OUTPUT=13.0
INTERACTIVE PYTHON – VARIABLES
 STRING VARIABLE

DEFINING/INITIALIZING A STRING VARIABLE – SIMPLE


C_NAME='KBITS’

DEFINING/INITIALIZING A FLOAT VARIABLE – USING AN OPERATION


WEBSITE=C_NAME + '.LIVE'
INTERACTIVE PYTHON – VARIABLES
 STRING VARIABLE

DISPLAYING THE STRING VARIABLE VALUE


PRINT (C_NAME)
OUTPUT=KBITS
PRINT (WEBSITE)
OUTPUT=KBITS.LIVE
INTERACTIVE PYTHON – VARIABLES
 STRING VARIABLE

RETRIEVING CHARACTERS FROM A STRING


PRINT (WEBSITE[0]) – RETRIEVES THE 1 ST CHARACTER
OUTPUT=K
PRINT (WEBSITE[5]) – RETRIEVES THE 6 TH CHARACTER
OUTPUT=.
PRINT (WEBSITE[0:5]) – RETRIEVES STARTING FROM THE 1 ST TO 5TH CHARACTER
OUTPUT=KBITS
INTERACTIVE PYTHON – VARIABLES
 STRING VARIABLE

RETRIEVING CHARACTERS FROM A STRING


PRINT (WEBSITE[6:]) – RETRIEVES STARTING FROM THE 6 TH CHARACTER TO END
OUTPUT=LIVE
PRINT (WEBSITE[:5]) – RETRIEVES ALL CHARACTERS TILL THE 6 TH CHARACTER
OUTPUT=KBITS
PRINT (WEBSITE[:5] + ' ' + WEBSITE[6:])
OUTPUT=KBITS LIVE
INTERACTIVE PYTHON – OPERATORS
 COMPARISON OPERATORS

“ > “ – GREATER THAN OPERATOR


RETURNS A TRUE OR FALSE ON AN OPERATION
X=5
Y=10
X > Y
OUTPUT=FALSE
INTERACTIVE PYTHON – OPERATORS
 COMPARISON OPERATORS

“ < “ – LESS THAN OPERATOR


RETURNS A TRUE OR FALSE ON AN OPERATION
X=5
Y=10
X < Y
OUTPUT=TRUE
INTERACTIVE PYTHON – OPERATORS
 COMPARISON OPERATORS

“ >= “ – GREATER THAN OR EQUAL TO OPERATOR

RETURNS A TRUE OR FALSE ON AN OPERATION

X=5

Y=5

X > Y

OUTPUT=FALSE

X >= Y

OUTPUT=TRUE
INTERACTIVE PYTHON – OPERATORS
 COMPARISON OPERATORS

“ <= “ – LESS THAN OR EQUAL TO OPERATOR

RETURNS A TRUE OR FALSE ON AN OPERATION

X=5

Y=5

X < Y

OUTPUT=FALSE

X <= Y

OUTPUT=TRUE
INTERACTIVE PYTHON – OPERATORS
 COMPARISON OPERATORS

“ == “ – CHECKS TO SEE IF THE 2 VALUES ARE EQUAL


RETURNS A TRUE OR FALSE ON AN OPERATION
X=5
Y=5
X == Y
OUTPUT=TRUE
INTERACTIVE PYTHON – OPERATORS
 COMPARISON OPERATORS

“ != “ – CHECKS TO SEE IF THE 2 VALUES ARE NOT-EQUAL


RETURNS A TRUE OR FALSE ON AN OPERATION
X=5
Y=6
X != Y
OUTPUT=TRUE
INTERACTIVE PYTHON – OPERATORS
 LOGICAL OPERATORS

“ AND “ – BOTH CONDITIONS NEED TO BE TRUE TO GET TRUE RESULT


RETURNS A TRUE OR FALSE ON AN OPERATION
X=5
Y=10
X < 20 AND Y > 2
OUTPUT=TRUE
INTERACTIVE PYTHON – OPERATORS
 LOGICAL OPERATORS

“ OR “ – EITHER ONE CONDITIONS NEEDS TO BE TRUE TO GET TRUE RESULT

RETURNS A TRUE OR FALSE ON AN OPERATION

X=5

Y=10

X < 20 AND Y > 20

OUTPUT=FALSE

X < 20 OR Y > 20

OUTPUT=TRUE
CONDITIONAL STATEMENTS

 CONDITIONAL STATEMENTS ALLOWS A PYTHON SCRIPT TO EXECUTE COMMAND BASED


ON A CONDITION BEING TRUE OR FALSE

 ALL THE STATEMENTS THAT NEED TO BE EXECUTED NEED TO BE INDENTED PROPERLY

 YOU COULD ALSO USE THE “ELSE” STATEMENT TO SPECIFY THE COMMANDS TO BE
EXECUTED IN CASE THE CONDITIONAL IS FALSE.

 YOU COULD ALSO USE THE “ELIF” STATEMENT TO HAVE THE SCRIPT CHECK
SUBSEQUENT CONDITIONS IF THE PREVIOUS CONDITION IS FALSE.
IF STATEMENT
 EXAMPLE # 1 – CHECKING FOR ODD AND EVEN
X=4
Y=X % 2
IF Y == 0:
PRINT('X IS AN EVEN NUMBER ')
IF Y != 0:
PRINT('Y IS AN ODD NUMBER')
PRINT (‘\NTHANKS FOR USING THE PROGRAM’)
OUTPUT=X IS AN EVEN NUMBER
THANKS FOR USING THE PROGRAM
ELSE STATEMENT
 EXAMPLE # 2 – CHECKING FOR ODD AND EVEN
X=5
Y=X % 2
IF Y == 0:
PRINT('X IS AN EVEN NUMBER ')
ELSE:
PRINT('X IS AN ODD NUMBER ')
PRINT ('THANKS FOR USING THE PROGRAM’)
OUTPUT=X IS AN ODD NUMBER
THANKS FOR USING THE PROGRAM
ELIF STATEMENT
 EXAMPLE # 3 – PRINTING NUMBER NAMES
X=3
IF X == 0:
PRINT(‘NUMBER IS ZERO‘)
ELIF X == 1:
PRINT(‘NUMBER IS ONE‘)
ELIF X == 2:
PRINT('NUMBER IS TWO’)
ELIF X == 3:
PRINT('NUMBER IS THREE')
ELIF X == 4:
PRINT('NUMBER IS FOUR’)
ELSE:
PRINT(‘THE NUMBER IS GREATER THAN 4’)
PRINT (‘THANKS FOR USING THE PROGRAM’)
OUTPUT= NUMBER IS THREE
THANKS FOR USING THE PROGRAM
LOOPS

 LOOPS ALL YOU THE ABILITY TO EXECUTE A SET OF STATEMENTS AS LONG AS A


CONDITION IS TRUE

 LOOPS ALSO ALLOW YOU THE ABILITY TO NEST LOOPS


WHILE LOOP
EXAMPLE # 2
 EXAMPLE # 1
COUNTO = 1
COUNTI = 50
COUNTER = 1 WHILE COUNTO <= 3:
WHILE COUNTER <= 3: PRINT(COUNTO, END='')
PRINT(COUNTER,END='') PRINT(' ( ',END='')
PRINT(' ',END='') WHILE COUNTI >0:
PRINT(COUNTI, END='')
COUNTER += 1
PRINT(' ', END='')
COUNTI -=10
PRINT (')')
OUTPUT= COUNTO += 1
1 2 3 COUNTI = 50

OUTPUT=
1 ( 50 40 30 20 10 )
2 ( 50 40 30 20 10 )
3 ( 50 40 30 20 10 )
FOR LOOPS
 EXAMPLE # 1  EXAMPLE # 2

NAME = 'KHAWAR' PROTOCOLS = ["EIGRP", "IGRP", "OSPF", "IS-IS", "RIP"]


ADMIN_DISTANCE = ['90', '100', '110','115','120']
FOR X IN NAME: COUNT=0
PRINT(X) FOR X IN PROTOCOLS:
PRINT('ADMIN DISTANCE FOR ' + X + ' \TIS\T’ + ADMIN_DISTANCE[COUNT])
OUTPUT= COUNT +=1
K
H OUTPUT=
A ADMIN DISTANCE FOR EIGRP IS 90
W ADMIN DISTANCE FOR IGRP IS 100
A ADMIN DISTANCE FOR OSPF IS 110
R ADMIN DISTANCE FOR IS-IS IS 115
ADMIN DISTANCE FOR RIP IS 120
NETWORK FUNCTIONS
 INPUT FUNCTION
INTERFACE = INPUT('WHAT INTERFACE WOULD YOU LIKE TO CONFIGURE : ‘)
PROMPTS FOR INPUT STORE THE VALUE IN A STRING VARIABLE CALLED INTERFACE

 TELNET FUNCTION
FROM TELNETLIB IMPORT TELNET
ABC = TELNET('172.25.1.1’)
ABC IS A VARIABLE. IT WILL REFERENCE THE TELNET CONNECTION

 GETPASS FUNCTION
IMPORT GETPASS
PASS = GETPASS.GETPASS()
GETPASS WILL PROMPT THE USER FOR PASSWORD AND STORE THE INPUT IN THE PASS VARIABLE
NETWORK FUNCTIONS
 CONNECTHANDLER FUNCTION
FROM NETMIKO IMPORT CONNECTHANDLER
ABC = {
'DEVICE_TYPE': 'CISCO_IOS',
'HOST': '172.25.1.1',
'USERNAME': 'KHAWAR',
'PASSWORD': 'CISCO',
'PORT' : 22, # OPTIONAL, DEFAULTS TO 22
'SECRET': 'CISCO', # OPTIONAL, DEFAULTS TO ‘’
}
MYSSH = CONNECTHANDLER(**ABC)
MYSSH IS A VARIABLE. IT WILL REFERENCE THE SSH CONNECTION. CONNECTHANDLER REFERENCE THE PARAMETERS IN THE ABC
VARIABLE.
NETWORK FUNCTIONS

 CONFIGURING A ROUTER USING A SINGLE COMMAND

HOSTNAME = MYSSH.SEND_COMMAND('SHOW RUN | I HOST’)

SENDS THE COMMAND TO THE ROUTER OVER THE SSH CONNECTION


NETWORK FUNCTIONS
 CONFIGURING A ROUTER THRU SSH USING VARIABLE

CONFIG_COMMANDS = [ 'BANNER MOTD #AUTHORIZED KBITS.LIVE USERS ONLY#',


'LINE CON 0',
' LOGG SYNC'
]
MYSSH.SEND_CONFIG_SET(CONFIG_COMMANDS)
OUTPUT = MYSSH.SEND_COMMAND('SHOW RUNN | INC BANNER’)

MYSSH IS THE SSH CONNECTION. CONFIG_COMMANDS IS A LIST VARIABLE.


MYSSH_CONFIG_SET SENDS ALL COMMANDS IN A LIST VARIABLE TO GLOBAL CONFIG.
MYSSH.SEND_COMMAND SENDS A SINGLE COMMAND TO THE PRIVILEGE EXEC MODE
NETWORK FUNCTIONS

 CONFIGURING A ROUTER THRU SSH USING CONFIGURATION FILE

HOSTNAME = MYSSH.SEND_COMMAND('SHOW RUN | I HOST')


X = HOSTNAME.SPLIT()
DEVICENAME = X[1]
CMDFILE=DEVICENAME + ".TXT"
MYSSH.SEND_CONFIG_FROM_FILE(CMDFILE)

SEND_CONFIG_FROM_FILE WILL SEND THE CONTENTS OF THE FILENAME STORED IN THE CMDFILE VARIABLE.
THE CMDFILE VARIABLE IS CREATED BY DERIVING THE HOSTNAME AND CONCATENATING IT WITH .TXT.
NETWORK FUNCTIONS
 READING FROM FILES
FROM NETMIKO IMPORT CONNECTHANDLER
WITH OPEN('DEVICES.TXT') AS XYZ:
FOR IP IN XYZ:
ABC = {
'DEVICE_TYPE': 'CISCO_IOS',
'IP': IP,
'USERNAME': 'KHAWAR',
'PASSWORD': 'CISCO'
}
MYSSH= CONNECTHANDLER(**ABC)
MYSSH.SEND_COMMAND('SH IP INT BRIEF’)

OPENS THE FILE ‘DEVICES.TXT’. READ A SINGLE LINE AND STORES THE CONTENT IN THE VARIABLE CALLED IP.
SSH’S INTO THE IP AND SENDS THE ‘SH IP INT BRIEF’ COMMAND TO IT
NETWORK FUNCTIONS
 SPLIT FUNCTION

HOSTNAME = MYSSH.SEND_COMMAND('SHOW RUN | I HOST')


X=HOSTNAME.SPLIT()
DEVICE = X[1]
FILENAME = DEVICE + '-BACKUP.TXT’

HOSTNAME IS A VARIABLE THAT WILL STORE THE OUTPUT FROM THE SEND_COMMAND.
THE SPLIT FUNCTION WILL BREAK THE HOSTNAME INTO 2 ELEMENTS IN A LIST VARIABLE CALLED X. THE
ELEMENTS ARE CREATED BASED ON THE PRESENCE OF SPACE.
DEVICE WILL STORE THE SECOND ELEMENT IN THE X VARIABLE.
FILENAME IS A STRING VARIABLE COMBINING THE DEVICE VARIABLE WITH THE TEXT ‘-BACKUP.TXT’
NETWORK FUNCTIONS
 WRITING TO A FILE

BBB = MYSSH.SEND_COMMAND('SHOW RUN’)


BBB_FILE = OPEN(‘R1-BACKUP.TXT’, “W")
BBB_FILE.WRITE(BBB)
BBB_FILE.WRITE("\N")
BBB_FILE.CLOSE()

BBB IS A VARIABLE THAT WILL HOLD THE CONTENTS OF THE ‘SHOW RUN’ COMMAND.
THE OPEN FUNCTION OPENS A FILE CALLED FILENAME(‘R1-BACKUP.TXT’) WITH THE ABILITY TO WRITE TO IT.
THE FILE IS CALLED BBB_FILE.
WRITE FUNCTION WRITES THE CONTENTS OF THE BBB VARIABLE TO THE BBB_FILE.

You might also like