How do I detect if the mouse is hovering over a button? PyGame button class is not displaying the text or changing colour on hover

I have created a button class in pygame and although the button itself is displaying, my text is not showing up. Also I have some conditions to change the colour when the mouse is over the button. I have achieved the desired result using hard coded values in my main function, however I want to use a class the handle my various button as I might have quite a few buttons.

Why is my PyGame Sprite, in a Group, not drawn – AttributeError: ‘Group’ object has no attribute ‘blitme’

I am a beginner for pygame and I am imitating the game code “alien invasion” in the book “Python Crash Course” to program a game named “Alphabet zoo”. In this game, different letters fall down from the top of the screen after a time interval and the letter will vanish while you strike the corresponding key on the keyboard. The x position of each letter is random and the falling speed will accelerate as the game progress. Game will end under a certain condition(e.g. screen height is occupied by letters). This seems a great chanllenge for me. During the first stage, my codes are simplified for same letters ‘A’ rather than varied letters. They are as the following: