将函数值返回到范围参数步骤

时间:2012-03-31 19:08:21

标签: python function range

嗨,有人可以给我一些指导,我假装将函数模式的值传递给一个变量,该变量将用作范围模块中的参数步骤。 我希望它清楚..抱歉新手们。 经过一些试验,我得到了编辑。

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

3 个答案:

答案 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'时才会返回。