As DeathAndTaxes says, the address is not a public key, it is a hash of a hash of a public key with a 4 byte checksum tacked on and reformatted to base 58.
This question may not be related to practical usage, but just for curiosity, if I want to know what the public keys of my addresses are, how should I do that?
There really isn't an easy way to find it. I haven't used pywallet, so I'm not sure what options it has, but it might be able to compute public keys for you. You could extract the private key and enter it at bitaddress.org in the "wallet details" section, but one you've typed your private key into a website, I would immediately consider the associated address to be compromised and would never use it to receive bitcoins again (and would make sure to empty the address of any bitcoins before entering the private key).
Indeed, pywallet gives you the public keys that are inside your wallet
To my understanding, one address corresponds to one public key, right?
For general use, that's a safe assumption.
Technically, it may be possible for more than one public key to have the same address, but the odds of generating two different public keys that share an address are astronomically small. It isn't a realistic event, so you can just assume that there won't be more than one public key for each address.
Number of valid addresses = 2^160
Number of valid public keys = n-1 ~ 2^256
So:
1 address represents ~2^94 public keys
Odds of generating two different public keys that share an address: ~2^94/2^256 = 1/2^162
PS: This assumes you use only compressed (or uncompressed) keys. The result considering both is very close to this one.