作为一个相关的从业者,我用过一系列的编程语言,用于做不同的项目和脚本,但是用到现在让我感觉用得最舒畅的,还是Python。如果你对编程感兴趣,或者想要掌握一门编程语言,我会首先推荐Python。正好最近异步图书的这本《Python编程从新手到高手》出了,像学Python的朋友们有福了。
Python相比于其他语言有什么优势
刚学习Python的时候,相比于其他语言最大的优势就是其语法的简便。
用C语言举例,如果我想写一个两个数相加的加法,首先我要考虑两个相加的数字是什么类型的。如果是整数,就要声明为int;如果有小数,就要声明为float;如果是字符,就要声明为char;如果还有正负值,那还要声明signed或者unsigned;如果使用的整数大于32768,那就需要声明为long。
而在Python中则完全不需要考虑这些,你只需要将值赋给变量,再将变量相加即可。
学到后来,Python的优势就体现在它有各种各样完善的“库”。“库”你可以理解成配件,就是别人已经写好的代码,你可以用这些配件,去拼凑自己想要的功能。比如你想打开excel表格,并读取里面的内容,你只需在代码中使用相关的库就可以直接完成excel的读取,完全不需要自己从0开始写。
为什么要学Python
对于我来说,Python是一个非常好用的工具,如果说你在电脑上有什么需要做的重复性任务,Python基本上都可以帮你简化,你可以用Python搭建一个属于你自己的工作流。
而对于相关从业者来说,Python是处理数据、进行机器学习的基础语言。也就是说如果想要进入人工智能相关行业,目前Python是必须要会的技能。像我目前的工作,有很多代码工作是遵循一定模板的,使用Python脚本就可以很大程度上简化写代码的流程,而且可以减少很多笔误的可能,大大减少重复工作提高效率。
在《Python编程从新手到高手》中,只要你读完了第一部分的七十来页,基本就可以独自在自己的电脑上搭建Python环境并无痛写代码。
Python编程的新手和高手有什么区别
回想起我自己写代码的过程,从刚刚入门到逐渐熟练,代码的风格变化了很多,但写了这么些年,水平大概也就停留在这本《Python编程从新手到高手》的第二部分的程度。
刚开始学习的时候只会图简便,变量命名一切以简便为主,然后所有的功能全部写在main函数中。有这种习惯的原因是因为刚开始练手的代码内容都很简单,但随着代码复杂程度的提高,我慢慢学会将变量命名成一眼就能看懂含义的名字,在代码中加入不同的函数用于实现不同的功能。
再到后来重复的代码变多,我开始逐渐考虑代码的复用性。用一个父类实现一个基本功能,再在子类中继承父类的功能,延展出适用于特定方向的功能。还有不影响功能的情况下对代码的行数进行精简,减少后期debug的难度。这里就不得不提一句第一次看到Python中for循环写法时的那种惊艳的感觉。
比如我现在想将一个数组中的所有数全部都进行平方,并存放进一个新的数组中。用其他语言,比如C语言,我首先需要知道这个数组的长度,然后定义另一个等长的空数组,然后用for循环遍历,平方后存入新数组。这一来一去,大概需要4-5行来完成这段代码。而python只用两行就能搞定。
num_list = [1,2,3,4,5]
squares = [x**2 for x in num_list if x % 2 == 0]
更别说Python中各种切片、迭代器、装饰器、yield、lambda等花里胡哨的用法,只要你用过两种以上的编程语言,用过Python之后你一定会爱上它。
为什么推荐学Python
我觉得Python是高级编程语言的代表,一个是因为编程者完全不需要去考虑底层的内存如何如何,而只需要专注于眼前的代码可以解决什么样的问题。越来越多的Python编程者参与了Python库的编写,让Python的扩展功能变得越来越多,那后来的编程者就可以用更少的语言实现更多的功能。
这有点像中国的成语。比如“围魏救赵”这个成语,讲述了曾经齐国为了救赵国所以转去攻打魏国,让魏国两头不可兼顾,从而达成拯救赵国的目的。现代人想要表达相应的意思,使用围魏救赵这个成语就可以了,不需要再去解释这个成语的背景,我们就知道是什么用法、用于达成什么目的。
我感觉Python库的存在就是类似的作用,我们想用Python代码去打开excel表格,想用Python去分析数据,想用Python去打开网页,我们不需要去重新解决类似的困境,只需要调用别人编写好的库文件代码,我们知道用法、知道能达成什么目的,这就够了。
Python的存在像是集众人之长来搭建一个文明,后来者踩着前人的肩膀解决越来越多、越来越复杂的问题,而不需要从头开始解决底层的问题。
祝每个想学习编程的朋友都可以在Python中找到乐趣!