学习python也有一段时间了,自认为基本算是入门了,想要写一些博客进行知识的汇总的时候。却发现不知道该从何说起了,因为python这门语言在语法上其实并不难,关键在于如何建立程序员的思维方式,而对于初学编程的人来说,恰恰很难建立这种思想,单纯的硬背各种语法效果并不好。所以我的博客主要是将自己一些理解分享给大家,而这些理解我并不能保证一定正确,如果后期发现有什么错误的地方的话,我也会做修改,主要是供参考学习之用,而对于语法主要是总结一下,所以在语法部分会大量参考别人的文章,可能会出现很多和别人重复的东西。
1.安装问题:
按照常规套路,我这里应该介绍一下如何安装python的,例如windows下如何安装,如何设置环境变量,linux下如何安装,如何设置环境变量等等。但是,程序员间有这样的一句话:不要造重复的轮子,在我开始学习python的时候,网络上已经有很多相关的教程了,而我再写一遍,除了费时费力,来浪费服务器资源,也就没必要了。我这里就不一步步去演示了,就稍微总结一下要点。
windows系统:
windows平台直接去官网下载安装文件就好了,然后双击打开安装文件,按要求点下一步就差不多了,在选择要安装哪些东西的时候,全部勾上也可以,然后再设置一下环境变量,就可以使用了,具体步骤去搜索一下就行了,这里不再多说。
linux系统:
linux系统的安装其实说难不难,因为诸如centos和ubantu等发行版其实已经内置了python了,也就是说不用安装就能直接使用了。但是我当时遇到这样一种情况,我用centos6.7做测试的时候,发现它内置的是python2.6的版本,而又想将其换成我正在学的2.7,结果去yum源看的时候,发现里面也是2.6的。这样就只能自己源码编译安装了,具体如何编译也不再重复了,安装以后再次进入交互模式的时候,发现版本还是2.6的。经过一番折腾之后,得出了以下这个解决方法。
首先,我们在centos中进入python交互模式的方法是直接使用以下命令,其他linux发行版应该也一样。
[root@localhost ~]# python
在这里,我强烈建议一定要求学习linux系统,不要求要有做运维的能力,但至少要有一些基础,因为在生产环境中服务器基本的是用的linux,这样我们的代码就都运行在linux上,如果一点都不懂,以后学到一定程度后就会举步维艰。
这里输入python就能进入解释器其实是因为linux通过环境变量已经知道要如何去找到python并运行,而centos中,python的主程序的路径是 /usr/bin/python ,但是我们源码安装的python2.7会将所有文件默认安装在 /usr/local/python27 ,如果在安装的时候没有进行安装路径设置的话。环境变量没有变,这时输入 python ,找的还是原来的那个文件,自然就无法运行我们新装的python。
这个时候,有以下几个方法:
1.以后都直接用绝对路径去运行我们想要的python,但是一般我们不这样做,因为太2了。
2.修改环境变量,让其指向我们新装的python。这个需要一定的linux技巧。
3.既然找的是原来的那个路径,那我们就来一个偷天换日,用一个软连接链接到新的python上。
我当初用的是第三种方法,下面演示一下如何实现:
mv /usr/bin/python /usr/bin/python2.6 #重命名原来的python,也可以删掉,其实里面还有一个叫python2.6的,当然可能会因系统版本有所不同,重命名覆盖掉也可以 ln -s /usr/local/bin/python /usr/bin/python #建立一个软连接
这样,当系统去找python这个系统变量的指向的文件是,而此时找到的文件是一个软连接,这是一个类似于windows中的快捷方式的东西,所有就能继续找到新装python的主程序了。如果你看不懂这段代码,还是那句话,是该去学学linux了。
但是,此时我们的yum工具可能会失效,因为它是用2.6写的,可能会有版本兼容的问题,此时,我们要修改yum的执行文件,让其使用会旧版的解释器。
vim /usr/bin/yum #修改文件的第一行,让其找到原来的解释器 #!/usr/bin/python --> #!/usr/bin/python2.6
如果还去其他因版本的兼容问题,也可以尝试下这个解决方法。
这样,python的版本更换就完成了,另外,如何以后你在安装一下python的库的时候,发现明明正确安装了,而python却找不到,多数可能是这些库被默认安装到源码安装的默认路径下了。而自带python的库的存放目录却不是那里,自然就找不到了。
2.python能做什么
我在很多新手交流群里都会发现时不时有新手问这个问题,其实无所谓能做什么,python几乎是无所不能的,而在于python擅长做什么,爬虫、网页、大数据等等,都有人用python来做,如果你自己想学一门程序作为入门,那么python绝对是一个好的选择。
3.学习什么版本的python好
这也是一个备受关注的问题,python分为2.x和3.x版本,而两个版本间存在着一定差异,很多新手担心学会了其中一个版本以后,可能还要花时间去学习另一个版本,这样很麻烦。
而我个人的回答是,如果没有公司要求一定要用什么版本的话,那么什么版本的资料多就学那个,因为其实作为开发者来说,版本间的差异更多是在底层上的,能感觉的差别很大的地方不多,下面总结了3.x版本的一些新特性:
1.默认编码改成Unicode,也就是说不用进行编码声明,就可以直接使用中文了;
2.print关键字改成了print()方法;
3.raw_input()改成了input();
4.class abc: 的写法改成了 class abc(object): ;
5.重新命名了一些模块;
6.数学运算发生了一些改变,如1/2现在能正确的得出0.5,而不是2.x中的只用整数的运算,结果只取整数位了;
这里简单列举了一下,具体内容可以查看官方文档,了解3.x的新特性。
其实可以发现对于开发者来说,变化的并不多,在完全学会某个版本之后,再转换到其他版本简直不要太简单,所以不用关心版本的问题。
最后补充一点内容:
1.python中的注释
所谓注释,就是给程序员看的,python遇到注释时会自动跳过,不执行里面的内容,注释的方法有:
1.1 单行注释时:# 注释内容
1.2 多行注释时: """注释内容"""
2.python的pyc文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
关于如何导入我们以后再说,但这里要注意一点:我们自己写的程序文件的文件名千万不能和导入模块的文件名相同,否则会不断报错,具体原因以后再分析。