As with other programming languages, by default values are passed in order into a method/function.
Arguments that have an ‘=’ such as
start=None are optional, if values are not passed to those they will take on the default value (what comes after the ‘=’). All required arguments have to be listed first.
Rhino.Geometry.Brep.CreateFromLoftRebuild(curves,start=None, end=None, loftType = 1, closed=True, rebuildPointCount = 0)
In this case ‘curves’ is the only required argument to pass a value to. All the others are optional.
It is also possible to reference arguments specifically by name and thus not have to specify all of them. So it’s possible to use
Rhino.Geometry.Brep.CreateFromLoftRebuild(curves, rebuildPointCount = 5)
which means you pass a list of curves (required) and you accept all the other default values except for rebuildpointcount, which you set to 5 instead of the default 0.
The RhinoCommon API docs for the method specify what it expects for each argument as well as what it returns.
This probably means you didn’t pass a list of curves as the first argument, you passed a tuple (of something) which it wasn’t able to interpret.
Most of the syntax stuff can be picked up from a basic python book or online learning resource (highly recommended); for RhinoCommon specific stuff, there are the guides and samples on the API doc/guide pages…