[Courses] [python] Lesson 3: Fun with Strings and Lists

Hanford Sally sally.hanford1 at ntlworld.com
Sat Jul 16 12:53:56 UTC 2011


1. How would you count the number of words in a single string?
  Assume words are separated by spaces ... don't worry about
  things like newlines, commas or hyphens.

a="a very very log string of words that I don't have the time nor the
inclination to count manually"
b=a.split(" ")
print len(b)

2. What does an index of [-1], or another negative number mean in a
  list or string? Take a guess, then try it and see if you were right.
Count right to left rather than left to right?

3. Who is Guido van Rossum and why am I using him as an example?
I think he wrote Python?

4. Rewrite the exercise from lesson 2, the one where
  you printed "one", "two", "three", "four", "five",
  using a list instead of a series of if-elif.
  (A few people already posted solutions that worked that way
  in their lesson 2 answers. If you already did this for lesson 2, no
  need to do it again. If you read other people's, it's still worth
  writing it yourself now without going back and looking.)

numbers = ["one","two","three","four","five"]
for i in numbers:
  print i

5. This one's a little harder, but give it a try if you have time.
  Plot a histogram graph from a list of numbers, with each number in
  the list on its own line.

  For instance, if you start with numbers like this:
vals = [ 0, 2, 4, 8, 16, 18, 17, 14, 9, 7, 4, 2, 1 ]
  you might plot something like this:

**
****
********
****************
******************
*****************
**************
*********
*******
****
**
*
   where the first line has no stars, the second has two, then 4, etc.
   Hint: you'll need two loops, one inside the other.



vals = [0,2,4,8,16,18,17,14,9,7,4,2,1]
for i in vals:
    print ""
    for j in range(i):
        print "*",


More information about the Courses mailing list