我正在按照 APL Wiki (https://aplwiki.com/wiki/TryAPL#API) 中的说明进行操作。这些示例看起来像是 C 系列语言或 Java。我正在使用Python。
下面的脚本不起作用:
import requests
print(requests.post("https://tryapl.org/Exec", json=[0,0,0,"2 + 2"])
它会无限加载,不会返回任何错误消息。
根据 APL Wiki,我不需要将 POST 请求中的前三个值设置为任何值即可使用如此简单的表达式。
API返回JSON响应,需要解析JSON;您可以使用响应对象的
.json()
方法。此响应与您作为参数传递的 4 元素列表相同。返回值将位于该列表的最后一个元素中。
print(requests.post("https://tryapl.org/Exec", json=[0, 0, 0, "2 + 2"]).json()[3])
这个的输出是
['4']
正如 LhasaDad 指出(两次),这里的实际问题是缺少右括号(
)
),并且与 TryAPL API 完全无关。当括号未配对时,Python REPL 的简洁指示与您“缺乏编程经验”相结合,让您在打印 ...
而不是正常的 >>>
提示时,认为 REPL 正在等待响应。然而,Python REPL 实际上使用
...
作为继续语句的提示(即关闭括号),而不是表示等待响应。您可以通过输入例如来看到这一点
1+(2-3
,这也会导致
...
,但显然没有等待回复。输入
)
继续:
>>> 1+(2-3
... )
0
>>>
可以说,APL REPL 提供的信息更多(尽管它也不允许行延续):
1+(2-3
SYNTAX ERROR: Unpaired parenthesis
1+(2-3
∧