【发布时间】:2020-01-15 18:22:29
【问题描述】:
Python 给了TypeError: '>=' not supported between instances of 'tuple' and 'int'.
我已经尝试过spacing、bracketing, 和其他syntax errors。
def y(t):
t = (-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30)
if t>=0:
return -(3*(len(t**2)+5))
if t<0:
return (3*(len(t**2)+5))
print(y(-9))
期待 Python 打印y(-9) 的答案。 Python 反而给出了TypeError: '>=' not supported between instances of 'tuple' and 'int'.
【问题讨论】:
-
你有
t = -9以整数形式出现,但在进行比较之前,你将其覆盖为t = (-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30),因此它不再是-9。现在它是一个包含所有这些数字的元组。想想看,(-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30) >= 0到底是什么意思?这个函数到底应该做什么? -
我试图让 Python 计算 y(t) 的值,并试图让它决定在给定大于或小于 0 的 t 值时使用哪个方程。
-
是的,但问题是当您执行
if t>=0时,t不再是-9,因为您正在用一个元组覆盖它。问题是这一行t = (-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30)。如果你告诉我这实际上是在计算什么,我可能会为你整理出一个答案,但事实上我无法真正说出这个方程应该代表什么 -
我明白你在说什么。如何让 Python 依次通过“if t>=0...”运行每个数字并返回每个答案?
-
让我把它写下来作为答案,否则真的很难阅读。我想我明白你现在想要做什么。您正在尝试将元组中的每个值输入到函数中,对吗?