Python语法的铁路图

时间:2015-04-08 20:46:55

标签: python

我正在寻找一种更好地掌握Python语法的方法。 我的经验是语法的railroad diagram可能会有所帮助。

Python文档包含文本形式的语法:

https://docs.python.org/3/reference/grammar.html

但对于刚从软件工程开始的人来说,这并不容易消化。

任何人都有一个很好的初学者材料?

我可以使用Railroad Diagram Generator,但我无法找到Python语法的EBNF语法,该语法将被该生成器接受。 这种语法的链接也非常有用。

1 个答案:

答案 0 :(得分:2)

要将在https://docs.python.org/3/reference/grammar.html找到的Python语法转换为EBNF,您基本上需要做三件事:

  1. 将所有#...条评息替换为/*...*/(或只删除它们)
  2. 使用::=代替:来定义生产规则
  3. 使用(...)?表示可选元素,而不是[...]
  4. 例如,而不是

    # The function statement
    funcdef: 'def' NAME parameters ['->' test] ':' suite
    

    你会用

    /* The function statement */
    funcdef ::= 'def' NAME parameters ('->' test)? ':' suite