In the main():

Code:
Player.rang_STR=(Player.max_STR-Player.min_STR)+1;
    Player.min_STR=1;
    Player.STR=Player.min_STR+int(Player.rang_STR*rand  ()/(RAND_MAX + 1.0));
    Player.max_STR=20;
and many similar.

Where does Player.max_STR and Player.min_str get their initial values in the first line? (Both are assigned later.)

The use of rand() seems also faulty. You'll probably need something like:
Code:
Player.STR = Player.min_str + rand() % Player.rand_STR