Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Python Kris Kneubuhler SE NPUG July 17 th 2014.

Similar presentations


Presentation on theme: "Introduction to Python Kris Kneubuhler SE NPUG July 17 th 2014."— Presentation transcript:

1 Introduction to Python Kris Kneubuhler SE NPUG July 17 th 2014

2 Python 101 – Introduction Python Examples NXAPI Demo Q&A Agenda

3 © 2012 Cisco and/or its affiliates. All rights reserved.Cisco Confidential 3 Python: the basics

4 Python is an interpreted programming (scripting) language – Available for Linux, Windows, Mac – Two common versions: 2.7(x) and 3.3(x) – 2.7 more widely used than 3.3 at the time of writing Python code is not compiled into standalone binary – It’s either interpreted (interactive shell) or translated into byte code and executed by Python VM Code can be packaged as a “frozen binary” and executed on systems that don’t have Python installed – the Python VM is packaged within the frozen binary (using py2exe, pyinstaller or freeze) Basics

5 Python home page – http://www.python.org/ http://www.python.org/ Major Releases – Python 3.2.2September 4, 2011 – Python 3.1.4June 11, 2011 – Python 3.0.1February 13, 2009 – Python 2.7.2June 11, 2011 – Python 2.6.7June 3, 2011 – Python 2.5.4 December 23, 2008 – Python 2.4.6 December 19, 2008 – Python 2.3.7 March 11, 2008 – Python 2.2.3 May 30, 2003 – Python 2.1.3 April 8, 2002 – Python 2.0.1 June 2001 – Python 1.6.1 September 2000 Python Distributions 2.7.x is probably the version most frequently used today; this slide deck focuses primarily on 2.7

6 Python is an interpreted language – no pre-compile step as in Java and C++ – each time Python code is run it is interpreted afresh – code changes can be very quickly made and tested – code can also be entered interactively – can dynamically construct Python code For example in the form of a string and execute it directly What about performance? – (much) slower than compiled C/C++.. but also much more flexible – Good enough for most cases Very large projects such as Openstack are implemented in Python – Modules to measure (profile) performance exist Python is interpreted

7 When executing Python instructions, Python internally compiles the source into a format called byte code – This is meant to speed up execution This process is hidden from the programmer You will now and then notice.pyc files automatically created in your folders (depending if Python has write access) – Next time you run your code, assuming it hasn’t been modified, Python skips the compilation step and directly runs the byte code inside the Python VM The Python VM is Python’s runtime engine. It always comes with any installation of Python – Note: VM does not mean a VMware VM here! Byte code compilation

8 If you are used to other programming languages that are compiled, you should know there is a significant difference in terms of error checking with interpreted languages Python checks errors at runtime Interpreted code: error checking

9 Be aware that Python is case sensitive – A and a are different variables – We’re going to explore variables in a bit Python programs typically have the.py extension – Run using python or python –i Python is case-sensitive

10 You MUST indent code blocks in Python – Keep this rule in mind, it will catch you almost inevitably if you are already used to other programming languages There are no curly braces to delimitate code blocks Code blocks are identified with a colon and indentation Prefer white spaces to tabs for indentation – Four white spaces is the preferred de-facto standard – http://legacy.python.org/dev/peps/pep-0008/#indentation Indentation is mandatory

11 The hash # sign indicates comments follow – Usually ok for short comments – Can start a new line or be used at the end of a line Comments included at the beginning of your code appear when invoking help(yourscript): Comments

12 Your code should contain comments They should be relatively short and to the point Comments should say why you are doing what you are doing The code already says how; why you did things in a certain way is more important Too many comments hurt readability though and require maintenance – find the right balance Sidenote: should you write comments?

13 If you are running Windows: – http://www.activestate.com/activepython/downloads http://www.activestate.com/activepython/downloads – Download the “Community” edition If you are running Linux: – It should be available in your path already If you are running Mac OS-X: – It’s available natively. Start a terminal and type ‘python’ – There is a also a DMG available at the Activepython URL listed above Where can I get Python?

