A parameter names an input a function accepts; an argument is the value supplied when calling it. Parameters are part of an API’s contract: their names, order, and defaults tell callers what information the function needs and how to provide it. section 3.1.2
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
The print signature shows how one familiar function accepts multiple objects and offers defaults for their separator, ending, destination, and flushing behavior. section 3.1.2
Use positional parameters when their order makes sense to callers. Use keyword parameters with defaults for optional choices: a name-building function can require a first name while allowing a middle or last name to be omitted. Callers can also supply keyword arguments by name rather than relying on their order. section 3.2.2
Inputs should help a function do one clear job, not tie that job to an unnecessary side effect. A function that returns a full name can be tested directly and reused for printing, a web page, or JSON; one that always prints the name is harder to reuse. section 3.2.4
A URL can carry parameters too, in a query string after the question mark. For example, a blog-post request with action=create selects a creation form, while a request without that action displays posts. These are request inputs, not Python function parameters, though both let a caller influence behavior. section 11.4.1






























