FAQ: Control Flow - Boolean Operators: and

then later this is correct
if not (credits >= 120)and not (gpa >= 2.0):

but not this
if not credits >= 120and not gpa >= 2.0:

i understand that its most likely an order of operations syntax thing, but the latter should work even with the parenthesis because logically it should be able to interpret.

Comparisons, membership, identity
in, not in, is, is not, <, <=, >, >=, <>, !=, ==

When operators have the same precedence then the leftmost is applied first.

if not credits >= 120 and not gpa >= 2.0:
   ^^^^^^^^^^^            ^^^^^^^

this leads to,

if bool >= 120 and bool >= 2.0:

where bool is either True or False since NOT A always yields a boolean.