记录我的Python学习之路

我一辈子都在学习编程。但是似乎从来都没有真正学会过。今天决定重新开始学习Python,开个帖子记录一下。

编译环境是Mac OS 10.12.6自带的Python 2.7.10,开发工具是Coderunner,挺好用的,跑起来就像下面这个样子。正版的99块人民币,也不算太贵。不愿意掏钱的话,也容易找到破解版。只不过这货常常联网验证,有点烦。不会屏蔽的话,就乖乖掏钱买正版吧。

记录我的Python学习之路

教程用的是《笨办法学Python(第3版)》,各大商城都可以买到实体书,图书馆里也很容易借到。送光盘,里面应该是对应的视频教程,可惜我的光盘读不出来。不愿意掏钱的话,网上也有完整的Epub格式电子书下载。

如果你也想从零开始学编程

那么你可以常常翻一下这个帖子,或许你不用买书或者找视频教程也有可能学会编程哦(至少学会Python吧),因为我会把我学到的知识用最简单的语言记录下来。主要是为了克服我自己的健忘。但是说不定能够帮助你理解编程的某些“奥妙之处”。当然,更加欢迎大家一起讨论。

如果你是程序员想了解Python

这可不是你入门的好帖子。如果你真的是一位程序员,你可能只需要一两天就能理解Python与你拿手语言的差别,犯不着在我这里浪费时间啦。

如果你不了解编程

你一定要看这篇帖子,说不定看着看着就对编程产生了兴趣。更可怕的是,说不定看着看着,竟然都会了。反正我是觉得每个人都应该学一点编程的,或许你在大学学过一点VB,VB虽然简单,但是已经过时了,Python可能是这个时代最好的入门学习语言,而且,它很实用,你仍然可以用它做不少事情。

2018年12月10日

函数入门

Python的函数非常有趣,没有用{ …code… }这样的尖括号把函数的内容给括起来。实际上,无论是正儿八经的程序,例如C、PHP、Java,还是HTML、CSS、XML这类解释型语言,将某一个属性下面的子类别“圈起来”,是非常常见的做法。例如,CSS如果要描述某段文字的属性(字号16px,粗体),就会写成这样:

p.classname {
    font-size: 16px;
    font-weight: 900;
}

但是Python不用。Python使用“空格”和“冒号”来表示从属关系。

def happy(i):
    if i == True:
        print "I am happy"
    elif i == False:
        print "I am not happy"

看,你没有找到尖括号,但是发现Python出奇地工整。一个条件对应的命令必须缩进,一个函数对应的内容也必须缩进。if是个条件,if就是如果的意思,如果怎么样就怎么样。就怎么样呢?用4个空格的缩进表示就好了。这里执行的是print打印命令,也就是在屏幕上输出字符。想必,Python的发明人曾经必是为格式混乱的代码抓狂过。

函数使用def来命名,必须紧跟着一对括号和一个冒号。括号里面可以设置参数,也可以不设置。我们把函数看成一个处理专门问题的“黑盒子”。就像全自动面包机一样,输入面粉,就输出面包。函数没法输出面包,但是你可以输入你的生日,它就有办法告诉你你已经出生了多少天。所有复杂的功能都是这样一步步构建出来的。好了,今天函数就讲到这里。

2018年12月20日

安装PIP

pip是python的扩展包管理工具。它连接着互联网上的一个软件仓库,你可以通过它下载python的很多组件。但是Mac平台没有自带这个组件,你需要自行安装。

最简单的安装办法是在终端输入下面的命令:

sudo easy_install pip

然后输入你的Mac用户密码。一般2分钟就装好了pip。但是我试了几次,都没有成功,有可能是我的Mac系统太老(10.12.6),也有可能是我的网络环境有问题。

没关系,可以手动安装。下载一个集成pip压缩包的python文件。

curl -O https://bootstrap.pypa.io/get-pip.py

然后运行

sudo python get-pip.py

记得一定要加上sudo并输入Mac用户的密码哦,不然没法安装成功。输入sudo后屏幕上跳黄字,说目录权限不符,不用理会。出现下面的提示表示装好了。

Installing collected packages: pip...

如果还不确定,可以敲pip看看是否正常运行。

上面让大家下载的get-pip.py文件很神奇,如果你用编辑器打开的话,会发现下面贴了一堆乱码,其实是用base85压缩后的的pip zip安装包。对于没听说过的朋友,还是挺新鲜的,其实二进制文件是可以转码成文字存储,只不过你看不懂罢了。

Leave a Reply

Your email address will not be published. Required fields are marked *