Создание функций, добавление аргумента в диапазон - PullRequest
0 голосов
/ 29 августа 2018

Я новичок в программировании (только что узнал, что такое командная строка); Нет предыдущего опыта и только что нашел этот сайт, так что извините за любые ошибки форматирования.

Я действительно борюсь с добавлением аргументов в функцию. В частности, мне нужно добавить аргумент к функции, которую я создал, в которой я возвращаю диапазон с шагом 5. По причинам, которые превышают мой текущий уровень квалификации (но я уверен, что для вас, ребята, я уверен), я не могу использовать основная функция для замены 51 в моей функции fname на 101. По сути, я должен дать fname аргумент для верхнего предела диапазона. Из основной функции я должен передать значение 101 в функцию fname, чтобы fname возвращала [0, 5, 10, ..., 100] основной функции, а основная функция выводит это на экран.

def fname(arg1):
    """this function will compute a range from 0 to 50 in increments of 5"""
    result = list(range(0, 51, 5))
    return result


def main():
    arg1 = list(range(0, 101, 5))
    from_fname_function = fname(arg1)
    print(from_fname_function)

if __name__ == '__main__':
    main()

Любая помощь (с подробным объяснением) будет принята с благодарностью. Я нашел много ресурсов о том, как использовать аргументы в функции, но я не могу понять, как таким образом изменить максимальный предел в диапазоне.

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

Я думаю, что хитрость, которую вы ищете, состоит в том, чтобы иметь функцию fname, чтобы иметь возможность возвращать списки, которые начинаются с нуля и идут с шагом 5, вплоть до любого предела, который вы выберете. Вы действительно близко; вам просто нужно использовать параметр arg1 при создании диапазона, например:

def fname(arg):
    return list(range(0, arg, 5))

Теперь вы можете использовать функцию для создания множества различных списков:

def main():
    print(fname(51))      # this will print [0, 5, 10, ..., 50]
    print(fname(101))     # this will print [0, 5, 10, ..., 100]
    print(fname(10))      # this will print [0, 5]

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

Надеюсь, это поможет!

0 голосов
/ 29 августа 2018
def fname(start, end, inc):
    return list(range(start, end, inc))

print(fname(0,51,5))

В приведенном выше коде функция fname возвращает список значений от 'start' до 'end' с приращением 'inc'

оп: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

0 голосов
/ 29 августа 2018

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

def fname(arg1):
    # actually use the argument to build the range
    result = list(range(0, arg1, 5))  
    return result

def main():
    arg1 = 101
    from_fname_function = fname(arg1)
    print(from_fname_function)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...