嗨,有人可以给我一些指导,我假装将函数模式的值传递给一个变量,该变量将用作范围模块中的参数步骤。 我希望它清楚..抱歉新手们。 经过一些试验,我得到了编辑。
import os
import sys
def schema(x):
if x == 'M':
step=1
else:
step=2
return step
def main():
left_start = 1
left_end = 9
sch = schema('M')
range1= range(left_start,left_end,sch)
if 2 in range1:
print "In range"
else:
print "Missing in range"
if __name__ == '__main__':
main()
答案 0 :(得分:3)
您的代码存在缩进问题。以下内容:
def schema(x):
if x == 'M':
step=1
else:
step=2
return step
应该阅读
def schema(x):
if x == 'M':
step=1
else:
step=2
return step
否则,该函数在None
时返回x == 'M'
。
编写该函数的更简洁方法是:
def schema(x):
return 1 if x == 'M' else 2
答案 1 :(得分:1)
看起来您想要执行以下操作:
def schema(x):
if x == 'M':
step=1
else:
step=2
return step
注意return step
如何缩进到与if
语句相同的级别。在您的代码中,return step
只会在else
案例中运行。在x == 'M'
的情况下,您的代码将从None
返回schema()
。
我建议的代码在任何一种情况下都会运行return step
。
答案 2 :(得分:1)
缩进代码中的问题:
def schema(x):
if x == 'M':
step=1
else:
step=2
return step
它应该是:
def schema(x):
if x == 'M':
step=1
else:
step=2
return step
在您的代码中,步骤以IF返回,仅当x!='M'时才会返回。