I'm not familiar with 'and not' statements. Could you mean just the 'not' method is a logical operator in python so if you used to return objects that would be true if the expression would be false. The 'and' part of the statement is just defining what the operator should return just like we learned about with 'or', and 'and' statements.
for e.x:
x = 6
if not x > 6:
print ('true')
else:
print('false')
>>> true
This code returns true because although x = 6 is not greater than the numerical value defined in the if statements, the 'not' operator changed the false return to true. If you removed the 'not' operator the code would run normally returning false.
x = 6
if x > 6:
print ('true')
else:
print ('false')
>>> false
I hope this helps and answers your question because again I've never experienced 'and not' statements just 'not' statements.