1使用替代方法解决复发问题1

时间:2013-11-05 13:42:08

标签: python list

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

我想在python中显示f(x,y)对于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

2 个答案:

答案 0 :(得分: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)

或者您可以使用list comprehension缩短循环部分,就像这样

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

答案 1 :(得分:0)

您似乎对混合功能的运作方式有所了解。您应该在f(x,y)函数之外循环并传入xy

我相信这就是你想要的:

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))