I wrote a functioning problem 8! I think it works.
Removed a set of print statements so that we stick to just the answer.
I have a working problem9!
Big refactor, much better and more general now.

Removed the bool function is_pythagorean_triple(), because I only used it once ever and its code contents were shorter than its name.

Put the doubly nested forloop into a function find_pythagorean_triple, and that function now accepts any sum of a+b+c as input (and the forloop bounds have been generalized to fit.)
I think it works in the general case but I suppose there might be corner cases that I screw up.
Style tweak - I think this is optimal both algorithmically and style-wise.
Wrote a skeleton problem10.
Solved problem 10! That sieve is so useful!
Solved problem 7! Took a different approach, used prime number theorem.
Cleaned up documentation in 7 a little bit.