overview intro to … computer hardware & software low- and high-level languages python on...

52
Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter) Intro to Python Programs & their parts Expressions, Operators, Statements Variables (naming, assigning values, finding type) Core Python Types (esp. Numbers & Strings) Comments and line continuation

Upload: brittany-long

Post on 01-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Overview

Intro to …Computer hardware & softwareLow- and High-level languagesPython on Windows (install and use)Finding helpPython IDE’s (esp. PyScripter)

Intro to Python Programs & their partsExpressions, Operators, StatementsVariables (naming, assigning values, finding type)Core Python Types (esp. Numbers & Strings)Comments and line continuation

Page 2: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Computer hardware

1. Input (keyboard, mouse, microphone, network, camera, etc.)

2. Output (screens, printers, network, etc)3. Primary Memory (RAM)

Fast read/write memoryStorage for OS, Applications, and dataData lost with power loss

4. Secondary Memory (Disks)Slow relative to primary memoryStorage for applications and data filesData persists with power loss

5. ALU (Arithmetic and Logic Unit)Perform calculations

6. CPU (Central Processing Unit)Manages operations between units

Page 3: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Computer software

Everything that runs on a computer (even the boot sequence) is software written directly/indirectly by humans but computers do not understand human.System software

OS, System apps and services, etc

Application softwareWord processing, graphics, etc

Computers understand their own machine language; a system of instructions and data directly executed by a computer's central processing unit (CPU).

Computer program = Set of instructions a computer follows to perform a task = Software

Page 4: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

In computers: binary, everything, binary …

0’s and 1’s are the only thing acomputer can deal withHOWEVER, 0’s and 1’s can becombined into groups(e.g. 1 byte = 8 - 0’s & 1’s = 8 bits)Bytes and groups of bytes can be used to represent

Data Numbers, text, images, etc.

OperationsMath (+, -, *, /, etc), File I/O, CPU instructions, etc.Messages between devices (keyboard, mouse, web-cam, etc)

Decimal to binary conversion tool

Page 5: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

ASCII

ASCII - The American Standard Code for Information Interchange is a standard seven-bit code that was proposed by ANSI in 1963, and finalized in 1968.

Page 6: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

In 1968, ANSI did not think of this …

Page 7: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Unicode

http://www.unicode.org/standard/WhatIsUnicode.html

http://www.unicode.org/Public/UNIDATA/UnicodeData.txt

Hex-to-decimal converter

Page 8: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Pentium Instruction Set (x86 family)

From http://www.intel.com/design/pentium/manuals/24319101.pdf

Machine language is a bunch of 1’s and 0’s in specific patterns that a CPU understands.

Page 9: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Low-level languages

Assembly is an example of a low-level language (close to machine language)

Page 10: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

High-level languages

High-level (English-like) computer programming languages can be used to create sophisticated computer applications and services.

NOTE: Not all high-level languages are converted to machine languageusing a compiler. Some use interpreters.

Page 11: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Python (high-level lang) code and execution

Python.exe (and supporting files) handles interpretation of .py files or interactive commands into byte code (platform independent code) and statement-by-statement compilation in the Python Virtual Machine (runtime)

Python Interpreter

If not import’ed,bytecode is inmemory only

(i.e. no .pyc created)

Page 12: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

High-level Programming Languages

C-based• C (1972)• AWK (1977)• C++ (1983)• Perl (1987)• PHP (1995)• Java (1995)• JavaScript (1995)• C# (2000)• ASP.Net – C# (2002)

BASIC-based• Beginners All-purpose

Symbolic Instruction Code (BASIC) (mid-1960’s)

• Visual Basic 1 to 5 (1991 - 1998)

• Visual Basic 6 (VB6) (1998)

• Visual Basic for Applications (VBA) (1996 – 2007)

• VBScript (vbs) (1996)

• ActiveX Server Pages (ASP)

• VB.Net (2000)

• ASP.Net – VB (2002)

Non-C/BASIC-based languages includePython, Smalltalk, Eiffel, FORTRAN, COBOL, Pascal, etc.

Page 13: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

C vs VB vs Python

Page 14: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Fundamental programming questions

How do you …Install/configure the development environment?Write code (syntax) and what are the code containers?Compile & run the code?Test and debug the code?Manage code (backups, versions, etc.)?Deploy application to users?

Where do you go for help?

Page 15: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

How do I install Python?

Usually installed with ArcGIS Python 2.4 with ArcGIS 9.2, 2.5 with 9.3, 2.6 with 10.0, 2.7 with 10.1 and 10.2

Download and run MSI from http://www.python.org

Python 2.x andPython 3.x are twodifferent developmentpaths of the languagee.g.

Page 16: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Post-install configuration

Environment variablesMy Computer – Properties – Advanced tab – Environment variables (System variables panel)

PATH – need to add path to python.exe

PYTHONPATH – module search path (for imports) (optional)

PYTHONSTARTUP – path to interactive startup file (optional)

Page 17: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

How do I write and run Python code?

1. Interactively (if Python folder is in PATH)

2. Script from command-line

This works because .pyis associated with Python.exe

Page 18: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

How do I write and run Python code?

3. Script by double-clicking .py file in Explorer

The raw_input() function waits for input from keyboard

(e.g. pressing enter)

Page 19: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

How do I write and run Python code?

• Run script using IDE buttons or keyboard shortcuts• Interactively in Python Interpreter window

Page 20: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

.py files and Python.exe

How does computer know .py files should be run using Python.exe?

In Explorer, Tools menu > Folder options > File types tab

Page 21: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Where do I go to learn more?

Python mother shiphttp://www.python.org

Any book by Mark Lutz (e.g. Learning Python, 3rd ed)

Google with “python” and some other keyword

