Hi, I was struggling with the same to understand why read this.
In my own words when we declare the function we assign only the parameters that we need and we must pass the values of text and shift so it will be like this.
def caesar(message=text, offset=shift):
The rest of your code is correct.
But at the moment of calling the function, we should call it using the arguments that we need which for this example are text and shift.
caesar(text, shift)
Hope this works and clarify, also if I say something incorrect please correct me.
It is great that you solved the challenge, but instead of posting your full working solution, it is best to stay focused on answering the original poster’s question(s) and help guide them with hints and suggestions to solve their own issues with the challenge.
We are trying to cut back on the number of spoiler solutions found on the forum and instead focus on helping other campers with their questions and definitely not posting full working solutions.