0
F(x,y)=3x+10y

我想f(x,y)在 python 中显示 x={0,1…,5} 和 y={0,1,…..,8} 的所有结果,
我试过:

from math import *
def f(x,y):
    x in rang(5)
    y in rang(8)
    return (3*x)+(10*y)

NameError: name 'x' is not defined
4

2 回答 2

2

您必须将结果存储在这样的列表中,然后像这样在循环结束时返回

def f(x,y):
    result = []
    for i in range(x):
        for j in range(y):
            result.append((3*i)+(10*j))
    return result

print f(5, 8)

或者您可以像这样使用列表理解来缩短循环部分

def f(x,y):
    return [(3*i)+(10*j) for i in range(x) for j in range(y)]
于 2013-11-05T13:45:25.673 回答
0

您似乎对函数的工作原理有所了解。您应该在f(x,y)函数外部循环并传入xand y

我相信这就是你想要的:

from math import *

def f(x, y):
    return (3 * x) + (10 * y)

for x in range(5):
    for y in range(8):
        print "f(%d, %d) = %d" % (x, y, f(x, y))
于 2013-11-05T13:50:57.690 回答