WEEK03: booleans, conditionals (if/else) ---------------------------------------- F: review expressions, if/elif/else, comparison operators FUN: http://en.wikipedia.org/wiki/George_Boole POWER vim USERS: all of these should be run from command mode (hit Esc to switch to command mode) F9 runs your python program (without leaving the editor) dd delete a line 5dd delete 5 lines p paste (below where cursor is) yy copy a line u undo (multiple levels, if needed) Ctrl-r redo shift-v select text using arrow keys > or < to shift selected text left or right :colorscheme blue switch to blue colorscheme (add to .vimrc file to make permanent) CONDITIONAL STATEMENTS: if < condition > : do this and this and anything indented to this level else: do that and that EXAMPLE: speed = input("\nHow fast were you going? ") if speed > 55: print "that's too fast....SLOW DOWN!!!!!!!!!!!!!" print "here's your ticket\n" else: print "OK...off you go.\n" WRITE YOUR PROGRAMS IN STAGES!! - write a small part of your program, then test it - once it works, add another small part, then test it again - and so on... Here's an example: $ python multiply1.py Let's test your multiplication skills... What is 3 x 7 ? 20 Incorrect....the answer was 21 $ python multiply1.py Let's test your multiplication skills... What is 3 x 7 ? 21 CORRECT!! - this program always asks 3 x 7 - not much fun yet, but let's get that to work, then add to it! """ program to test user multiplication skills J. Knerr -- Fall 2012 """ # ------------------------------------------------------ # def main(): """ask user question, give feedback on user answer""" print "\nLet's test your multiplication skills...\n " a = 3 b = 7 answer = a * b question = "What is %d x %d ? " % (a,b) useranswer = input(question) if useranswer == answer: print "CORRECT!!\n" else: print "Incorrect....the answer was %d\n" % (answer) # ------------------------------------------------------ # main() - note use of variables a, b, and answer - use variables!! makes code easy to read and more efficient - also can make code easy to update, like this: $ python multiply2.py Let's test your multiplication skills... Please enter a factor: 5 What is 5 x 7 ? 35 CORRECT!! $ python multiply2.py Let's test your multiplication skills... Please enter a factor: 6 What is 6 x 7 ? 42 CORRECT!! - now we are asking the user for a factor, then testing them on factor x 7 - the only difference between this new code and the one above? change a = 3 to a = input("Please enter a factor: ") # --------------------------------------------------- # ADD RANDOM NUMBERS TO YOUR PROGRAMS: >>> from random import * >>> x = randrange(1,11) >>> print x 2 >>> x = randrange(1,11) >>> print x 9 >>> x = randrange(1,11) >>> print x 3 >>> >>> item = choice(["apple", "orange", "lemon"]) >>> print item apple >>> item = choice(["apple", "orange", "lemon"]) >>> print item apple >>> item = choice(["apple", "orange", "lemon"]) >>> print item lemon >>> item = choice(["apple", "orange", "lemon"]) >>> print item orange - change the above multiply code to test the user on factor x random_number: $ python multiply3.py Let's test your multiplication skills... Please enter a factor: 5 What is 5 x 9 ? 45 CORRECT!! $ python multiply3.py Let's test your multiplication skills... Please enter a factor: 5 What is 5 x 5 ? 25 CORRECT!! # --------------------------------------------------- # - now let's put this in a LOOP and ask the user 3 multiplication questions: $ python multiply4.py Let's test your multiplication skills... Please enter a factor: 5 What is 5 x 5 ? 25 CORRECT!! What is 5 x 2 ? 10 CORRECT!! What is 5 x 4 ? 20 CORRECT!! # --------------------------------------------------- # - if you have time: keep track of how many they get correct and include a message at the end, based on how well they did: $ python multiply5.py Let's test your multiplication skills... Please enter a factor: 5 What is 5 x 10 ? 50 CORRECT!! What is 5 x 2 ? 10 CORRECT!! What is 5 x 5 ? 25 CORRECT!! Excellent work!! $ python multiply5.py Let's test your multiplication skills... Please enter a factor: 5 What is 5 x 10 ? 1 Incorrect....the answer was 50 What is 5 x 4 ? 1 Incorrect....the answer was 20 What is 5 x 7 ? 1 Incorrect....the answer was 35 Not so good...you need to run the program again! :( # --------------------------------------------------- # NOTE: for this last part you need if/elif/else branching: if nright == nprobs: print "Excellent work!!" elif nright > nprobs/2: print "Good job. Keep practicing!" else: print "Not so good...you need to run the program again! :( "