Difference between revisions of "CSC111 Exercises with If-Statements"
(→Exercise 5) |
(→Solution 2) |
||
Line 110: | Line 110: | ||
==Solution 2 == | ==Solution 2 == | ||
+ | # this version only checks for 'y' or 'Y'. If the user types something else | ||
+ | # then the program will treat the answer as "NO" | ||
ans = input( "Do you like chocolate (Y/N)? " ) | ans = input( "Do you like chocolate (Y/N)? " ) | ||
if ans.lower()=='y': | if ans.lower()=='y': | ||
Line 115: | Line 117: | ||
else: | else: | ||
print( "Sorry you don't like it!" ) | print( "Sorry you don't like it!" ) | ||
+ | |||
+ | # this version checks for both Yes and for No answers. | ||
+ | ans = input( "Do you like chocolate (Y/N)? " ) | ||
+ | if ans.lower()=='y': | ||
+ | print( "You said yes!" ) | ||
+ | else: | ||
+ | if ans.lower() =='n': | ||
+ | print( "Sorry you don't like it!" ) | ||
+ | else: | ||
+ | print( "Invalid input!" ) | ||
==Solution 3 == | ==Solution 3 == |
Revision as of 16:57, 22 October 2011
--D. Thiebaut 09:23, 20 October 2011 (EDT)
Contents
Exercises
You can use this program to test your answers to the questions:
from graphics import *
import time
def main1():
w = 500
h = 500
radius = 20
win = GraphWin( "lab 7", w, h )
c = Circle( Point( w/2, h/2 ), radius )
c.setFill( "magenta" )
c.draw( win )
dirX = 5 # speed in the horizontal direction
for step in range( 1000 ):
# uncomment next line if ball moves too fast
# time.sleep( 0.05 ) # 5/100th sec.
c.move( dirX, 1 )
Text( Point( w//2, h//2 ), "Click me to quit!" ).draw( win )
win.getMouse()
win.close()
def main2():
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ]
print( "L = ", L )
def main3():
x = eval( input( "> " ) )
y = eval( input( "> " ) )
print( x, '/', y, '=', x/y )
#main1()
#main2()
main3()
Exericse 1
- Program asks for 2 numbers from user, then show the result of dividing first by second.
x = eval( input( "> " ) )
y = eval( input( "> " ) )
print( x, '/', y, '=', x/y )
- Make this program robust!
Exercise 2
- User is asked a question and must respond by Yes or by No, using the letter y or n only. Make the program detect correctly the user input.
Exercise 3
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ]
- Given the list above, write the code necessary to remove the numbers that are strictly less than 0 from L
- Same question, but we want the list to contain only the positive numbers that are multiples of 5.
Exercise 4
- Write the code for a graphics program that will make a circle move from one end of the window to the other, and such that the circle will be yellow in the left half of the window, and will turn red when it is in the right half.
Exercise 5
- Make the ball bounce off the right vertical side of the window
Solutions
Solution 1
x = eval( input( "> " ) ) y = eval( input( "> " ) ) if y==0: print( "Invalid input. Cannot divide by 0!" ) else: print( x, '/', y, '=', x/y )
Solution 2
# this version only checks for 'y' or 'Y'. If the user types something else # then the program will treat the answer as "NO" ans = input( "Do you like chocolate (Y/N)? " ) if ans.lower()=='y': print( "You said yes!" ) else: print( "Sorry you don't like it!" ) # this version checks for both Yes and for No answers. ans = input( "Do you like chocolate (Y/N)? " ) if ans.lower()=='y': print( "You said yes!" ) else: if ans.lower() =='n': print( "Sorry you don't like it!" ) else: print( "Invalid input!" )
Solution 3
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ] L2 = [] for x in L: if x >= 0: L2.append( x ) L = L2 print( "List with positive numbers = ", L ) L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ] L2 = [] for x in L: if x >=0 and x % 5 == 0: L2.append( x ) L = L2 print( "Positive numbers that are multiple of 5: ", L )
Solution 4
from graphics import *
import time
def main1():
w = 500
h = 500
radius = 20
win = GraphWin( "lab 7", w, h )
c = Circle( Point( w/2, h/2 ), radius )
c.setFill( "magenta" )
c.draw( win )
dirX = 5 # speed in the horizontal direction
dirY = 3
for step in range( 1000 ):
# uncomment next line if ball moves too fast
# time.sleep( 0.05 ) # 5/100th sec.
c.move( dirX, dirY )
# test to see if the ball is outside the window
if c.getCenter().getX() < 0 or c.getCenter().getX() > w:
dirX = -dirX
if c.getCenter().getY() < 0 or c.getCenter().getY() > h:
dirY = -dirY
Text( Point( w//2, h//2 ), "Click me to quit!" ).draw( win )
win.getMouse()
win.close()
def main2():
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ]
print( "L = ", L )
def main3():
x = eval( input( "> " ) )
y = eval( input( "> " ) )
print( x, '/', y, '=', x/y )
#main1()
#main2()
main3()