Возврат значения функции в шаг аргумента диапазона - PullRequest
1 голос
/ 31 марта 2012

Привет, может кто-нибудь подскажет мне какое-то руководство, я притворяюсь, что передаю значение схемы функции переменной, которая будет использоваться в качестве шага аргумента внутри модуля диапазона.я надеюсь, что это ясно .. извините новичков, ребята.после некоторых испытаний я получил штраф за редактирование.

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 ]

3 голосов
/ 31 марта 2012

В вашем коде проблема с отступом. Следующее:

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 голос
/ 31 марта 2012

Проблема в отступе вашего кода:

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

в вашем коде шаг возвращается ЕСЛИ и только если x! = 'M'.

1 голос
/ 31 марта 2012

Похоже, вы хотите сделать следующее:

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 в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...