需要澄清可选参数

时间:2014-03-07 05:19:11

标签: python python-2.7

range(start, stop[, step])

这些方括号和逗号的含义是什么? 我知道这一步是可选参数,但这个概念对我来说仍然不清楚 如果你能提供一些很好的例子,以便下次python doc中的这些括号不会让我感到恐惧,那就太棒了

谢谢!

3 个答案:

答案 0 :(得分:3)

方括号是旧的语法文档简写,“括号中的部分可以省略”。因此,将第二个,step放在括号中,它表示您可以保留两者或省略两者,但保留,并省略step(反之亦然)是语法错误。

您有时会看到的另一种语法文档简写是<parameter>,这意味着将参数的值(或变量或表达式;无论有效)放在文本所在的位置。 <>未被保留。这些括号用于消除关键字和函数名称中的参数。

另一种简写是...,这意味着“在此之前的部分可以根据需要重复。”

总而言之,您可以将max函数记录为:

max(<value> [, <value> ...])

表示文字函数名称max后面跟着文字(然后是值;然后可选择,和另一个值,根据需要重复,并以文字)结尾。

它比BNF类型的语法更容易阅读,虽然不太精确,但即使您只有纯文本格式,也无法在不同的字体中设置关键字和文字,它也能正常工作。

答案 1 :(得分:1)

这意味着即使您未指定step参数,也将使用默认值。在这种情况下,默认值为1。方括号只是一个表示可选参数的python约定。

您可以通过显式指定步骤来覆盖默认值。

>>> range(0, 10, 2)
[0, 2, 4, 6, 8]

答案 2 :(得分:1)

这意味着您可以使用/ range参数调用step函数。

>>> range(1, 5, 1) # with `step` argument
[1, 2, 3, 4]
>>> range(1, 5)    # without `step` argument
[1, 2, 3, 4]

所以,上面两个例子都有效。