Outline for October 27, 2025

Reading: §11
Assignments: Homework 2, due October 29, 2025

  1. Writing a program to play rock-paper-scissors: top-down design
    1. Problem statement and general algorithm idea
    2. Data representation and program structure [rps-1.py]
    3. Figure out who wins [rps-2.py]
    4. Get computer choice [rps-3.py]
    5. Get user input [rps-4.py]
    6. Make it user-friendly [rps-5.py]

  2. Writing a recursive permutation program [perm.py]

  3. Character/integer conversions [chr.py, ord.py]
    1. Cæsar cipher (shift cipher) [caesarenc.py, caesardec.py]

  4. Pattern matching
    1. Regular expressions
    2. Atoms: letters, digits
    3. Match any character except newline: .
    4. Match any of a set of characters: [0123456789], [\textasciicircum 0123456789], [0-9]
    5. Repetition:
      1. * — match 0 or more of the preceding regular expression
      2. ? — match 0 or 1 of the preceding regular expression
      3. + — match 1 or more of the preceding regular expression
      4. {m,n} — match between m and n (inclusive) of the preceding regular expression
      5. greedy matching; each pattern matches as many characters as possible
      6. put ? after and pattern matches as few characters as possible
    6. ^ — match start of string or line
    7. $ — match end of string or line
    8. (, ) — used to group regular expressions
    9. | — used to indicate one of the regular expressions must be matched
    10. \ — used to escape metacharacters

  5. Special sequences
    1. \b — match beginning or end of word

  6. Useful abbreviations in patterns
    1. \n — match nth group
    2. \d — match any digit; same as [0-9]
    3. \s — match any space character; same as [ \t\n\r\f\v] (usually)
    4. \w — match any alphanumeric character and underscore; same as [a-zA-Z0-9_]
    5. \D — match any character except a digit; inverse of \d
    6. \S — match any character except a space character; inverse of \s
    7. \W — match any character except an alphanumeric character or underscore; inverse of \w
    8. \b — match a word boundary; a word is a sequence of alphanumeric characters

  7. Useful functions/methods [recomp.py, renocomp.py, regroup.py]
    1. re.compile(str) compiles the pattern into pc (that is, pc = re.compile(str))
    2. pc.match(str) returns None if compiled pattern pc does not match beginning of string str
    3. pc.search(str) returns None if pattern pc does not match any part of string str
    4. pc.findall(str) returns a list of substrings of the stringstr that match the pattern pc
    5. pc.group(str) returns the substring of the string str that the pattern pc matches
    6. pc.start(str) returns the starting position of the match
    7. pc.end(str) returns the ending position of the match
    8. pc.span(str) returns tuple (start, end) positions of match

  8. “Raw” string notation: backslash not handled specially; put “r” before string

UC Davis sigil
Matt Bishop
Office: 2209 Watershed Sciences
Phone: +1 (530) 752-8060
Email: mabishop@ucdavis.edu
MHI 289I, Programming in Health Informatics
Version of October 24, 2025 at 10:45PM

You can also obtain a PDF version of this.

Valid HTML 4.01 Transitional Built with BBEdit Built on a Macintosh