Python timedelta(x,y)在CoCalc.com上返回TypeError,但在其他地方可以工作——为什么?
我的代码可以在onlinegdb.com上运行,但不能在CoCalc.com上运行Python timedelta(x,y)在CoCalc.com上返回TypeError,但在其他地方可以工作——为什么?,python,jupyter-notebook,sage,Python,Jupyter Notebook,Sage,我的代码可以在onlinegdb.com上运行,但不能在CoCalc.com上运行 import datetime slowduration = datetime.timedelta(0,1) print(slowduration) 返回 TypeError: unsupported type for timedelta seconds component: sage.rings.integer.Integer 我不清楚这是一个特性还是一个bug。如果其他人有这样的问题,结果证明我使用的是S
import datetime
slowduration = datetime.timedelta(0,1)
print(slowduration)
返回
TypeError: unsupported type for timedelta seconds component: sage.rings.integer.Integer
我不清楚这是一个特性还是一个bug。如果其他人有这样的问题,结果证明我使用的是Sage数学内核,而不是Python数学内核。这个网站提供了大约15种不同的内核。如果其他人有这样的问题,结果证明我使用的是Sage数学内核,而不是Python数学内核。这个网站提供了大约15种不同的内核。雅各布的自我回答是正确的;这里有一些更多的细节 在SageMath中,有一种称为preparser的东西,它解释事物,使整数是数学整数,而不是Python整数。因此: 还有很多事情要做——试着做一些真正有趣的准备('f(x)=x^2')。但是是的,这是一个特点 不过,要解决Sage内核中的问题,您可以执行以下操作:
得到
0:00:01
作为你的答案。雅各布的自我回答是正确的;这里有一些更多的细节
在SageMath中,有一种称为preparser的东西,它解释事物,使整数是数学整数,而不是Python整数。因此:
还有很多事情要做——试着做一些真正有趣的准备('f(x)=x^2')。但是是的,这是一个特点
不过,要解决Sage内核中的问题,您可以执行以下操作:
获取
0:00:01
作为您的答案。补充@kcrisman的答案和“int(0),int(1)
”技巧
如果想要坚持Sage内核,还有两个选择
- (1) 使用
禁用preparserpreparser(False)
- (2) 将
(用于“原始”)附加到整数,例如r
datetime.timedelta(0r,1r)
- (a)
- (b)
- (c)
load('/path/to/filename.py')
load('/path/to/filename.sage')
.sage
文件将获得“sage preparsed”,而.py
文件将不会
这提供了第三个绕过preparser的选项:从
.py
文件加载代码。以补充@kcrisman的答案和“int(0),int(1)
”技巧
如果想要坚持Sage内核,还有两个选择
- (1) 使用
禁用preparserpreparser(False)
- (2) 将
(用于“原始”)附加到整数,例如r
datetime.timedelta(0r,1r)
- (a)
- (b)
- (c)
load('/path/to/filename.py')
load('/path/to/filename.sage')
.sage
文件将获得“sage preparsed”,而.py
文件将不会
这提供了第三个绕过preparser的选项:从
.py
文件加载代码。在您的环境中,1
似乎不是普通的Python整数。您需要进一步解释这个CoCalc.com
是什么和/或它如何涉及sage.rings
,以及如果已经运行了任何代码,会发生什么。换句话说,这不是一个。除了列出的代码之外,除了在我使用的环境中,没有其他代码运行过。谢谢你的回答。这是一个在线托管的Jupyter笔记本,它们允许您使用服务器进行计算。我想也许问题出在Jupyter或Sage身上,也许有人会知道。实际上,我不能在Python中调用这一个函数,我个人并没有调用任何其他代码,所以我想问题出在服务器端。timedelta
正在做,马上,seconds+=minutes/60+…
。(用于“云中的协作计算”)是一个用于计算和协作的在线平台。每个CoCalc项目就像你创建的一个文件系统,你可以在预装了大量免费软件的云中运行完整的Ubuntu。基本使用是免费的,可以购买更多处理器、内存、磁盘空间的付费升级。。。CoCalc特别提供的一件事是能够协作使用Jupyter笔记本电脑,并预装多种Jupyter内核。还可以使用LaTeX等。在您的环境中,1
似乎不是普通的Python整数。您需要进一步解释这个CoCalc.com
是什么和/或它如何涉及sage.rings
,以及如果已经运行了任何代码,会发生什么。换句话说,这不是一个。除了列出的代码之外,除了在我使用的环境中,没有其他代码运行过。谢谢你的回答。这是一个在线托管的Jupyter笔记本,它们允许您使用服务器进行计算。我想也许问题出在Jupyter或Sage身上,也许有人会知道。实际上,我不能在Python中调用这一个函数,我个人并没有调用任何其他代码,所以我想问题出在服务器端。timedelta
正在做,马上,seconds+=minutes/60+…
。(用于“云中的协作计算”)是一个用于计算和协作的在线平台。每个CoCalc项目就像你创建的一个文件系统,你可以在预装了大量免费软件的云中运行完整的Ubuntu。基本使用是免费的,可以购买更多处理器、内存、磁盘空间的付费升级。。。CoCalc特别提供的一件事是能够协作使用Jupyter笔记本电脑,并预装多种Jupyter内核。你也可以晚用
sage: preparse('1+1')
'Integer(1)+Integer(1)'
import datetime
slowduration = datetime.timedelta(int(0),int(1))
print(slowduration)