My objective is to concisely define an expression with variables,
assign values to the variables, and then compute the answer.

Here is what I did today:

┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.3.rc4, Release Date: 2021-04-18                 │
│ Using Python 3.9.2. Type "help()" for help.                        │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: this is a prerelease version, and it may be unstable.     ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
sage: z = SR.var('z')                                                       
                                            
sage: i = 2 * z                                                             
                                            
sage: i                                                                     
                                            
2*z
sage: z                                                                     
                                            
z
sage: type(i)                                                               
                                            
<class 'sage.symbolic.expression.Expression'>
sage: type(z)                                                               
                                            
<class 'sage.symbolic.expression.Expression'>
sage: z = random_prime(100)                                                 
                                            
sage: z                                                                     
                                            
79
sage: type(z)                                                               
                                            
<class 'sage.rings.integer.Integer'>
sage: i                                                                     
                                            
2*z
sage: valuation(i)                                                         
                                             
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/arith/misc.py
 
in valuation(m, *args, **kwds)
    743     try:
--> 744         return m.valuation(*args, **kwds)
    745     except AttributeError:

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/structure/element.pyx
 
in sage.structure.element.Element.__getattr__ 
(build/cythonized/sage/structure/element.c:4709)()
    492         """
--> 493         return self.getattr_from_category(name)
    494 

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/structure/element.pyx
 
in sage.structure.element.Element.getattr_from_category 
(build/cythonized/sage/structure/element.c:4821)()
    505             cls = P._abstract_element_class
--> 506         return getattr_from_other_class(self, cls, name)
    507 

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/cpython/getattr.pyx
 
in sage.cpython.getattr.getattr_from_other_class 
(build/cythonized/sage/cpython/getattr.c:2619)()
    371         dummy_error_message.name = name
--> 372         raise AttributeError(dummy_error_message)
    373     attribute = <object>attr

AttributeError: 'sage.symbolic.expression.Expression' object has no 
attribute '__custom_name'

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)
/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/symbolic/expression.pyx
 
in sage.symbolic.expression.Expression._integer_ 
(build/cythonized/sage/symbolic/expression.cpp:8808)()
   1298         try:
-> 1299             n = self.pyobject()
   1300         except TypeError:

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/symbolic/expression.pyx
 
in sage.symbolic.expression.Expression.pyobject 
(build/cythonized/sage/symbolic/expression.cpp:6143)()
    586         if not is_a_numeric(self._gobj):
--> 587             raise TypeError("self must be a numeric expression")
    588         return py_object_from_numeric(self._gobj)

TypeError: self must be a numeric expression

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)
<ipython-input-11-227398a9d1bf> in <module>
----> 1 valuation(i)

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/arith/misc.py
 
in valuation(m, *args, **kwds)
    744         return m.valuation(*args, **kwds)
    745     except AttributeError:
--> 746         return ZZ(m).valuation(*args, **kwds)
    747 
    748 

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/structure/parent.pyx
 
in sage.structure.parent.Parent.__call__ 
(build/cythonized/sage/structure/parent.c:9335)()
    896         if mor is not None:
    897             if no_extra_args:
--> 898                 return mor._call_(x)
    899             else:
    900                 return mor._call_with_args(x, args, kwds)

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/structure/coerce_maps.pyx
 
in sage.structure.coerce_maps.NamedConvertMap._call_ 
(build/cythonized/sage/structure/coerce_maps.c:6042)()
    285             raise TypeError("Cannot coerce {} to {}".format(x, C))
    286         cdef Map m
--> 287         cdef Element e = method(C)
    288         if e is None:
    289             raise RuntimeError("BUG in coercion model: {} method of 
{} returned None".format(self.method_name, type(x)))

/var/tmp/sage-9.3.rc4-current/local/lib/python3.9/site-packages/sage/symbolic/expression.pyx
 
in sage.symbolic.expression.Expression._integer_ 
(build/cythonized/sage/symbolic/expression.cpp:8857)()
   1299             n = self.pyobject()
   1300         except TypeError:
-> 1301             raise TypeError("unable to convert %r to an integer" % 
self)
   1302         if isinstance(n, sage.rings.integer.Integer):
   1303             return n

TypeError: unable to convert 2*z to an integer
sage:                                                                       
                                            

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/d078cf0b-2d68-4b09-91d9-dfc6bb97805cn%40googlegroups.com.

Reply via email to