Difference between revisions of "CSC111 Lab 3 2014"

From dftwiki3
Jump to: navigation, search
(Created page with "--~~~~ ---- <br /> =If Statements: Loosening Up= Using the code snippet shown below, change the ''boolean expression'' inside the '''if-statement''' so that the program beha...")
 
(If Statements: Loosening Up)
Line 47: Line 47:
 
<br />
 
<br />
 
; Test Case #6
 
; Test Case #6
: modify the boolean expression so that the program outputs '''<font color="magenta">valid input</font>''' '''only if''' x is divisible by 2 and between 0 and 100,  included.  Verify that your program correctly accepts 0, 10, 90, 100, but rejects not -10
+
: modify the boolean expression so that the program outputs '''<font color="magenta">valid input</font>''' '''only if''' x is divisible by 2 and between 0 and 100,  included.  Verify that your program correctly accepts 0, 10, 90, 100, but rejects -10, 99, or 101.
99, or 101.
+
<br />
 +
=Testing Strings=
 +
<br />
 +
We saw that strings are '''objects''', and as such have '''methods''' that allow us to either generate new strings, or somehow explore what is inside the string.
 +
 
 +
Try the commands below and see how the string '''find( )''' method works:
 +
<br />
 +
>>> name = "Santa Claus"
 +
>>> name.find( 'a' )
 +
 +
>>> name.find( 'c' )
 +
 +
>>> name. find( 'santa' )
 +
 +
>>> name.find( 'SANTA' )
 +
 +
>>> name.find( 'a C' )
 +
 +
>>> name.find( 'Claus' )
 +
 +
>>> name.find( 'Mrs Claus' )
 +
 +
>>> name2 = name.lower()
 +
>>> name2.find( 'Santa' )
 +
 +
>>> name2.find( 'santa' )
 +
 +
>>> name2 = name.upper()
 +
>>> name2.find( 'santa' )
 +
 +
>>> name2.find( 'SANTA' )
 +
 +
<br />
 +
 
 +
Now try this simple program:
 +
 
 +
<br />
 +
<source lang="python">
 +
 
 +
name = input( "Hello!  What is your name? " )
 +
 
 +
if name.find( "Santa" ) != -1:
 +
    print( "Ho, Ho, Ho Santa Claus!" )
 +
else:
 +
    print( "Hello there, " + name + "!" )
 +
 
 +
</source>
 +
<br />
 +
 
 +
{| style="width:100%; background:silver"
 +
|-
 +
|
 +
==Challenge #1: adding robustness==
 +
|}
 +
[[Image:QuestionMark1.jpg|right|120px]]
 +
<br />
 +
Run the program again and try the following names when the program prompts you:
 +
* Santa
 +
* Nicholas
 +
* Mrs Claus
 +
* SANTA
 +
* santa
 +
 
 +
You will have noticed that the program does not always recognize '''Santa''' because of the way uppercase/lowercase spelling.
 +
Modify the program so that it recognizes '''Santa''' and greets him properly whether it is spelled '''SANTA''', '''santa''', or even '''SanTA'''.
 
<br />
 
<br />

Revision as of 07:52, 12 February 2014

--D. Thiebaut (talk) 07:22, 12 February 2014 (EST)



If Statements: Loosening Up

Using the code snippet shown below, change the boolean expression inside the if-statement so that the program behaves the required way:

# Validity test example
x = int( input( "Please enter an integer: " ) )
if    ...      :
    print( "valid input" )
else:
    print( "invalid input" )


Example: put a boolean expression such that the program will print valid input if x is an integer different from 0.

In this case you would change the program to:

# Validity test example
x = int( input( "Please enter an integer: " ) )
if    x != 0     :
    print( "valid input" )
else:
    print( "invalid input" )


Test Case #1
modify the boolean expression so that the program outputs valid input only if x is greater than 10. Run your program and verify that it works for values equal to 0 and values not equal to 0.


Test Case #2
modify the boolean expression so that the program outputs valid input only if x is greater between the values of 10 and 20, excluded. The values 10 and 20 are not considered valid in this test case.


Test Case #3
modify the boolean expression so that the program outputs valid input only if x is greater between the values of 10 and 20, included. The values 10 and 20 are considered valid in this test case.


Test Case #4
modify the boolean expression so that the program outputs valid input only if x is an even number only.


Test Case #5
modify the boolean expression so that the program outputs valid input only if x is divisible by 2 and divisible by 5. Test your program with numbers such as 18, 20, 22, -10, etc.


Test Case #6
modify the boolean expression so that the program outputs valid input only if x is divisible by 2 and between 0 and 100, included. Verify that your program correctly accepts 0, 10, 90, 100, but rejects -10, 99, or 101.


Testing Strings


We saw that strings are objects, and as such have methods that allow us to either generate new strings, or somehow explore what is inside the string.

Try the commands below and see how the string find( ) method works:

>>> name = "Santa Claus"
>>> name.find( 'a' )

>>> name.find( 'c' )

>>> name. find( 'santa' )

>>> name.find( 'SANTA' )

>>> name.find( 'a C' )

>>> name.find( 'Claus' )

>>> name.find( 'Mrs Claus' )

>>> name2 = name.lower()
>>> name2.find( 'Santa' )

>>> name2.find( 'santa' )

>>> name2 = name.upper()
>>> name2.find( 'santa' )

>>> name2.find( 'SANTA' )


Now try this simple program:


name = input( "Hello!  What is your name? " )

if name.find( "Santa" ) != -1:
    print( "Ho, Ho, Ho Santa Claus!" )
else:
    print( "Hello there, " + name + "!" )


Challenge #1: adding robustness

QuestionMark1.jpg


Run the program again and try the following names when the program prompts you:

  • Santa
  • Nicholas
  • Mrs Claus
  • SANTA
  • santa

You will have noticed that the program does not always recognize Santa because of the way uppercase/lowercase spelling. Modify the program so that it recognizes Santa and greets him properly whether it is spelled SANTA, santa, or even SanTA.