学习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.      #重命名原来的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.

  如果还去其他因版本的兼容问题,也可以尝试下这个解决方法。

  这样,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解释器编译之后产生的字节码。

  关于如何导入我们以后再说,但这里要注意一点:我们自己写的程序文件的文件名千万不能和导入模块的文件名相同,否则会不断报错,具体原因以后再分析。

1.python的第一步的更多相关文章

  1. Python 编程第一步

    Python  编程第一步 在前面的教程中我们已经学习了一些 Python3 的基本语法知识,下面我们尝试来写一个斐波纳契数列. # Fibonacci series: 斐波纳契数列 # 两个元素的总 ...

  2. Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化

    拿来主义: python -m cProfile -o profile.pstats to_profile.py gprof2dot -f pstats profile.pstats |dot -Tp ...

  3. Python爬虫第一步

    这只是记录一下自己学习爬虫的过程,可能少了些章法.我使用过的是Python3.x版本,IDE为Pycharm. 这里贴出代码集合,这一份代码也是以防自己以后忘记了什么,方便查阅. import req ...

  4. python+selenium第一步 - 环境搭建

    刚开始学习一门技术,肯定是要从环境搭建开始的,我也不例外. 首先选择需要安装的版本,我使用的是mac自带的2.7版本. selenium2,和火狐浏览器 为求稳定不会出现未知问题,我选择了seleni ...

  5. python 装饰器 第一步:基本函数

    # 第一步:基本函数 def eat(): print('吃饭') # 调用 eat()

  6. Theano2.1.2-基础知识之第一步:代数

    来自:http://deeplearning.net/software/theano/tutorial/adding.html Baby Steps - Algebra 一.两个标量相加 在学习the ...

  7. 第一步 django的下载安装

    django是python众多web框架中比较有名的一个,以大包大揽功能俱全而著名.但作为重量级的web框架,难免性能上回有所损失,不过由于其封装了各种API,在开发的时候会便利许多.所以也是深受欢迎 ...

  8. python django第一天

    django第一天,上一次是使用了virtualenv(沙盒),这一次就直接用virtualenv直接建一个django的环境,用来自己练着试试django: source django/Script ...

  9. Django第一步

    对于一个web框架,掌握了三部分的内容,就可以说是迈出了第一步. 1. 准备开发环境 2. 创建一个工程,并运行 3. 开发hello world应用 1. 准备环境 首先应该是安装python和dj ...

随机推荐

  1. PL/SQL常用设置 可看引用位置更清晰直观 引自:http://blog.csdn.net/xiaoqforever/article/details/27695569

    引自:http://blog.csdn.net/xiaoqforever/article/details/27695569 1,登录后默认自动选中My Objects 默认情况下,PLSQL Deve ...

  2. MFC学习 修改窗口样式

    1. 在PreCreateWindow中可用CREATESTRUCT cs, cs.lpszName修改窗口标题, cs.lpszClass = AfxRegisterWndClass 修改图标与样式 ...

  3. Orchard官方文档翻译(二) 安装 Orchard

    原文地址:http://docs.orchardproject.net/Documentation/Installing-Orchard 想要查看文档目录请用力点击这里 最近想要学习了解orchard ...

  4. 实现web页面按比例缩放

    对于web的掌握限于可以看懂别人的代码,并在框架中作相应修改或增加. 今天把另一个项目中的网页源代码粘过来做一个页面,结果问题百出. 首先,同样的代码,放在自己的项目里,页面排版错乱,看了下,引用的w ...

  5. php 调用.net的webservice 需要注意的

    首先 SoapClient类这个类用来使用Web services.SoapClient类可以作为给定Web services的客户端.它有两种操作形式:* WSDL 模式* Non-WSDL 模式在 ...

  6. WPF学习系列之六 (元素绑定)

    元素绑定 简单地说,数据绑定是一种关系,该关系告诉WPF从一个源对象提取一些信息,并使用这些信息设置目标对象的属性.目标属性总是依赖属性,并且通常位于WPF元素中. 一.将元素绑定到一起 <Wi ...

  7. 浅谈 cookie 和 session

    1.关闭浏览器后,session是否还存在? session在服务器和客户端各保留一个副本,关闭浏览器与否和session是否存在没有任何关系. session采取的是服务器端保持状态的方案,它存储在 ...

  8. 重载(overload)、重写:覆盖(override)、重定义:遮蔽(redefine)、多态

    同一域名空间,函数名相同,签名不同 编译期绑定确定绑定函数,也称为静态多态 重写:覆盖(override) 虚函数 子类空间,函数名相同,签名相同 重定义:遮蔽(redefine) 非虚函数,子类成员 ...

  9. IDL与C#混合编程技术

    C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言.C#与Java有很多的相似之处,包括了诸如单一继承.界面.与Java几乎同样的语法,和编译成中间代码再运行的过程.它又借鉴了D ...

  10. Ubuntu工具:vi编辑器

    Vi简介 Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样.它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户可以根据自己的需要对 ...