Dear Michel,

On 16 Mai, 12:16, Michel <michel.vandenbe...@uhasselt.be> wrote:
> Here is one thing I find difficult to use about sage: the help system.

I don't know if sage's help system is properly documented in the
manuals. But I daresay that the help system of sage is quite
efficient.

Here are some typical ways to get help (that, I guess, most people
developing code for sage use frequently):

1. If you have a guess on how a function name starts then type it in
and press the TAB-key. Admittedly, in the case of solve, you only get
"solve" and "solve_mod", so, this does not help much for your problem.

2. If you know the command then use a question mark to get information
on it. So, in the case of solve, you would do
  sage: solve?
and it will give you some help. I don't see that your question from
your other thread is answered by the solve-documentation, though. But
as much as I know, what you get is exactly the same  as the
corresponding page in the sage reference manual, since this is
autogenerated by the functions' documentation.

3. If you are interested what happens behind the scenes (and this is
sometimes very enlightening), use *two* question marks:
  sage: solve??
This gives you the source code (including its documentation) of the
solve command.

4. Don't forget that Python (the underlying language of Sage) is
object oriented. Hence, often you have some object X, and you would
usually not have a function that does something with X, but X would
provide some methods that you can call. You can see all methods of X
by typing X plus '.' plus (perhaps) the beginning of the method name,
plus TAB-key. Some method names start with underscore ('_'), and to
see them, you have to type '_' before the TAB-key.
Example: To see all methods starting with 'di' of an integer, you may
do
  sage: a=3
  sage: a.di<TAB>
and get
 a.digits                       a.divides
 a.divide_knowing_divisible_by  a.divisors

Again, if you know a method name then, e.g., a.digits? or aa.digits??
will hopefully give you more information.

5. If the above does not help, you can search the sources. If you type
'sea' and hit the TAB-key, you can see that there are three search-
commands: search_def, search_doc and search_src. For example,  if you
do
 sage: search_src('numerical', 'solve')
then you are pointed to
 calculus/calculus.py:           This is *not* a numerical solver -
use ``find_root`` to
 calculus/calculus.py:           solve for self == 0 numerically on an
interval.
 calculus/calculus.py:           This is not a numerical solver - use
``find_root`` to solve
 calculus/desolvers.py:    This implements Euler's method for finding
numerically the  solution of the 1st order
 calculus/desolvers.py:    This implements Euler's method for finding
numerically the  solution of the 1st order
 calculus/desolvers.py:    To numerically approximate y(1), where
(1+t^2)y''+y'-y=0,  y(0)=1,y'(0)=-1,
 calculus/desolvers.py:    To numerically approximate y(1), where
y''+ty'+y=0, y(0)=1,y'(0)=0:
 calculus/desolvers.py:    and plots using Euler's method the
numerical solution of

You see that most hits are in calculus.py.
And then, you can do
  sage: from sage.calculus import calculus
  sage: calculus?
to see the documentation, or sage: calculus?? to see all 10426 lines
of the code.

Best regards,
    Simon

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to