Thank you all for you input it was and is really helpful. i found this in the archives.
while choice != 'y' and choice != 'n' :
It means that the loop will only execute while both these conditions are True, namely that the user neither entered y norn. ...
choice != 'y'
choice != 'n'
If the user entered either y or n, then we have a valid response, and can proceed.
If instead, we had ...
while choice != 'y' or choice != 'n' :
... it would mean that if either y or n had not been entered, we need a new input value. But that would be True, whether the user entered y or n, because if one of those values was entered, the other was not. The condition, taken as a whole, would always be True, so the loop would be infinite.
Let's say the user entered y. We would want the loop to terminate. choice != 'y' would be False, and that's fine. But, choice != 'n' would be True, so the whole condition would be True, and the loop would continue. The result would be similar if the user had entered n.