gpt4 book ai didi

python - python 简单函数赋值错误

转载 作者:行者123 更新时间:2023-12-01 05:58:33 25 4
gpt4 key购买 nike

我有一个关于 Sage/Python 的问题,但我确信这是一个非常普遍的 CS 问题。我有一个由 N 个变量的 N 个非线性方程组成的大型系统。在将其传递给数值求解器之前,我尝试让 Sage 使用求解来简化方程。在处理一个简单的示例时,我得到以下内容:“eqa”是要在变量 x0、x1、w0、w1 等中求解的方程列表。以下内容在命令行中运行良好:

 j(x0,x1,w0,w1,y0,y1,z0,z1) = solve(eqa, var('x0 x1 w0 w1 y0 y1 z0 z1'))

(我试图将方程列表定义为“可调用符号表达式”(Sage),因为我使用的数值优化对于这些函数而不是普通的 def python 函数效果更好。)

无论如何,当我将其包含在脚本中并尝试加载它时,我收到错误:

     j(x0,x1,w0,w1,y0,y1,z0,z1) = solve(eqa, var('x0 x1 w0 w1 y0 y1 z0 z1'))
SyntaxError: can't assign to function call

我知道我一定在命令行上做错了什么,它只是靠运气而工作。或者在脚本中定义这些可调用符号表达式时是否需要特别小心?感谢您提供的任何见解。这是有关这些类型“函数”之间差异的链接

http://www.sagemath.org/doc/tutorial/tour_functions.html

最佳答案

这种定义函数的方式是 Sage 特有的,并且被标准 Python 语法所禁止。我的猜测是(1)您尝试使用 Python 运行脚本,或者(2)您正在使用 Sage,但您的文件名以 .py 结尾,因此 Sage 将其解释为Python 文件。

例如:

~/coding$ cat test.sage 
f(x, y) = 3*x+y
print f(3,4)

~/coding$ sage test.sage
13
~/coding$ cp test.sage test.py
~/coding$ sage test.py
File "test.py", line 1
f(x, y) = 3*x+y
SyntaxError: can't assign to function call
~/coding$ python test.py
File "test.py", line 1
f(x, y) = 3*x+y
SyntaxError: can't assign to function call

关于python - python 简单函数赋值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11457845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com