创建函数,向范围添加参数

问题描述 投票:1回答:3

我是编程的新手(刚刚学到了什么命令行);没有以前的经验,只是发现这个网站,所以借口任何格式错误。

我真的很想为函数添加参数。具体来说,我需要为我创建的函数添加一个参数,在该函数中我返回一个增量为5的范围。由于超出我当前技能水平的原因(但对你们来说很明显,我确定),我无法使用用我的fname函数中的51替换101的主要功能。本质上,我必须给fname一个参数作为范围的上端。从main函数,我必须将值101传递给fname函数,以便fname将[0,5,10,...,100]返回到main函数,main函数将其打印到屏幕。

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

任何帮助(详尽的解释)将不胜感激。我找到了很多关于如何在函数中使用参数的资源,但我无法弄清楚如何以这种方式更改范围内的最大限制。

python python-3.x function arguments range
3个回答
2
投票

请注意,您没有使用已在函数体中添加的参数。从文档字符串来看,我假设您希望使范围的上边界灵活。请尝试沿着以下几行:

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)

0
投票

我认为您正在寻找的技巧是让函数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]

函数参数的概念是它们允许您创建一个可以在不同时间使用不同值执行某些操作的函数。因此,如果您希望从零开始生成以5为增量的列表,并且您希望对不同的结束值执行此操作,那么您将限制作为参数(因为这是更改的部分),并使用参数功能正确的地方。

希望有所帮助!


0
投票
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]

© www.soinside.com 2019 - 2024. All rights reserved.