3つ質問です。

1. ある関数が投げるexceptionおよび戻り値の一覧を知りたいときには、
どうしたらいいでしょう。help()みたいなのがある?

2. 以下のコードで、変数の値が変わらないのは何故でしょう。
>>> a = 100
>>> b = 200
>>> for p, i in (a, 1), (b, 2):
>>> p = i
>>>print a, b
100 200

3. 以下のコードのような感じで、変数名をstringで取り出すにはどうすればいいでしょう。
>>> for val in foo bar:
>>> print val # <= ここで、変数の中身じゃなくて変数名を取り出したい。
"foo"
"bar"