Python Lecture 1
Basic Python programs,
   defining functions
                        Python!
• Created in 1991 by Guido van Rossum (now at Google)
   – Named for Monty Python
• Useful as a scripting language
   – script: A small program meant for one-time use
   – Targeted towards small to medium sized projects
• Used by:
   – Google, Yahoo!, Youtube
   – Many Linux distributions
   – Games and apps (e.g. Eve Online)
                 Installing Python
Windows:                                 Mac OS X:
• Download Python from                   • Python is already installed.
  http://www.python.org                  • Open a terminal and run python
• Install Python.                          or run Idle from Finder.
• Run Idle from the Start Menu.
                                         Linux:
                                         • Chances are you already have
                                            Python installed. To check, run
                                            python from the terminal.
                                         • If not, install from your
                                           distribution's package system.
Note: For step by step installation
instructions, see the course web site.
           Interpreted Languages
• interpreted
  – Not compiled like Java
  – Code is written and then directly executed by an interpreter
  – Type commands into interpreter and see immediate results
   Java:                          Runtime
             Code    Compiler                  Computer
                                Environment
   Python:              Code     Interpreter   Computer
          The Python Interpreter
• Allows you to type commands one-at-a-time and see results
• A great way to explore Python's syntax
   – Repeat previous command: Alt+P
                  Basic Java code
