B.3 Part III, Statements and Syntax

See Section 11.3 for the exercises.

  1. Coding basic loops. As you work through this exercise, you'll wind up with code that looks like the following:

    >>> S = 'spam' >>> for c in S: ...     print ord(c) ... 115 112 97 109 >>> x = 0 >>> for c in S: x = x + ord(c)        # Or: x += ord(c) ... >>> x 433 >>> x = [  ] >>> for c in S: x.append(ord(c)) ... >>> x [115, 112, 97, 109] >>> map(ord, S) [115, 112, 97, 109]
  2. Backslash characters. The example prints the bell character (\a) 50 times; assuming your machine can handle it, and when run outside of IDLE, you may get a series of beeps (or one long tone, if your machine is fast enough). Hey we warned you.

  3. Sorting dictionaries. Here's one way to work through this exercise (see Chapter 6 if this doesn't make sense). Remember, you really do have to split the keys and sort calls up like this, because sort returns None. In Python 2.2, you can iterate through dictionary keys directly without calling keys (e.g., for key in D:), but the keys list will not be sorted like it is by this code:

    >>> D = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5, 'f':6, 'g':7} >>> D {'f': 6, 'c': 3, 'a': 1, 'g': 7, 'e': 5, 'd': 4, 'b': 2} >>> >>> keys = D.keys(  ) >>> keys.sort(  ) >>> for key in keys: ...     print key, '=>', D[key] ... a => 1 b => 2 c => 3 d => 4 e => 5 f => 6 g => 7
  4. Program logic alternatives. Here's sample code for the solutions. Your results may vary a bit; this exercise is mostly designed to get you playing with code alternatives, so anything reasonable gets full credit:

    L = [1, 2, 4, 8, 16, 32, 64] X = 5 i = 0 while i < len(L):     if 2 ** X == L[i]:         print 'at index', i         break     i = i+1 else:     print X, 'not found'          L = [1, 2, 4, 8, 16, 32, 64] X = 5 for p in L:     if (2 ** X) == p:         print (2 ** X), 'was found at', L.index(p)         break else:     print X, 'not found' L = [1, 2, 4, 8, 16, 32, 64] X = 5 if (2 ** X) in L:     print (2 ** X), 'was found at', L.index(2 ** X) else:     print X, 'not found'          X = 5 L = [  ] for i in range(7): L.append(2 ** i) print L if (2 ** X) in L:     print (2 ** X), 'was found at', L.index(2 ** X) else:     print X, 'not found'          X = 5 L = map(lambda x: 2**x, range(7)) print L if (2 ** X) in L:     print (2 ** X), 'was found at', L.index(2 ** X) else:     print X, 'not found'


Learning Python
Learning Python: Powerful Object-Oriented Programming
ISBN: 0596158068
EAN: 2147483647
Year: 2003
Pages: 253
Authors: Mark Lutz

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net