introduction to python - kennesaw state...

64
Introduction to Python A readable, dynamic, pleasant, flexible, fast and powerful language Nowell Strite Manager of Tech Solutions @ PBS [email protected]

Upload: hoangkhuong

Post on 29-Jun-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Introduction to

PythonA readable, dynamic, pleasant,

flexible, fast and powerful language

Nowell Strite

Manager of Tech Solutions @ PBS

[email protected]

Page 2: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Overview

• Background

• Syntax

• Types / Operators / Control Flow

• Functions

• Classes

• Tools

Page 3: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

What is Python

• Multi-purpose (Web, GUI, Scripting,

etc.)

• Object Oriented

• Interpreted

• Strongly typed and Dynamically typed

• Focus on readability and productivity

Page 4: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Features

• Batteries Included

• Everything is an Object

• Interactive Shell

• Strong Introspection

• Cross Platform

• CPython, Jython, IronPython, PyPy

Page 5: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Who Uses Python

• Google

• PBS

• NASA

• Library of Congress

• the ONION

• ...the list goes on...

Page 6: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Releases

• Created in 1989 by Guido Van Rossum

• Python 1.0 released in 1994

• Python 2.0 released in 2000

• Python 3.0 released in 2008

• Python 2.7 is the recommended version

• 3.0 adoption will take a few years

Page 7: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Syntax

Page 8: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Hello World

hello_world.py

Page 9: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Indentation

• Most languages don’t care about

indentation

• Most humans do

• We tend to group similar things together

Page 10: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Indentation

The else here actually belongs to the 2nd if

statement

Page 11: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Indentation

The else here actually belongs to the 2nd if

statement

Page 12: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Indentation

I knew a coder like this

Page 13: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Indentation

You should always be explicit

Page 14: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Indentation

Text

Python embraces indentation

Page 15: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Comments

Page 16: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Types

Page 17: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Strings

Page 18: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Numbers

Page 19: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Null

Page 20: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Lists

Page 21: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Lists

Page 22: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Dictionaries

Page 23: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Dictionary Methods

Page 24: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Booleans

Page 25: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Operators

Page 26: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Arithmetic

Page 27: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

String Manipulation

Page 28: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Logical Comparison

Page 29: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Identity Comparison

Page 30: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Arithmetic

Comparison

Page 31: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Control Flow

Page 32: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Conditionals

Page 33: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

For Loop

Page 34: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Expanded For Loop

Page 35: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

While Loop

Page 36: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

List Comprehensions

• Useful for replacing simple for-loops.

Page 37: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Functions

Page 38: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Basic Function

Page 39: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Function Arguments

Page 40: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Arbitrary Arguments

Page 41: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Fibonacci

Page 42: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Fibonacci Generator

Page 43: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Classes

Page 44: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Class Declaration

Page 45: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Class Attributes

• Attributes assigned at class declaration

should always be immutable

Page 46: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Class Methods

Page 47: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Class Instantiation &

Attribute Access

Page 48: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Class Inheritance

Page 49: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Python’s Way

• No interfaces

• No real private attributes/functions

• Private attributes start (but do not end)

with double underscores.

• Special class methods start and end

with double underscores.

• __init__, __doc__, __cmp__, __str__

Page 50: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Imports

• Allows code isolation and re-use

• Adds references to

variables/classes/functions/etc. into

current namespace

Page 51: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Imports

Page 52: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

More Imports

Page 53: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Error Handling

Page 54: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Documentation

Page 55: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Docstrings

Page 56: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Tools

Page 57: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Web Frameworks

• Django

• Flask

• Pylons

• TurboGears

• Zope

• Grok

Page 58: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

IDEs

• Emacs

• Vim

• Komodo

• PyCharm

• Eclipse (PyDev)

Page 59: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Package

Management

Page 60: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Resources

• http://python.org/

• http://diveintopython.org/

• http://djangoproject.com/

Page 61: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Example

Page 62: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Going Further

• Decorators

• Context Managers

• Lambda functions

• Generators

• ...

Page 63: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Questions?

Page 64: Introduction to Python - Kennesaw State Universityksuweb.kennesaw.edu/.../Python_Tutorial_Slides.pdfIntroduction to Python A readable, dynamic, pleasant, flexible, fast and powerful

Thanks!