如何在python函数中添加可选分隔符?
目前我有一个working range函数,它接受并输出前3个参数,但我不知道如何添加分隔符/结束符的可选第4个参数。我不确定我应该使用sep还是end如何在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
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
@KamalNayansep
不是保留关键字或内置关键字,作为变量名有什么不对?@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)