如果标识符允许第一个字符为数字字符的话,那么 3e3 既可表示标识符(变量名),亦可表示数值:3*10^3, 编译时会显示二义性。
如果一个变量以数字开头,那么分析器就必须在遇到第一个或第二个英文字符的时候回溯来确定是否是数字、变量名还是词法错误,这时候变成了二型文法。二型文法分析器的好处是支持回溯和递归语法(所以语法分析是靠它的),但是缺点是状态机相比正则文法状态大大增加,而且代码写起来更困难。
考虑到词法分析部分只是用来断字,我们实在是没有为了支持变量名以数字开头这么一个小功能而让整个词法分析部分用二型文法写。
故,最后大家都默认了变量要避免用数字开头。
python命名为什么不能用数字开头
原文作者:FD阿虎
原文地址: https://blog.csdn.net/XahY66/article/details/116005464
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/XahY66/article/details/116005464
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。