我正在尝试计算两个函数的输出之差。 我以前学习过Java。在Java中,使用一个函数直接减去另一个函数是可能的。 有人可以告诉我为什么我不能在python中做同样的事情吗?仅仅是因为becuz python无法做到这一点,还是因为becuz我不能减去具有int类型的元组?
from numba import jit
import numpy as np
import time
@jit
def foo(x: int, y: int) ->float:
tt = time.time()
s = 0
for i in range(x,y):
s += i
print("Time used: {} sec".format(time.time() - tt))
return s
print("value of foo", foo(1, 1000))
def foo2(x, y)->float:
tt = time.time()
s = 0
for i in range(x, y):
s += i
print("Time used for foo2: {} sec".format(time.time() - tt))
return s
print("value of foo2", foo2(1, 1000))
a= foo(1, 1000)
b= foo2(1, 1000)
print (a-b)
print(type(a))
print(type(b))
print(type(foo2((1, 1000)-foo(1, 1000))))
例外:获取两个不同函数的输出之差的浮点数
实际:
Traceback (most recent call last):
Time used: 0.03690075874328613 sec
File "C:\Users\Administrator\PycharmProjects\untitled1\numbaTester.py",
line 35, in <module>
value of foo 499500
print(type(foo2((1, 1000)-foo(1, 1000))))
Time used for foo2: 0.0 sec
TypeError: unsupported operand type(s) for -: 'tuple' and 'int'
value of foo2 499500
Time used: 0.0 sec
Time used for foo2: 0.0 sec
0
<class 'int'>
<class 'int'>
Time used: 0.0 sec
答案 0 :(得分:0)
您的语法不正确,您在最后一个打印语句中加上了一个括号。
如果将其更改为print(foo2(1, 1000) - foo(1, 1000))
,则会看到可以减去这些函数(或者,如果只想查看输出类型而不是类似于以下结果,则可以将其更改为print(type(foo2(1, 1000) - foo(1, 1000)))
您的初次尝试。)