Python 定义函数时的元组和Int问题

Python 定义函数时的元组和Int问题,python,int,tuples,Python,Int,Tuples,Python在“tuple”和“int”的实例之间不支持“>=”。 我已经尝试了间距、括号、和其他语法错误 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)) defy(t): t=(

Python在“tuple”和“int”的实例之间不支持“>=”。

我已经尝试了
间距
括号、
和其他
语法错误

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))
defy(t):
t=(-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30)
如果t>=0:
返回-(3*(长(t**2)+5))

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

因此,您实际上需要将值
(-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30)
输入函数并打印结果。因此,我们需要将其移出函数,在元组中循环,并将每个值分别输入到函数中。我已经更改了变量的名称,以便更好地表达它们的意图。我建议您在代码中始终这样做,因为要弄清楚名为
t
的变量的含义可能会非常混乱,特别是如果您在两周后再次查看此代码

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))
defy(值):
如果值>=0:
返回-(3*(值**2)+5)

如果值
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)的值,并试图让它决定当t的某个值大于或小于0时使用哪个方程。是的,但问题是当你做
时,如果t>=0
t
不再是
-9
,因为您正在用元组覆盖它。问题是这行
t=(-9,-6,-3,0,3,6,9,12,15,18,21,24,27,30)
。如果你告诉我这是怎么计算的,我可能会给你一个答案,但事实上,我真的不知道这个方程应该代表什么,我明白你在说什么。我如何让Python按顺序运行“if t>=0…”中的每一个数字并返回每个答案?让我很快地把它写下来作为答案,否则会很难阅读。我想我明白你现在想做什么了。您正试图将元组中的每个值都输入到函数中,对吗?它成功了!你回答的第一部分就是我工作的目的,谢谢!
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)))