Learning Scientific Programming with Python (2nd edition)
Chapter 2: The Core Python Language I
- 
            
                
                Examples
            
            
            
            
            
- E2.1: Numbers in the Python shell
 - E2.2: Simple mathematical expressions
 - E2.3: Heron's formula
 - E2.4: Python's type and id built-ins
 - E2.5: The return values of logic expressions
 - E2.6: The "is not" operator
 - E2.7: Integer object identity gotcha
 - E2.8: String concatenation with + and *
 - E2.9: String escaping
 - E2.10: Unicode
 - E2.11: String slicing
 - E2.12: String striding
 - E2.13: String methods
 - E2.14: A simple text table using Python strings
 - E2.15: String representation of integers with comma-separated thousands
 - E2.16: Using a Python list as a stack
 - E2.17: Splitting a string
 - E2.18: Assigning multiple variables in one statement
 - E2.19: The string join method
 - E2.20: The Fibonacci sequence
 - E2.21: The Gregorian calendar
 - E2.22: Euclid's algorithm for finding the gcd of a number
 - E2.23: A simple "turtle"
 - E2.24: Writing numbers to a file
 - E2.25: Reading numbers from a file
 - E2.26: Assigning a variable name to a function
 - E2.27: Default arguments to functions
 - E2.28: Function Scope
 - E2.29: The Lazy Caterer's sequence
 - E2.30: The Tower of Hanoi
 
 - 
            
                
                Questions
            
            
            
            
            
- Q2.2.4: Complex numbers: $i^i$
 - Q2.2.7: Deducing the top-face value of a die
 - Q2.2.8: Paper folding
 - Q2.2.10: Exponentiation gotcha
 
- Q2.3.1: String slicing
 - Q2.3.2: Determine if a string is a palindrome
 - Q2.3.5: String comparison gotcha
 
- Q2.4.2: Using a list to represent a polynomial
 - Q2.4.3: Ranking a list
 - Q2.4.4: The Madhava series
 - Q2.4.5: any(x) and not all(x)
 - Q2.4.6: zip and its inverse
 - Q2.4.7: Sorting one list based on items in another
 
 - 
            
                
                Problems
            
            
            
            
            
- P2.2.1: The XOR operator
 - P2.2.2: Some fun with the math module:
 - P2.2.3: The sign function
 - P2.2.4: Estimating the surface area of the Earth
 
- P2.3.1: GC-content of a nucleotide sequence
 - P2.3.2: String formatting and physical constants
 - P2.3.3: Formatting a matrix
 - P2.3.4: Planet symbols in Unicode
 
- P2.4.1: Product of all but one integers in a list
 - P2.4.2: The Hamming distance between strings
 - P2.4.3: $\pi$ read aloud
 - P2.4.4: Pascal's triangle #1
 - P2.4.5: DNA codons
 - P2.4.6: The double factorial function
 - P2.4.7: Benford's Law
 
- P2.5.1: Pascal's triangle #2
 - P2.5.2: The iterative weak acid approximation
 - P2.5.3: The Luhn algorithm
 - P2.5.4: Hero's method for computing a square root
 - P2.5.5: Determining tomorrow's date
 - P2.5.6: de Polignac's formula
 - P2.5.7: The Hailstone Sequence
 - P2.5.8: The Sieve of Eratosthenes
 - P2.5.9: Euler's totient function
 - P2.5.10: Monte Carlo approximation of $\pi$
 - P2.5.11: Jumbling the letters in each word of a sentence
 - P2.5.12: Electronic configurations
 
- P2.6.1: Analysing redwood species data
 - P2.6.2: Censoring a text
 - P2.6.3: Earth Similarity Index
 - P2.6.4: Manipulating a two-dimensional array
 
- P2.7.1: Does a Scrabble word fit?
 - P2.7.2: A little number problem
 - P2.7.3: Vector products
 - P2.7.4: Volume and surface area of a right regular pyramid
 - P2.7.5: Range and height of a projectile
 - P2.7.6: An integral of sine and cosine products
 - P2.7.7: Determine if a string is a palindrome using recursion
 - P2.7.8: Tetration