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
52
Embed
Overview Intro to … Computer hardware & software Low- and High-level languages Python on Windows (install and use) Finding help Python IDE’s (esp. PyScripter)
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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
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)
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.
Low-level languages
Assembly is an example of a low-level language (close to machine language)
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.
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)
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.
C vs VB vs Python
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?
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.
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/
IDLE
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
PyScripter
Installing PyScripter from EXE
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
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
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.
Language Keywords
All programming languages have keywords that are “reserved” (can’t be used for other purposes) and are the for all coding
Expression List and Statements
A statement can have one expression
Or more than one expression separated by commas (an expression list)
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
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.
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
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
Core object types
Determine an variables type with type()
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)
Numbers: Standard operations
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”
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 (%)
Triple double- or single-quotes multiline stringsThe \n is inserted automatically
Concatenation, repetition, “in”
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.
“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.
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