Introduction to Python Lecture 1 Big Picture Language

Introduction to Python Lecture 1

Big Picture Language Features • Python is interpreted • Not compiled • • Object-oriented language There are no declarations of variables • Variables take a retain the type of the data assigned to it • • Whitespace is used as delimiters no main method CS 484 – Artificial Intelligence 2

First Statement • Hello World >>> print 'Hello World!' • Usually double and single quotes can be used interchangeably • A string in double quotes cannot contain a " • A string in single quotes cannot contain a ' • Put strings in """ if you need both or newlines Try: outputting Hello World on two lines CS 484 – Artificial Intelligence 3

Python Calculator • You can print the results of expressions (variables and functions) >>> print 6 + 5 >>> print ((8 % 3) ** (7 / 3)) * ( 5 – 1) • Integer vs. Floating point division >>> print 15 / 4. 0 CS 484 – Artificial Intelligence 4

Using Formatted Strings • Combining strings and numbers >>> print 'The total is ', 24+53 • Combining strings with many numbers >>> print "The sum of %d and %d is %d" % (7, 18, (7 + 18)) • Just like printf in C, other example codes • %s – String • %x – Hexadecimal • %0. 2 f – A real number with two figures following the decimal point • %4 d – Leading spaces to pad the number to at least 4 digits • %04 d – Leading 0's to pad the number to at least 4 digits CS 484 – Artificial Intelligence 5

Other important features • Comments begin with a # >>> print 7 + 5 # This should print 12 • Making use of libraries or other functions and methods you have written >>> >>> import sys. exit() from random import * from pyrobot. brain import Brain CS 484 – Artificial Intelligence 6

Python Error Messages >>> print 'fred' + 7 Traceback (innermost last): File "<stdin>", line 1, in ? Type. Error: cannot concatenate 'str' and 'int' objects • • Errors only reported when line is encountered Python's error messages are often wrong • Inspect the line of the error and a few above CS 484 – Artificial Intelligence 7

Variables • • Variables are not declared Can change types with new assignments >>> >>> q = 7 # q is currently a number print q q = 'Seven' # q is reassign to a string print q CS 484 – Artificial Intelligence 8

String Operators • + operator: String Concatenation >>> print 'Again' + ' and again' • * operator: String repetition >>> print 'repeat ' * 3 • Combining operators >>> print 'Again' + (' and again' * 3) • String methods are documented here http: //docs. python. org/lib/string-methods. html CS 484 – Artificial Intelligence 9

Boolean Operators C/Java Operator A && B A || B A == B A != B !A Python Operator A and B A or B A == B A != B A <> B not A • Relational operators are all the same • 5 <= 6 • Boolean values • True (case sensitive) • False Try print ((5 <= 6) == true) CS 484 – Artificial Intelligence 10

Lists • A sequence of items • Has the ability to grow (unlike array) • Use indexes to access elements (array notation) • examples a. List = [] another = [1, 2, 3] • You can print an entire list or an element print another[0] • index -1 accesses the end of a list CS 484 – Artificial Intelligence 11

List operation • append method to add elements (don't have to be the same type) a. List. append(42) a. List. append(another) • del removes elements del a. List[0] • • # removes 42 Concatenate lists with + Add multiple elements with * zerolist = [0] * 5 • Multiple assignments point = [1, 2] x , y = point • More operations can be found at set. html http: //docs. python. org/lib/types- CS 484 – Artificial Intelligence 12

Control Statements • Conditionals if <condition>: <tab><statement(s)> else: <tab><statement(s)> • Example: name = "Jane" if "a" in name: print "There is an 'a'" else: print "There is not an 'a'" • There is no switch statement CS 484 – Artificial Intelligence 13

Control Statements • Loops while <condition>: <tab><statement(s)> for <var> in range(i, j): # up to but # not including j <tab><statement(s)> • Example: name = "Jane" for c in name: print c • no do while loops CS 484 – Artificial Intelligence 14

Interacting with user • Obtaining data from a user • Use function raw_input for strings or input for numbers • Example name = raw_input("What's your name? ") • Command Line arguments • Example: import sys for item in sys. argv: print item • Remember sys. argv[0] is the program name CS 484 – Artificial Intelligence 15

Defining New Functions • Syntax def <function name>(<argument list>): <tab><statements> • Remember there is not type checking • Function may or may not return something • Example def times(n): for i in range(1, 13): print "%2 d x %2 d = %3 d" % (i, n, i*n) CS 484 – Artificial Intelligence 16

Classes • Begin with header line class <class. Name>: • Constructor and methods • tabbed over once • first argument is "self" • Constructor def __init__(self, <other arguments>): <tab><statement(s)> • Methods def <method name> (self, <other arguments>): <tab><statement(s)> • Class variables self. <variable name> CS 484 – Artificial Intelligence 17

Example Class class Message: def __init__(self, a. String): self. text = a. String def print. It(self): print self. text def get. Message(self): return self. text Use: from Message import * msg = Message("hi") msg. print. It() CS 484 – Artificial Intelligence 18

Using Files • Function opens a file in the mode specified by the argument <file handle> = open(<file name>, <mode>) • file name is a string with path and name of the file • Possible modes • • • "r" to read "w" to write "rb" to read a binary file "wb" to write a binary file Example input = open("my. File. txt", "r") output = open("copy. txt", "w") for line in input. readlines(): output. write(line) input. close() output. close() CS 484 – Artificial Intelligence 19

Sample Program # file: create. Dict. py # by: Dawn Lawrie # date: September 8, 2005 # Reads the standard dictionary and creates a simpler # dictionary that only includes words in all lowercase letters # without aprostrophes # Opens the input and output files input = open("/usr/share/dict/american-english", "r") output = open("simple. Dict", "w") # Reads each lines of the dictionary for line in input. readlines(): # Assumes that the word should not be in the simpler # dictionary good = False CS 484 – Artificial Intelligence 20

Sample Program # Accepts the word if it contains at least one lowercase # letter lowercase = "abcdefghijklmnopqrstuvwxyz" for c in lowercase: if not good and c in line: good = True # Rejects the word if there is an apostrophe if "'" in line: good = False # Rejects the word if it contains a uppercase letter if good: caps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" for c in caps: if good and c in line: good = False CS 484 – Artificial Intelligence 21

Sample Program con't # Outputs the word if it is acceptable if good: output. write(line) CS 484 – Artificial Intelligence 22

Using String Methods # file: create. Dict 2. py # by: Dawn Lawrie # date: September 8, 2005 … code the opens files has been removed # Reads each lines of the dictionary for line in input. readlines(): # Removes all leading and trailing whitespace word = line. strip() # Outputs the word if all the characters are alphabetic # and they are all lowercase if word. isalpha() and word. islower(): output. write(word + "n") CS 484 – Artificial Intelligence 23

Pitfalls • My common mistakes • Forgetting ": " in a condition or loop especially after else • Emacs helps because it won't tab over • Forgetting "self" before class variables • Without it python creates a new variable • Forgetting the return statement • This turned up as a type mismatch when I tried to use the results of the function which I had stored in another variable (Very Confusing) CS 484 – Artificial Intelligence 24

Lab Exercise • Write a program in python that plays hangman CS 484 – Artificial Intelligence 25
- Slides: 25