将变量放在函数定义中 - Python

时间:2017-10-02 20:15:33

标签: python python-2.7 for-loop

python新手。我想要使​​用for循环,并且对于f(x)和amp;都将10到19的范围放入函数定义x ^ 2 +1中。 G(X)。试图做下面没有成功。建议?

def f(x):
   return (x*2+1) 

def g(x):
   return (x*3+1)

for f(x) in range(10, 20):
    print x

for g(x) in range(10, 20):
    print x

3 个答案:

答案 0 :(得分:2)

您应该切换变量和方法表达式:

for x in range(10, 20):
    print f(x)

for x in range(10, 20):
    print g(x)

这将分别为范围内的每个f(x)(10,11,12,...,19)调用g(x)x

答案 1 :(得分:1)

你的函数调用应该是

for x in range(10, 20): 
    print f(x)

for x in range(10, 20): 
    print g(x)

这样你就可以为指定范围内的x的每个实例调用你的函数,你当前调用它的方式毫无意义。

答案 2 :(得分:-2)

目前还不清楚你的意思

  

我想使用for循环,并且放置了10 - 19的范围   进入函数定义 x ^ 2 +1,用于f(x)和& G(X)。

但是如果你的意思是指定的范围要放在函数定义中,那么你可以选择用以下方式定义函数

def f( first: int, last: int ) -> int:
    for i in range( first, last + 1 ):
        yield i ** 2 + 1

def g( first: int, last: int ) -> int:
    for i in range( first, last + 1 ):
        yield i ** 3 + 1

for i in f( 10, 20 ): print( i, end = " " )
print()
for i in g( 10, 20 ): print( i, end = " " )
print()

此代码段的输出类似于

101 122 145 170 197 226 257 290 325 362 401
1001 1332 1729 2198 2745 3376 4097 4914 5833 6860 8001

如果使用的Python不支持注释,则重写像

这样的定义
def f( first, last ):
    for i in range( first, last + 1 ):
        yield i ** 2 + 1

def g( first, last ):
    for i in range( first, last + 1 ):
        yield i ** 3 + 1