Lol, it seems like you really are trying to learn the hard way.

You've racked up as many posts here since the beginning of the year as I've posted since I joined. (But, then again, a lot of people have out-posted me, so I supposed that doesn't really say much.)
Anyways, to answer you question (and you've probably already figured this out).
When you use "from x import y" to import something, you're bringing y from module x into your local namespace, so when you say "from sys import exit", exit() is brought into your local namespace and can be called without using the module name first, like sys.exit(). So, the two both point to the same thing in the end.
I'd have to see the code as to why the import is there, but he likely made the import for later convenience, but maybe didn't use it (imported out of habit, perhaps), or testing never went down that path of execution where it would fail without the import. (Dynamic languages let you do that.) You don't absolutely have to call exit, but it is nice, and useful if you want your program to tell the caller something went wrong.
On importing (from a google search):
http://effbot.org/zone/import-confusion.htm