任何事情只要有人规定成文了,必定有其原因所在,也就是有其合理性所在。

Python变量命名规则(推荐学习:Python视频教程)

变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头,例如,可将变量命名为message_1,但不能将其命名为1_message。

变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。

不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。

变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。

慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;

注意:应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的注意。

那么它为什么不能以数字开头呢?这应该要从编译原理的角度来解释了吧。

这是我今天在做脚本解析时突然想到的。先来说明一下我们的这个语法解析工具,要解析的脚本很简单,只包括了&,|,~,=,!=,()和{}等操作符。开始时采用了编译原理的那一套,画NFA、DFA,找出状态然后再写词法分析生成Token,接着语法分析将生成的Token根据语义生成语法树,最后求值。后来想一想,这个脚本很简单只需要一个一个字符判断遇到不同类型的字符就进入到不同的子函数中进行处理,同时完成词法解析和语法分析以及求值的过程。不过无论使用那种方法都需要根据读入的字符来判断当前进入到哪个Token里了,这就是问题的关键所在。

为什么说判断字符属于哪个Token是关键呢?

假设我们取消掉了变量名定义中不能以数字开头的限制,这时当词法分析器进入到一个Token分析的起始状态时,如果读取的第一个字符为数字,那么词法分析器是无法判断它当前要分析的这个Token是变量名还是数字常量了。好,如果你说分析器可以根据后面的字符来判断的话,那么如果下一个字符为字母,那么很容易就判断出当前Token属于变量名(我们暂且忽略保留关键字),但是当如果接下来的字符全都是数字那怎么办?分析器将无法判断,因为变量名的定义中允许数字的存在。

呵呵,上面也许说的比较绕口难于理解,用句简单的话来讲就是:当分析"123"这个字符串的时候,如果变量名允许第一个字符为数字,分析器就不知道“123”该是数值常量还是变量名了。

更多Python相关技术文章,请访问Python教程栏目进行学习!

以上就是python变量为什么不能以数字开头的详细内容,更多请关注php中文网其它相关文章!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

python变量名必须以什么开头_python变量为什么不能以数字开头相关推荐

  1. python变量无需指定类型对吗_Python变量类型 - osc_3rgq3dae的个人空间 - OSCHINA - 中文开源技术交流社区...

    变量存储在内存中的值,这就意味着在创建变量时会在内存开辟一个空间. 基于变量的数据类型,解析器会分配指定内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型,这些变量可以存储整数. ...

  2. python变量按其作用域可分为_python变量的作用域一

    #6.2变量的作用域,是变量的可访问范围,也称为命名空间.在第一次 #给变量赋值时,python创建变量.第一次给变量赋值的位置决定了变量的作用域. #作用域类型 #一个程序通常包含了变量.函数和其他 ...

  3. python为什么不能以数字开头_python变量为什么不能以数字开头

    任何事情只要有人规定成文了,必定有其原因所在,也就是有其合理性所在. Python变量命名规则(推荐学习:Python视频教程) 变量名只能包含字母.数字和下划线.变量名可以字母或下划线开头,但不能以 ...

  4. python的变量名可以是中文吗_Python中用中文变量名、函数名,会影响性能吗?

    首先,python这样的语言,只能做有限的"词法编址"(lexical address),不可能实现 @王加加 所说的"所有变量名函数名等名称,在转成字节码后,只是一个个 ...

  5. python 全局变量使用报错没有定义_Python变量作用域代码解析

    本篇文章小编给大家分享一下Python变量作用域代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 特点 python的作用域是静态的,在源代码中 ...

  6. python变量的作用域及生命周期_Python——变量的作用域

    原创声明:本文系博主原创文章,转载及引用请注明出处. 1. 在编程语言中,变量都有一定的作用域,用来限定其生命周期,且不同类型的变量作用域不同. 在Python中解释器引用变量的顺序(优先级)为:当前 ...

  7. python的变量需要声明赋值才能使用_Python变量的定义和使用

    任何编程语言都需要处理数据,比如数字.字符串.字符等,我们可以直接使用数据,也可以将数据保存到变量中,方便以后使用. 变量(Variable)可以看成一个小箱子,专门用来"盛装"程 ...

  8. linux下变量名长度,Linux中shell的变量介绍

    Linux中shell的变量介绍 发布时间:2020-06-24 16:20:39 来源:亿速云 阅读:112 作者:元一 这期内容当中的小编将会给大家带来有关Linux中shell的变量介绍,以专业 ...

  9. c语言变量名用一个字母,C语言变量命名规则

    <C语言变量命名规则>由会员分享,可在线阅读,更多相关<C语言变量命名规则(6页珍藏版)>请在人人文库网上搜索. 1.1.严格采用阶梯层次组织程序代码:各层次缩进的分格采用VC ...

最新文章

  1. Windows WorkFlow Foundation学习资源
  2. mysql查询递增列_mysql在查询结果列表前添加一列递增的序号列(最简)
  3. 用ModSecurity+PhantomJS进行服务器端XSS攻击检测
  4. String、StringBuilder和StringBuffer的区别和用法
  5. 封装html ui 控件,聊聊前端 UI 组件:组件设计
  6. IntelliCAD 2009 Pro Plus v6.4.23.2 1CD
  7. Linux下5种动态库运行时搜索路径的方法
  8. TMS320C6678入手准备
  9. vscode离线安装vsix插件命令
  10. 【这是一个还没有被证实是否有效的小白修炼手册】数据结构入门第一课基本概念
  11. 【机器学习】Adaboost
  12. 安全警告——“Windows已经阻止此软件因为无法验证发行者”解决办法
  13. ANSYS Electronic各类
  14. Windows添加网络位置向导(即我的电脑中添加网络盘符)
  15. Smart Link Monitor Link
  16. iOS---学习研究大牛Git高星项目YYCategories(三)
  17. 16281053_杨瑷彤_操作系统第五次实验-文件系统
  18. 求正多边形各顶点的坐标(数学)
  19. 凤凰os可以运行linux软件吗,把凤凰系统装进U盘里,打造PC上的可移动android系统...
  20. bzoj2295【POJ Challenge】我爱你啊*

热门文章

  1. 【leetcode 简单】 第三十五题 环形链表
  2. c#學習筆記--Visual Studio 使用
  3. Python学习笔记-2017.8.08
  4. joomla \libraries\joomla\session\session.php 反序列化截断畸形字符串导致对象注入漏洞...
  5. JBuilder安装JDBC drive的方法略解
  6. CVPR 2019 | 步步为营!通过迭代式模糊核预测提高超分辨质量
  7. linux vim配置缩减,让VIM更好的工作——VIM基本配置
  8. 零基础直接学Python入门IT合适吗?
  9. 经验 | CVPR 2021 Area Chair:谈CVPR 2021审稿
  10. 乾坤大挪移——冒泡法排序,良心之作,拒绝入坑