Nested Loops and Functions

Example:
for i in range(5):
for j in range(3):
print "i = " + str(i), "j = " + str(j)

Output:
i = 0 j = 0
i = 0 j = 1
i = 0 j = 2
i = 1 j = 0
i = 1 j = 1
i = 1 j = 2
i = 2 j = 0
i = 2 j = 1
i = 2 j = 2
i = 3 j = 0
i = 3 j = 1
i = 3 j = 2
i = 4 j = 0
i = 4 j = 1
i = 4 j = 2

Example: A Python program that reads 10 strings from the user, and for each string, prints the number of times the letter "a" appears in the string.

Exercise: Write a python program that prints the following triangle, in which the first row contains 1 *, row 2 contains 2 *'s, ... and row 10 contains 10 *'s.
*
**
***
****
*****
******
*******
********
*********
**********

Note: One disadvantage of printing with print is that print always adds a blank space after each printed item. We can avoid this by using sys.stdout.write() from the sys library.

import sys
sys.stdout.write("hello")
sys.stdout.write("world")

Output: helloworld

Exercise: Write a python function printTriangle() that has a parameter for the number of rows in a triangle like the one in the last example. In the main function, read the number of rows from the user (and prompt the user for another value until the input is positive). Then call the printTriangle() function.

Exercise: Write a Python program that prints the following output. The triangle contains 10 rows. The first row contains 1 *, the second contains 2 *'s, etc.
*
**
***
...
**********

Functions with Parameters and Return Values

General form of a function definition:
``` def functionName(parm1, parm2, parm3):     <code>     <more code>     return someValue```

To call this function:
``` answer = functionName(arg1, arg2, arg3)```

What happens when the function is called?
functionName is executed with:
• `parm1` set to `arg1`
• `parm2` set to `arg2`, and
• `parm3` set to `arg3`

The value that is returned by the function is assigned to the variable `answer`.

Example:
def main():
# run sumIt with small=2, large=4
print sumIt(2, 4)
# run sumIt with small = -1, large = 5
print sumIt(-1, 5)

def sumIt(small, large):
if small <= large:
sum = 0
for i in range(small, large+1):
sum += i
else:
sum = 0
return sum

main()  # execute main function

Exercise: Write a function called reverseIt that takes a string parameter and returns the reverse of the string. Write a main function that reads 10 strings from the user, and prints the reverse of each string.