Let's start by working in 2D first (in Rhino, only look at Top window) and understanding how to represent and generate points in 2D.

First,

import rhinoscriptpackage as rs

Representing Points

Points in 2D can be represented by a list of numbers [x, y, 0]
p1 = [1,12,0]
p2 = [-2,2,0]
 
#and drawn to the canvas by using a built-in function
rs.AddPoint(p1)
rs.AddPoint(p2)

Generating Points

Generating a collection of points based on user-inputed data:

#we can draw a collection of points, such as this zig-zag,
#based on user-inputted data
count = rs.GetInteger("Number of points")
height = rs.GetInteger("Height of zig-zag")
 
if count:
    for i in range(count):
         x = i
         if (i%(2*height) < height):
              y = i%height
         else:
              y =height-(i%height)
         rs.AddPoint([x,y,0])

Generating a collection of points based on a mathematical function y = f(x):

#this is a collecton of points along a 'curve' defined by a
#mathematical function, y = |x|sin(5x),  for a specified range
#and a fixed stepsize in x (representing angle in degrees).
#For fixed intervals, the built-in function frange is very useful
import math
 
lower = -30
upper = 60
step = 0.5
#print rs.frange(lower, upper, step)
 
#remember this handy little function? 
def sinDegrees(angleIn):
     angleRad = angleIn*2*math.pi/360
     return math.sin(angleRad)
 
for x in rs.frange(lower, upper, step):
     y = math.fabs(x)*sinDegrees(10*x)
     rs.AddPoint([x,y,0])
 
#up to this point, every point in the collection is printed out one at a time.
#But suppose we wanted to save this collection of points so that this can be
#used later.  This can be done using a list of points, using the same operations
#on lists that we used when we were working with lists of numbers.
 
listPoints = []
for x in rs.frange(lower, upper, step):
     y = math.fabs(x)*sinDegrees(10*x)
     listPoints.append([x,y,0])
 
#this collection can now be used as input for built-in functions
#such as AddInterpCurve which draws an interpolated curve based
#on input of a list of points
rs.AddInterpCurve(listPoints)