The while condition logic is not wrong. It should be 'and' not 'or'.
The if logic in the while loop is not the same as the one above it. I assume you want to run the code once, then if the choice is wrong, then you asking the user again, right? If so, what you can do is just start the while loop without condition, then break out of the loop if the user inputted the right answer.
You don't need to check if the user is the right format or not. Keep the list value lower case, then just convert whatever the user inputted to lower case before checking with the list values.
I wanted to help but I couldn't see any attachment in your post.
Would you mind edit your post?
Oh I'm sorry I just edited it now thank you for telling me! I wasn't able to upload the second photo but I hope this helps!
There are a few problems with your code.
I hope my answer is clear enough.
Yes, it was very clear!! I can't thank you enough my program actually works now, thank you again and have a wonderful day!
Glad you worked it out!