•   File name == class_name.java
•   Console output: System.out.println
•   Methods: public static void name() { ...
•   main: function where the execution begins
•   > javac Hello2.java
•   >java Hello2
Hello2.java
1   public class Hello2 {
2       public static void main(String[] args) {
3           hello();
4       }
5
6       public static void hello() {
7           System.out.println("Hello, world!");
8       }
9   }
         Our First Python Program
• Python does not have a main method like Java
   – The program's main code is just written directly in the file
• Python statements do not end with semicolons
                  hello.py
                   1   print "Hello, world!"
          The print Statement
 print "text"
 print               (a blank line)
 – Escape sequences such as \" are the same as in Java
 – Strings can also start/end with '
swallows.py
1   print "Hello, world!"
2   print
3   print "Suppose two swallows \"carry\" it together."
4   print 'African or "European" swallows?'
                     Comments
• Syntax:
   # comment text (one line)
 swallows2.py
  1   # Student, CS G523
  2   # This program prints important messages.
  3   print "Hello, world!"
  4   print                  # blank line
  5   print "Suppose two swallows \"carry\" it together."
  6   print 'African or "European" swallows?'
                       Functions
• Function: Equivalent to a static method in Java.
• Syntax:
                             hello2.py
   def name():
       statement              1   # Prints a helpful message.
                              2   def hello():
       statement              3       print "Hello, world!"
       ...                    4
                              5   # main (calls hello twice)
       statement              6   hello()
                              7   hello()
   – Must be declared above the 'main' code
   – Statements inside the function must be indented
          Whitespace Significance
• Python uses indentation to indicate blocks, instead of {}
   – Makes the code simpler and more readable
   – In Java, indenting is optional. In Python, you must indent.
               hello3.py
                1   # Prints a helpful message.
                2   def hello():
                3       print "Hello, world!"
                4       print "How are you?"
                5
                6   # main (calls hello twice)
                7   hello()
                8   hello()
                       Exercise
• Write a optimized program in Python (using function calls).
  Its output should be:
      ______
    /       \
   /           \
   \           /
    \______/
   \           /
    \______/
   +--------+
      ______
    /       \
   /         \
   |  STOP |
   \         /
    \______/
      ______
    /       \
   /        \
   +--------+
               Exercise Solution
def egg():                 def top():
    top()                      print " ______"
    bottom()                   print " /     \\"
    print                      print "/       \\"
def cup():                 def bottom():
    bottom()                   print "\\        /"
    line()                     print " \\______/"
    print
                           def line():
def stop():                    print "+--------+"
    top()
    print "|   STOP   |"   # main
    bottom()               egg()
    print                  cup()
                           stop()
def hat():                 hat()
    top()
    line()
    print
             General Information
• Unlike C/C++ or Java, Python statements do not end in a
  semicolon
• In Python, indentation is the way you indicate the scope of
  a conditional, function, etc.
• Look, no braces!
• Python is interpretive, meaning you don’t have to write
  programs.
• You can just enter statements into the Python environment
  and they’ll execute
• For the most part, we’ll be writing programs
                                             14
             The Python Shell
• Because Python is interpretive, you can do simple
  things with the shell
• At the prompt, type Python
• You should have a >>> prompt
• Type in:
print(“hello, world”)
• You have written your first Python program
• Keep the shell up; we’ll be using it
                                          15
                The Python Shell
• This is good for simple calculations but not for real
  programming
• For programming, we’ll use Idle
• There are two versions: Idle for Python 2.7 and Idle3 for
  Python 3.2
• For most of what we do, we’ll have to use 2.7 because
  Bluetooth doesn’t seem to work with 3.2
• You’ll run as the “superuser” because otherwise you won’t
  have access to the GPIO pins
• Idle will give you access to a shell but also to an IDE for
  writing and saving programs
                                             16
                 Python Modules
• In practice, only the simplest programs are run in the shell
• You can create a module by going to the File->New Window
  menu option
• This brings up a text editor that lets you create a Python
  program and run it
• Write your first “Hello World!” program thus:
print(“Hello, World!”)
                                            17
                 Python Modules
• Press F5
• It will ask you to save the file before you run it
• Save it to your home directory as HelloWorld.py
• You must provide the .py extension
• If you want to run it outside of the development
  environment simply type:
python HelloWorld.py
• Note that Linux is case sensitive
                                              18
                      Variables
• As in every language, a variable is the name of a memory
  location
• Python is weakly typed
• That is, you don’t declare variables to be a specific type
• A variable has the type that corresponds to the value you
  assign to it
• Variable names begin with a letter or an underscore and can
  contain letters, numbers, and underscores
• Python has reserved words that you can’t use as variable
  names
                                            19
                     Variables
• At the >>> prompt, do the following:
x=5
type(x)
x=“this is text”
type(x)
x=5.0
type(x)
                                         20
                        Printing
• You’ve already seen the print statement
• You can also print numbers with formatting
• These are identical to Java or C format specifiers
                                              21
                     Comments
• All code must contain comments that describe what it does
• In Python, lines beginning with a # sign are comment lines
You can also have comments on the same line as a statement
# This entire line is a comment
x=5          # Set up loop counter
                                            22
                       Operators
• Arithmetic operators we will use:
   – + - * /         addition, subtraction/negation, multiplication,
     division
   – %               modulus, a.k.a. remainder
   – **              exponentiation
• precedence: Order in which operations are computed.
   – * / % ** have a higher precedence than + -
     1 + 3 * 4 is 13
   – Parentheses can be used to force a certain order of
     evaluation.
     (1 + 3) * 4 is 16
                                                 23
                      Expressions
• When integers and reals are mixed, the result is a real
  number.
   – Example: 1 / 2.0 is 0.5
   – The conversion occurs on a per-operator basis.
   – 7 / 3 * 1.2 + 3 / 2
   –   2   * 1.2 + 3 / 2
   –     2.4      + 3 / 2
   –     2.4      +   1
   –          3.4
                                               24
                  Math Functions
– Use this at the top of your program: from math import *
                                              25
             Relational Operators
• Many logical expressions use relational operators:
                                             26
               Logical Operators
• These operators return true or false
                                         27
             The if Statement
• Syntax:
if <condition>:
      <statements>
x = 5
if x > 4:
      print(“x is greater than 4”)
print(“This is not in the scope of the if”)
                                    28
               The if Statement
• The colon is required for the if
• Note that all statement indented one level in from the if
  are within it scope:
x = 5
if x > 4:
      print(“x is greater than 4”)
      print(“This is also in the scope of the if”)
                                           29
          The if/else Statement
if <condition>:
      <statements>
else:
      <statements>
• Note the colon following the else
• This works exactly the way you would expect
                                           30
                     The for Loop
• This is similar to what you’re used to from C or Java, but not the
  same
• Syntax:
       for variableName in groupOfValues:
             <statements>
• variableName gives a name to each value, so you can refer to it
  in the statements.
• groupOfValues can be a range of integers, specified with the
  range function.
• Example:
      for x in range(1, 6):
           print x, "squared is", x * x
                                                  31
                        Range
• The range function specifies a range of integers:
range(start, stop)         - the integers between start
(inclusive) and stop (exclusive)
• It can also accept a third value specifying the change
   between values.
range(start, stop, step) - the integers between
start (inclusive) and stop (exclusive) by step
                                            32
                 The while Loop
• Executes a group of statements as long as a condition is
  True.
• Good for indefinite loops (repeat an unknown number of
  times)
• Syntax:
      while <condition>:
           <statements>
• Example:
      number = 1
      while number < 200:
           print number,
           number = number * 2
                                            33
                       Exercise
• Write a Python program to compute and display the first 16
  powers of 2, starting with 1
• Do this in the Python shell
                                            34