出品 | 麦叔编程 (ID:maishucode)
假如变量名允许以数字开头...
最近有同学问我,“变量名为什么宁可使用_
这种符号开头,也不能使用数字开头?”
不知道大伙在学编程的时候有没有这样的疑问?(我当年就有。)
今天分析下这个规定存在的原因。
先声明:并不是所有语言都不支持数字作为开头的变量名。
重温对变量
的定义
变量是一种用于存储和表示数据的标识符。
变量名是给定变量的名称,可以在代码中引用该变量。
重温Python的命名规则
第一个字符必须是字母表中字母或下划线 _; 标识符的其他的部分由字母、数字和下划线组成; 标识符对大小写敏感;
“在Python3中,可使用中文作为变量名,非ASCII标识符也是允许的了。
人类容易造成混淆
假如允许首数字的变量名存在,那么下面这行代码我们将如何理解?
0x756b5b3 = 0x756b5b3
我将一个十六进制的数赋给了0x756b5b3
变量???
如果我后面把值0x756b5b3
修改了,那0x756b5b3
变量肯定会干扰我正常的思绪。
这里肯定有人说了,不要起那么复杂的变量不就行了~~
再看看下面的这行代码:
1e5 = 1e6
我要使用1e5
的时候,却给了我1e6
(值)。。。我估计会炸吧。。。
如果都使用这种命名规则,我是会分不清它是一个变量还是一个数字常量。
所以编程语言中不允许使用数字作为变量的开头,很大一部分原因为了避免与数字常量产生混淆,提高代码的可读性和可维护性。
计算机容易造成混淆
在编译器或者解释器都会有一个词法分析器。
词法分析器在判断一个词是否以数字开头,如果是以数字开头则把他当作数字常量处理,否则当作普通单词处理。
这个规则可以提高不少词法分析器的效率。
总结
虽然有很少部分编程语言可能允许数字作为变量的开头,但这并不是一个良好的编程实践。
在日常编写代码时,我们都应该遵循语法规则和良好的编程实践,选择有意义的变量名来提高代码的可读性和可维护性。
彩蛋
请阅读以下代码,看你先崩溃还是电脑先崩溃?
1 = 2
if 1 == 2:
print("1 等于 2 吗?")
else:
print("2 等于 2 吗?")
推荐阅读: 这是一件程序员才懂的T恤 ChatGPT能取代多少程序员? 面试黑话翻译,听懂就是避坑 C++17一个很冷门很有意思的新特性 程序员痴迷写脚本?这是不是一种病... Office 2019/2021专业增强版,正版终身授权! <END> “
大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前的文章,比如一些送书的限时福利,错过了就是错过了。
所以建议大家加个星标,就能第一时间收到推送。