如何在python函数中添加可选分隔符?

如何在python函数中添加可选分隔符?,python,python-3.x,arguments,range,Python,Python 3.x,Arguments,Range,目前我有一个working range函数,它接受并输出前3个参数,但我不知道如何添加分隔符/结束符的可选第4个参数。我不确定我应该使用sep还是end def Practice(start, stop, step): for i in range(start, stop+1, step): if i%step == 0: print(i, end=' ') 因此,如果用户在shell中键入:Practice(4,24,4) 它将打印:4 8 12 16 20 24

目前我有一个working range函数,它接受并输出前3个参数,但我不知道如何添加分隔符/结束符的可选第4个参数。我不确定我应该使用sep还是end

def Practice(start, stop, step):
for i in range(start, stop+1, step):

    if i%step == 0:

        print(i, end=' ')
因此,如果用户在shell中键入:Practice(4,24,4)
它将打印:4 8 12 16 20 24

让参数有一个默认值。或者,在函数体中,您可以检查用户是否传递了自己的参数(但您的用例不需要这样做)

def rangePractice(开始、停止、步骤、分隔符=“”):
对于范围内的i(启动、停止+1、步进):
如果i%step==0:
打印(i,结束=分隔符)
试试这个: 在下面的代码中,若不传递任何值,则步骤的默认值将为4

e.g.1  rangePractice(4,24) # will have step=4 and separator = "  "
e.g.2  rangePractice(4,24,5) # will step=4 and separator = "  "
e.g.3  rangePractice(4,24,4, "-") # will have step=4 and separator = "-"

sep
用于分隔参数,并在最后一个参数之后使用
end
。它们由
print
功能使用

>>> print('boa', 'cat', 'dog', sep='=>', end='!!!\n')
boa=>cat=>dog!!!
因此,在程序中需要
end
。如果使用
sep
end
将被视为
\n
,并且所有行将以新行打印

def rangePractice(start, stop, step, separator = "  "):
    for i in range(start, stop+1, step):
        if i%step == 0:
            print(i, end=separator)

我建议练习这样的事情,不要让stackoverflow给你添麻烦,这会提高你的知识。

可选参数可以用默认值指定。例如:def rangePractice(开始、停止、步骤、sep=“”):
rangePractice=range
,但可能不是很好的练习;)避免对变量名使用任何保留关键字:
sep
@KamalNayan
sep
不是保留关键字或内置关键字,作为变量名有什么不对?@Chris_Rands:没什么不对,只是约定而已
sep
被print函数用作参数。python的美丽之处在于它从不抱怨这样的问题things@KamalNayan没有惯例可以避免使用关键字参数作为变量名,这将是愚蠢的(你怎么会得到这样的名称列表?)。在这里,他们试图模拟
range()
,因此在IMO中使用相同的名称是有意义的。无论如何,True关键字不能用作变量名称,例如
for=1
是否无效语法步骤是否也可以这样做?因此,假设用户没有为步骤输入数字;如果用户只添加两个数字:rangePractice(4,24),那么默认值是否为增量1?步骤中也可以添加“是”。您可以将任何参数设置为可选,只需传递rangePractice(开始、停止、步骤=4,分隔符=”)@lsimon:是的,您可以有任意多个具有默认值的参数。但请记住,具有默认值的值必须始终位于强制值之后。
def rangePractice(start, stop, step, separator = "  "):
    for i in range(start, stop+1, step):
        if i%step == 0:
            print(i, end=separator)