读过我文章的朋友可能知道,我是跨专业从事C语言开发,其实c语言的学习之路是非常枯燥的,因为在此之前没有接触过任何语言,当时自己花了半年的时间边工作边学习了C,以至于现在可以靠C吃饭。
目前有了c的底子,有了学习python的想法,也是有一个额外项目的需要。
在打算学习python之前,查了资料说python是大神用c在底层编写的,瞬间对自己有了自信。今天花了半小时的时间查看了些资料,算是初识了python。
python安装
学习python,先安装编译环境。
去python官网下载适合自己的电脑的python程序,推荐下载3.5+版本,支持多种操作系统。
下载之后安装,推荐安装到C盘,安装只提示一点,其余正常安装即可。
提示点:
在安装python的时候,安装界面会出现两个勾选项,推荐全部勾选。
如下:
运行python编译环境
如果之前有过DOS环境操作经验的话,直接调用cmd命令,输入python即可运行。
没有的话可以在开始菜单中找到自己安装的python软件,打开IDLE或python3.6均可以运行编译环境。在该环境下可以调试python命令,自测很流畅。
初识python语法
刚学习python时间比较短,刚才主要看了一下python语法基础,并在编译环境中测试了下python变量、字符串以及list和tuple的使用规范。
说下感受。
因为自己有c的基础,c是一门比较接近底层的语言,如果你的c语言较为精通,尤其是当你对c的内存以及指针理解比较深刻的情况下,对于python的变量、内存以及list和tuple的理解应该不会很难的。
先说变量
python定义变量直接
name = 'Jack'
定义之前不需要声明数据格式,这和c不一样,因为在c中如果想要定义变量,一般我们会先声明变量的数据类型,然后赋值,如:
char name[] = {'J','a','c','k'};
其实感觉python定义变量比较方便,要不怎么能叫高级语言呢,个人理解应该是因为复杂的数据类型转换都在python中封装好了!
获取长度
在c中我们获取长度常用sizeof关键字。 如
char name[] = {'J','a','c','k'};
int a;
a = sizeof name;
而在python中则用len()方法,
如
a = len(name)
其长度单位应该还是以内存大小或机器位数为单位。(这个以后再慢慢了解)但关于list的长度则是元素的个数,这个是不一样的。
list和tuple
个人理解为list为数组可变数组,可任意增加数组元素或删除数组元素,tuple为不可变数组,可以和C语言中的const关键字联系。但是list和tuple中的元素类型可以不一致,这也是python比c要高级的地方。
另外,list提供了几个常用的方法类函数,如pop()和append(),但是tuple因为是不可变元组,所以这两个方法不适用,但是可以根据元素索引直接读出。
值得一提的是,list和tuple可以通过索引为-1来逆序读取数据,这一点还是比较有用的。
下面的例子以C和python对数组的操作来举例说明:
//c
int a[] = {1,2,3,4};
int b;
b = sizeof a;
//python
a = [1,2,3,4]
b = len(a)
这个例子输出的长度均为4.
//python
a = [1,2,4]
a.append(5) // 数组插入5 a变为a = [1,2,4,5]
a.insert(2,3) //数组在索引为2的位置插入3 a变为a = [1,2,3,4,5]
a.pop() //list弹出最后一个元素,删除5
而以上操作如果使用C语言的话,估计就得几行代码来实现了。如要在索引为2的位置插入数字3,则为:
int a[] = {1,2,4};
int b[2] = {0};
memcpy(b,&a[2],1);
a[2] = 3;
memcpy(&a[3],b,1);
实现起来就比较麻烦,这也是c与python的区别及优劣势所在。c代码多但执行速度快,python代码少但执行速度慢,因此各有千秋。