1.python的第一步
学习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的第一步的更多相关文章
- Python 编程第一步
Python 编程第一步 在前面的教程中我们已经学习了一些 Python3 的基本语法知识,下面我们尝试来写一个斐波纳契数列. # Fibonacci series: 斐波纳契数列 # 两个元素的总 ...
- Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化
拿来主义: python -m cProfile -o profile.pstats to_profile.py gprof2dot -f pstats profile.pstats |dot -Tp ...
- Python爬虫第一步
这只是记录一下自己学习爬虫的过程,可能少了些章法.我使用过的是Python3.x版本,IDE为Pycharm. 这里贴出代码集合,这一份代码也是以防自己以后忘记了什么,方便查阅. import req ...
- python+selenium第一步 - 环境搭建
刚开始学习一门技术,肯定是要从环境搭建开始的,我也不例外. 首先选择需要安装的版本,我使用的是mac自带的2.7版本. selenium2,和火狐浏览器 为求稳定不会出现未知问题,我选择了seleni ...
- python 装饰器 第一步:基本函数
# 第一步:基本函数 def eat(): print('吃饭') # 调用 eat()
- Theano2.1.2-基础知识之第一步:代数
来自:http://deeplearning.net/software/theano/tutorial/adding.html Baby Steps - Algebra 一.两个标量相加 在学习the ...
- 第一步 django的下载安装
django是python众多web框架中比较有名的一个,以大包大揽功能俱全而著名.但作为重量级的web框架,难免性能上回有所损失,不过由于其封装了各种API,在开发的时候会便利许多.所以也是深受欢迎 ...
- python django第一天
django第一天,上一次是使用了virtualenv(沙盒),这一次就直接用virtualenv直接建一个django的环境,用来自己练着试试django: source django/Script ...
- Django第一步
对于一个web框架,掌握了三部分的内容,就可以说是迈出了第一步. 1. 准备开发环境 2. 创建一个工程,并运行 3. 开发hello world应用 1. 准备环境 首先应该是安装python和dj ...
随机推荐
- Spring的java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!异常处理方法
使用Spring提供的模板类HibernateDaoSupport,如果单纯的使用'命名参数'的形式编写HQL语句如: public class UserDaoImpl extends Hiberna ...
- 剑指Offer:面试题7——用两个栈实现队列(java实现)
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 首先定义两个栈 Stack<Integer> stack1 = new Stack<I ...
- Office2010安装错误
Office2010安装“错误1406.安装程序无法将值Assembly写入注册表项” 我们在安装Office2010的时候,会遇到如上所示的错误. 今天我自己在安装的过程中就遇到类似的情况.由于我原 ...
- jmeter随笔(23)--在csv中维护变量参数
点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...
- 【LeetCode】18. 4Sum
题目: 思路:这题和15题很像,外层再加一个循环稍作修改即可 public class Solution { public List<List<Integer>> fourSu ...
- STL之vetor 排序
1 STL提供的Sort 算法 C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点.STL 排序算法同样需要保持高效.因此,对于不同的需求,STL提供的不同的函数, ...
- 二模11day2解题报告
T1.修改文章(amend) 给出n个单词和一个长度为m的字符串,求改动多少个字符才能使字符串全由单词组成. 要说这道题还真的坑很坑超坑非常坑无敌坑--不过还是先想到了动规.毕竟要修改的前提是要组成的 ...
- ubuntu13.10无有线网卡驱动
装上双系统win8+ubuntu13.10后,设置网络后,发现连不上网,重启电脑N次(N > 3),重新设置网络也不行 网上搜索设置网络的方式,都是那样设置的啊(本来以前装过N(N>5)次 ...
- javascript代码复用(四)-混入、借用方法和绑定
这篇继续说js的现代复用模式:混入.借用方法和绑定. 混入 可以针对前面提到的通过属性复制实现代码复用的想法进行一个扩展,就是混入(mix-in).混入并不是复制一个完整的对象,而是从多个对象中复制出 ...
- js基础笔记
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF- ...