520 likes | 711 Views
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)
E N D
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
Computer hardware • Input (keyboard, mouse, microphone, network, camera, etc.) • Output (screens, printers, network, etc) • Primary Memory (RAM) • Fast read/write memory • Storage for OS, Applications, and data • Data lost with power loss • Secondary Memory (Disks) • Slow relative to primary memory • Storage for applications and data files • Data persists with power loss • ALU (Arithmetic and Logic Unit) • Perform calculations • CPU (Central Processing Unit) • Manages operations between units
Computer software Computer program = Set of instructions a computer follows to perform a task = 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 software • Word 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).
In computers: binary, everything, binary … • 0’s and 1’s are the only thing acomputer can deal with • HOWEVER, 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. • Operations • Math (+, -, *, /, etc), File I/O, CPU instructions, etc. • Messages between devices (keyboard, mouse, web-cam, etc) Decimal to binary conversion tool
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.
Unicode http://www.unicode.org/standard/WhatIsUnicode.html http://www.unicode.org/Public/UNIDATA/UnicodeData.txt Hex-to-decimal converter
Pentium Instruction Set (x86 family) Machine language is a bunch of 1’s and 0’s in specific patterns that a CPU understands. From http://www.intel.com/design/pentium/manuals/24319101.pdf
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 in memory only (i.e. no .pyc created)
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) High-level Programming Languages Non-C/BASIC-based languages include Python, Smalltalk, Eiffel, FORTRAN, COBOL, Pascal, etc.
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 and Python 3.x are two different development paths of the language e.g.
Post-install configuration • Environment variables • My 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)
How do I write and run Python code? 1. Interactively (if Python folder is in PATH) 2. Script from command-line This works because .py is associated with Python.exe
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)
How do I write and run Python code? • Run script using IDE buttons or keyboard shortcuts • Interactively in Python Interpreter window
.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
Where do I go to learn more? • Python mother ship • http://www.python.org • Any book by Mark Lutz (e.g. Learning Python, 3rd ed) • Google with “python” and some other keyword
Docs, help() and dir() Docs: • http://www.python.org/doc • ActivePython27.chm
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/
PythonWin Shortcuts: Alt + I = word completion (intellisense) Ctrl + A = select all text in window Ctrl + A then Delete = clear window Ctrl + Up arrow = previous command Ctrl + Down arrow = next command
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
Python Programs & their parts … • Python programs are usually composed of Modules (.py files) • Modules are composed of statements • Statements contain one or more expressions • Expressions 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 be • Arithmetic (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 xx = 1 • Variables are created when they are first assigned • Variable names are not declared like C# with typeint 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: Numbers • A category of similar object types • Integers (1234) • Long integers (unlimited size!) • Floating point (123.4) • Octal (0177) & Hex (0XFF) • Complex (3.0+4j)
Numbers: Up conversion • Python converts operands up to type of most complicated operand before performing math on same-type operands • With 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 number • Useful for finding whether or not a number is even(e.g. 4 % 2 = 0, 3 % 2 = 1) • Use the modulo operator (%) 1 4 6 -4 2
PEMDAS / BEMDAS • Operator precidence • Parentheses/Brackets • Exponentiation • Muliplication – Division • Addition - Subtraction
Core object types: Strings • Strings=ordered collections (sequence) of characters • Can be enclosed by single or double quotes • len() built-in for getting length of strings • Many built-in string methods …
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 …
Multiline block strings """ …. """ • Triple double- or single-quotes multiline strings • The \n is inserted automatically
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 object • Operators (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.
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.