Page 22: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Docs, help() and dir()

Docs: • http://www.python.org/doc • ActivePython27.chm

Page 23: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Integrated Development Environment – IDE

IDLE is a Python IDE that comes bundled with the Python installation (cross-platform)

PythonWin (part of ActivePython) is a Windows-only IDE

From http://www.activestate.com

PyScripter is the Python IDE we will use in this course

From http://code.google.com/p/pyscripter/ Source code available using Subversion client from http://pyscripter.googlecode.com/svn/trunk/

Page 24: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

IDLE

Page 25: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

PythonWin

Shortcuts:Alt + I = word completion (intellisense)Ctrl + A = select all text in windowCtrl + A then Delete = clear windowCtrl + Up arrow = previous commandCtrl + Down arrow = next command

Page 26: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

PyScripter

Page 27: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Installing PyScripter from EXE

Page 28: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Overview

Intro to …Computer hardware & softwareLow- and High-level languagesPython on Windows (install and use)Finding helpPython IDE’s (esp. PyScripter)

Intro to Python Programs & their partsExpressions, Operators, StatementsVariables (naming, assigning values, finding type)Core Python Types (esp. Numbers & Strings)Comments and line continuation

Page 29: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Python Programs & their parts …

Python programs are usually composed of Modules (.py files)Modules are composed of statementsStatements contain one or more expressionsExpressions create and process objects

Page 30: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Expressions and statements

Expressions are valid combination of one or more …

Variable names – e.g. recordCount, x, fileName, etc.

Python keywords – e.g. print, input, raw_input, exit, etc.

Operators - e.g. +, -, *, /, etc. Operands to the left and right

Literals - e.g. 2, “Spam”, etc.

Delimiters - e.g. (" , . : ')

Expressions can beArithmetic (output is a number)

Boolean (output is True or false)

A function call

etc.

Page 31: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Language Keywords

All programming languages have keywords that are “reserved” (can’t be used for other purposes) and are the for all coding

Page 32: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Expression List and Statements

A statement can have one expression

Or more than one expression separated by commas (an expression list)

Page 33: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Variable = Name associated with a value/object

Objects are created and names are associated with them. In this example, the 1 has two names associated with it.

Names are case sensitive

Page 34: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Rules for variable naming

Variable name syntax:_ or letter + any number of letters, digits, or _i.e. cannot begin with a number

Use names that describe the data they are associated with

e.g. “recordCount” is better than “n”

Use lowercase letter for first character, upper case letter for other words in name. This is called Camel Case.

Page 35: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Variables and assignments

Assignments create variables that are associated with values/objects

The following statement creates an integer in memory and associates it with the name x x = 1

Variables are created when they are first assigned

Variable names are not declared like C# with type int x;

Variables must be assigned before they are used

Page 36: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

dir() and del

The dir() function will display a list of all currently accessible modules and variables

The del command will delete the named variables

Page 37: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Core object types

Page 38: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Determine an variables type with type()

Page 39: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Core object types: Numbers

A category of similar object typesIntegers (1234)Long integers (unlimited size!)Floating point (123.4)Octal (0177) & Hex (0XFF)Complex (3.0+4j)

Page 40: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Numbers: Standard operations

Page 41: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Numbers: Up conversion

Python converts operands up to type of most complicated operand before performing math on same-type operandsWith float data types, the least significant bits can cause small “errors”

Page 42: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Numbers: Getting remainder of division

Finding whether or not a number is a factor of another numberUseful for finding whether or not a number is even(e.g. 4 % 2 = 0, 3 % 2 = 1)Use the modulo operator (%)

641

-42

Page 43: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

PEMDAS / BEMDAS

Operator precidenceParentheses/BracketsExponentiation Muliplication – DivisionAddition - Subtraction

Page 44: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Core object types: Strings

Strings=ordered collections (sequence) of charactersCan be enclosed by single or double quotes

len() built-in for getting length of strings

Many built-in string methods …

Page 45: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Escape sequences and raw

Backslash with one or more characters to support special byte codings

\n = newline\t = horizontal tab\\ = backslash\xhh = hex (e.g. \xFF = 255)

r = raw = …

Extended ascii table …

Page 46: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Multiline block strings """ …. """

Triple double- or single-quotes multiline stringsThe \n is inserted automatically

Page 47: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Concatenation, repetition, “in”

Page 48: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Dynamic typing and operator polymorphism

Expressions determine the initial type of object and this can be changed dynamically (dynamically typed)Objects support calls to methods supported by that objectOperators (e.g. +, *) are polymorphic

i.e. Behaviour depends on object types on either side

Note: In interactive mode, statement output is echoed to the screen. In file mode (run from Command tool or in IDE), statement output is not displayed without print.

Page 49: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Built-in operators and functions

Expression operators: +, -, *, /, **, >>, etc.Built-in functions: str(), abs(), etc.Type conversions: int(), float(), long(), str(), etc.Utility modules: math, random, NumPy, etc.Logical operators: ==, !=, <, <=, or, and, not, etc.

Page 50: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Line continuation

Page 51: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Comments

“The best kind of comments are the ones you don't need. Allow me to clarify that point. You should first strive to make your code as simple as possible to understand without relying on comments as a crutch. Only at the point where the code cannot be made easier to understand

should you begin to add comments.” From http://www.codinghorror.com/blog/archives/000749.html

Use # for single line or """ """ for multi-line comments.

Page 52: Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)

Overview

Intro to …Computer hardware & softwareLow- and High-level languagesPython on Windows (install and use)Finding helpPython IDE’s (esp. PyScripter)

Intro to Python Programs & their partsExpressions, Operators, StatementsVariables (naming, assigning values, finding type)Core Python Types (esp. Numbers & Strings)Comments and line continuation