# 9.22. Exercises¶

1. What is the result of each of the following:

1. ‘Python’[1]
2. “Strings are sequences of characters.”[5]
3. len(“wonderful”)
4. ‘Mystery’[:4]
5. ‘p’ in ‘Pineapple’
6. ‘apple’ in ‘Pineapple’
7. ‘pear’ not in ‘Pineapple’
8. ‘apple’ > ‘pineapple’
9. ‘pineapple’ < ‘Peach’
1. ‘Python’[1] = ‘y’
2. ‘Strings are sequences of characters.’[5] = ‘g’
3. len(‘wonderful’) = 9
4. ‘Mystery’[:4] = ‘Myst’
5. ‘p’ in ‘Pineapple’ = True
6. ‘apple’ in ‘Pineapple’ = True
7. ‘pear’ not in ‘Pineapple’ = True
8. ‘apple’ > ‘pineapple’ = False
9. ‘pineapple’ < ‘Peach’ = False
2. In Robert McCloskey’s book Make Way for Ducklings, the names of the ducklings are Jack, Kack, Lack, Mack, Nack, Ouack, Pack, and Quack. This loop tries to output these names in order.

prefixes = "JKLMNOPQ"
suffix = "ack"

for p in prefixes:
print(p + suffix)

Of course, that’s not quite right because Ouack and Quack are misspelled. Can you fix it?

3. Assign to a variable in your program a triple-quoted string that contains your favorite paragraph of text - perhaps a poem, a speech, instructions to bake a cake, some inspirational verses, etc.

Write a function that counts the number of alphabetic characters (a through z, or A through Z) in your text and then keeps track of how many are the letter ‘e’. Your function should print an analysis of the text like this:

Your text contains 243 alphabetic characters, of which 109 (44.8%) are 'e'.

4. Print out a neatly formatted multiplication table, up to 12 x 12.

5. Write a function that will return the number of digits in an integer.

6. Write a function that reverses its string argument.

7. Write a function that mirrors its string argument, generating a string containing the original string and the string backwards.

8. Write a function that removes all occurrences of a given letter from a string.

9. Write a function that recognizes palindromes. (Hint: use your reverse function to make this easy!).

10. Write a function that counts how many non-overlapping occurences of a substring appear in a string.

11. Write a function that removes the first occurrence of a string from another string.

12. Write a function that removes all occurrences of a string from another string.

13. Here is another interesting L-System called a Hilbert curve. Use 90 degrees:

L
L -> +RF-LFL-FR+
R -> -LF+RFR+FL-

14. Here is a dragon curve. Use 90 degrees.:

FX
X -> X+YF+
Y -> -FX-Y

15. Here is something called an arrowhead curve. Use 60 degrees.:

YF
X -> YF+XF+Y
Y -> XF-YF-X

16. Try the Peano-Gosper curve. Use 60 degrees.:

FX
X -> X+YF++YF-FX--FXFX-YF+
Y -> -FX+YFYF++YF+FX--FX-Y

17. The Sierpinski Triangle. Use 60 degrees.:

FXF--FF--FF
F -> FF
X -> --FXF++FXF++FXF--