我正在寻找一种更好地掌握Python语法的方法。 我的经验是语法的railroad diagram可能会有所帮助。
Python文档包含文本形式的语法:
https://docs.python.org/3/reference/grammar.html
但对于刚从软件工程开始的人来说,这并不容易消化。
任何人都有一个很好的初学者材料?
我可以使用Railroad Diagram Generator,但我无法找到Python语法的EBNF语法,该语法将被该生成器接受。 这种语法的链接也非常有用。
答案 0 :(得分:2)
要将在https://docs.python.org/3/reference/grammar.html找到的Python语法转换为EBNF,您基本上需要做三件事:
#...
条评息替换为/*...*/
(或只删除它们)::=
代替:
来定义生产规则(...)?
表示可选元素,而不是[...]
。例如,而不是
# The function statement
funcdef: 'def' NAME parameters ['->' test] ':' suite
你会用
/* The function statement */
funcdef ::= 'def' NAME parameters ('->' test)? ':' suite