A bit more detail would help us round here. Firstly, is this a laptop keyboard, or a separate (wired or wireless) keyboard? If its a separate keyboard, does it work with a different computer?
So lower case p doesn't work. So you get P if your press shift-p? Does it make a difference whether you use the left or right shift key? And CapsLock p gives P? And does CapsLock shift-P give p?
Certainly very weird as you've described it. Could it be a software problem? Does p work correctly in a pre-boot environment, e.g. if you go into the BIOS and find a text field you can type in?