I'm sure there is a way to simplify this if statement but I don't remember it and after googling for a while I couldn't find it. Any ideas?
if user_input.lower() == 'yes' or user_input.lower() == 'y':
print('Done!')
You can check whether a value is present in an iterable using the in keyword: user_input.lower() in ("yes", "y") will evaluate to True if the input is either 'yes' or 'y'.
Alternatively, for more complex checks, you might consider any(), which takes an iterable of boolean statements and returns True if any of them are True. For example, the statement any([user_input.lower() in ("yes", "y"), skip_check, ignore_input]), where skip_check and ignore_input are some other boolean flags you might care about, will be True if any of those things are true.
all() is similar to any() but, as the name suggests, requires that all elements be true in order to come out True. You can think of any() as being analogous to a chained or statement, while all() would be like replacing those ors with and.
tuplewith theinoperator will give you a slightly better performance than alistor aset.