首页 值得一看 🔍️

不知道大伙在学编程的时候有没有这样的疑问:

“变量名为什么宁可使用_这种符号开头,也不能使用数字开头?”

今天我们就来分析下这个规定存在的原因。

先声明:并不是所有语言都不支持数字作为开头的变量名。

重温对变量的定义

变量是一种用于存储和表示数据的标识符。

变量名是给定变量的名称,可以在代码中引用该变量。

重温 Python 的命名规则

  • 第一个字符必须是字母表中字母或下划线 _;
  • 标识符的其他的部分由字母、数字和下划线组成;
  • 标识符对大小写敏感。

“在 Python3 中,可使用中文作为变量名,非 ASCII 标识符也是允许的了。

人类容易造成混淆

假如允许首数字的变量名存在,那么下面这行代码我们将如何理解?

0x756b5b3 = 0x756b5b3

我将一个十六进制的数赋给了 0x756b5b3 变量???

如果我后面把值 0x756b5b3 修改了,那 0x756b5b3 变量肯定会干扰我正常的思绪。

这里肯定有人说了,不要起那么复杂的变量不就行了

再看看下面的这行代码:

1e5 = 1e6

我要使用 1e5 的时候,却给了我 1e6 (值)。。。我估计会炸吧。。。

如果都使用这种命名规则,我是会分不清它是一个变量还是一个数字常量。

所以编程语言中不允许使用数字作为变量的开头,很大一部分原因是为了避免与数字常量产生混淆,提高代码的可读性和可维护性。

计算机容易造成混淆

在编译器或者解释器都会有一个词法分析器。

词法分析器在判断一个词是否以数字开头,如果是以数字开头则把它当作数字常量处理,否则当作普通单词处理。

这个规则可以提高不少词法分析器的效率。

总结

虽然有很少部分编程语言可能允许数字作为变量的开头,但这并不是一个良好的编程实践。

在日常编写代码时,我们都应该遵循语法规则和良好的编程实践,选择有意义的变量名来提高代码的可读性和可维护性。

彩蛋

请阅读以下代码,看你先崩溃还是电脑先崩溃?

1 = 2

if 1 == 2:
  print("1 等于 2 吗?")
else:
  print("2 等于 2 吗?")


文章评论

未显示?请点击刷新