【问题标题】:Tuple and Int Issue when defining function定义函数时的元组和整数问题
【发布时间】:2020-01-15 18:22:29
【问题描述】:

Python 给了TypeError: '>=' not supported between instances of 'tuple' and 'int'.

我已经尝试过spacingbracketing, 和其他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: '&gt;=' 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) &gt;= 0 到底是什么意思?这个函数到底应该做什么?
  • 我试图让 Python 计算 y(t) 的值,并试图让它决定在给定大于或小于 0 的 t 值时使用哪个方程。
  • 是的,但问题是当您执行if t&gt;=0 时,t 不再是-9,因为您正在用一个元组覆盖它。问题是这一行t = (-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30)。如果你告诉我这实际上是在计算什么,我可能会为你整理出一个答案,但事实上我无法真正说出这个方程应该代表什么
  • 我明白你在说什么。如何让 Python 依次通过“if t>=0...”运行每个数字并返回每个答案?
  • 让我把它写下来作为答案,否则真的很难阅读。我想我明白你现在想要做什么。您正在尝试将元组中的每个值输入到函数中,对吗?

标签: python int tuples


【解决方案1】:

这个答案是由评论链通知的,所以如果它似乎与问题中的内容不匹配,请读者原谅我。阅读有关问题的评论链,了解为什么提供此答案

所以你实际上想将值(-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30) 输入函数并打印结果。所以我们需要把它移出函数,循环遍历元组并将每个值分别输入到函数中。我更改了变量的名称以更好地表达它们的意图。我建议始终在您的代码中执行此操作,因为要弄清楚名为 t 的变量的含义可能会非常令人困惑,尤其是如果您最终在 2 周内再次查看此代码时!

def y(value):
    if value>=0:
        return -(3*(value**2)+5)
    if value<0:
        return (3*(value**2)+5)

data = (-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30)
for item in data:
    print(y(item))

我唯一不确定的是 return 语句,因为我不确定这些应该计算什么。整数没有长度。如果这实际上应该是元组的长度(这意味着这只会输出 593,或者给定这个元组 -593),那么你会这样做

def y(value, length):
    if value>=0:
        return -(3*(length**2)+5)
    if value<0:
        return (3*(length**2)+5)

data = (-9, -6, -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30)
for item in data:
    print(y(item, len(data)))

我希望这会有所帮助。如果有任何不清楚或我误解了某些内容,请在下面发表评论,我会尽可能解决此问题。

【讨论】:

  • 成功了!您回答的第一部分是我的工作,谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-01-24
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多