14 To write Python code, you need an editor that is aware of Python’s syntax and indentation: – Windows -- do not use Notepad or Wordpad. Try the free and open source Notepad++ or the free and open source JEditNotepad++JEdit – Mac -- The built in TextEdit works, but not very well. Try the free TextWrangler or the free and open source JEditTextWranglerJEdit – Linux -- any unix text editor is fine, or try the above JEdit. Getting a proper editor

15 You can use a Python syntax-aware editor such as Notepad++ or vim or gedit and test all your code with python -i – Try without the -i flag and see what the difference is Don’t forget to add the.py extension to your files to ensure the editor starts highlighting Python syntax Alternatively, there’s an easy to use, small and free IDE (Integrated Development Environment) called IDLE For larger projects, you can use Eclipse with PyDev, or PyCharm – There is a PyCharm module at end of this deck – For now, IDLE is good enough How do I start Python

16 IDLE is a simple IDE (integrated development environment) – Provides contextual help, command completion, syntax highlighting, step-by-step debugging, etc. Simple and free – Distributed with Python since 1.5.x – Install Python and launch it now – It isn’t perfect, but it’s probably good enough for what we’re going to do Much more complex IDE: – PyDev inside Eclipse IDLE

17 Launch IDLE and start coding! How about print “Hello World!” ? The print statement was directly interpreted – that is because you are sitting at the interpreter’s interactive prompt – Naturally, code can be saved in files rather than entered line by line – Try that as well and invoke the script using python –i Your very first Python statement  notice that parentheses inside print are not necessary in 2.7 (not true in 3.x!)  there is no need for a semicolon (;) to end the print statement

18 IDLE lets you directly enter Python commands interactively with immediate execution. You also get contextual command completion: You’ll pretty much never type code directly into the interactive shell though, except when testing/debugging Your code will live inside.py files IDLE can open.py files, run and help you debug your code Exploring IDLE a bit further

19 Inside IDLE, go to File then select New Window This brings up a Python-aware editor that we are going to use to create our first program. You can also use a Python-friendly editor. Your first program

20 Once inside the new window IDLE spawned, type this: Go to File, then Save As. Save your file and make sure you explicitly specify.py at the end of the name you provided If you press F5 now, Python will run your program in the main window Your first program Don’t worry about the keywords for now …

21 If you’re using Windows, you can run.py files by double-clicking them or specifying how to run them: If we run our basic program, a black window will come and go very rapidly – we can trick Windows to keep the window from disappearing Other ways of executing your program

22 Just add a input() statement at the end of your program to prevent Windows from closing the Python window after the script has executed You can also invoke the script with python -i (“dash i”) A little trick for Windows users Once you execute your program, input() prevents Windows from closing the window

23 Typing help() brings up interactive help. Type topics or keywords Outside of the interactive context, use help(‘keyword’) Alternatively, if you’re inside the interactive help context, just type while to get help on the while keyword To leave the interactive help session, type quit Getting help

24 Literally every Python question you can come up with is answered on Stackoverflow http://stackoverflow.com/questions/tagged/python http://stackoverflow.com/questions/tagged/python You can also subscribe to the Python Tutor mailing list https://mail.python.org/mailman/listinfo/tutor https://mail.python.org/mailman/listinfo/tutor Or browse the official Python docs http://docs.python.org/2.7/http://docs.python.org/2.7/ External help

25 If you type help(‘this’), you’ll see these guiding principles: “The Zen of Python”

26 © 2012 Cisco and/or its affiliates. All rights reserved.Cisco Confidential 26 Core data types

27 Python provides several built-in data types: Numbers: 1234, 3.1415, 3+4j, Decimal, Fraction Strings: 'spam', “Joe's", b'a\x01c' Lists: [1, [2, 'three'], 4] Dictionaries: {'food': 'spam', 'taste': 'yum'} Tuples: (1, 'spam', 4, 'U') Files: myfile = open('eggs', 'r') Sets: set('abc'), {'a', 'b', 'c'} Other core types: Booleans, types, None Data types

28 There is a significant difference in Python (much like in other languages) between the = and the == operator A single equal sign assigns a value to a named variable A double equal sign tests equality between the right-hand side and the left-hand side of the operation Before we continue


Download ppt "Introduction to Python Kris Kneubuhler SE NPUG July 17 th 2014."

Similar presentations


Ads by Google