我需要定义一个函数T(i),它具有从i = 1到1 = 3的相同值(比如10),以及在i = 4时的不同值(比如20)。我写了以下代码,
def T(i):
for i in range(1, 4):
y= 10
return y
if i==4:
y= 20
return y
for i in range(1, 5): print(i,T(i))
正确打印i = 1到1 = 3的值,但i = 4的值错误。似乎第二个参数未正确分配。请帮忙。
提前致谢。
答案 0 :(得分:1)
您需要先处理特殊情况
def T(i):
if i < 4:
return 10
else:
return 20
for i in range(1, 5): print(i,T(i))
答案 1 :(得分:1)
函数中不需要for
循环,因为无论如何都要从循环中调用T()
,return
将退出该函数,因此if
声明无法执行。
更简单的方法是:
def T(i):
return 20 if i==4 else 10
但是,定义函数不是完成此操作所必需的,您可以在列表解析中实现相同的条件:
[20 if i==4 else 10 for i in range(1,5)]