当前位置: 华文问答 > 数码

为什么很多人反对中文在编程中的使用?

2020-03-27数码

这有啥好奇怪的。

如果我跟你说中文的时候中间夹着代码你难受不。

if 我 . 说话 ( 你 ): 难受_status = 问 ( 你 , "难受不" ) if 难受_status == True : 问 ( 你 , "知道了么" ) if 问 ( 你 , "知道了么" ) == True : 三连 . 点赞 () else : 三连 . 评论 ( 你 . 疑问 )

机灵抖完了,说点有用的。

编程语言又叫计算机语言,比如python,java,go,c++,易语言。

很显然这些语言不是中文也不是英文,他是一种独特的语言。

计算机最主要的就是要让计算机看懂,如果看不懂就会报错。

计算机看懂语言最重要的其实是语法,只要语法对基本上就ok。

有些杠精可能会在此处杠一下子,代码报错大部分都不是语法报错。

对,没错,但是那些报错都是计算机看懂代码的前提下报的错。

  • 如果是 Syntaxerror ,那么计算机就是跟你说:兄弟,我不知道你在说什么。
  • 如果是 NameError ,那么计算机就是跟你说:兄弟,你别说了,我都懂,但是这个真没有。
  • 如果是 TypeError ,那么计算机就是跟你说:兄弟,咱们之前可不是这么说的啊。
  • 如果是AttributeError,那么计算机就是跟你说:兄弟,别整这套,在我这不好使。
  • 如果是IndexError,那么计算机就是跟你说:兄弟,你这样让我很难做啊。
  • 所以说,只有语法错误,是计算机不懂你在说什么,其他类型的报错,是计算机知道你在说什么,但是他没法照着干。

  • 当然还有warning,计算机在说:行吧,我吃点亏就吃点亏,就当赚个回头客,这价格你可千万别跟别人说啊。
  • 那么代码还要具备另外一个特性,就是可读性,可维护性。

    换句话说就是,代码不光要让计算机能懂,还要让人能懂。

    所以标志符,关键字,起名是为了给人看的,只要便于理解,编程语言允许这么命名,用什么语言命名其实不重要。

    这时候有杠精可能要站出来了,中文命名会影响代码的执行效率。

    那我们用事实说话。

    import time def clock(func): def clocked(*args, **kwargs): start = time.time() result = func(*args, **kwargs) end = time.time() print(func.__name__, end - start) return result return clocked @clock def test(): a = True b = 0 while a: b+=1 if b>=1000000: break @clock def 测试(): 诶 = True 币 = 0 while 诶: 币+=1 if 币>=1000000: break if __name__ == '__main__': for i in range(10): 测试() test()

    两个一模一样的函数,一个所有的都用中文命名,一个所有的都用英文命名。看看运行时间。

    跑10组作为对比

    测试结果显而易见,并不会对运行效率产生影响。

    以上说了这么多,就是为了论证,标志符,关键字的中文命名对实际执行和理解上并不会产生太多影响。

    那么为什么很多人反对中文在编程中使用。

    因为要照顾到读代码的强迫症患者。

    代码写久了就会有这种强迫症,习惯了用字母作为函数名,类名,变量名,突然看到中文命名就会很难受。宁愿用pinyin也不用中文。这是几乎所有程序员都有的强迫症,甚至延伸出其他强迫症。

    比如我就受不了点赞数是偶数。