1. python最佳入门教程(1): python的安装
本教程基于python3.x, 是针对初学者的一系列python入门教程,在知乎上常有人问我计算机该怎么学,如何自学编程,笔者也是通过自学编程而进入IT这一行业的,回顾入行的这几年,从音视频流媒体辗转到人工智能深度学习,机器视觉,我是下了不少苦心的,对于如何学习有自己的一套理论和实践方法,很多人自言学编程不得其门,把学不会归咎于天分,其实芸芸众生,智力无别,你现在所看到的是技术大牛们一个个超凡绝顶(然知此绝顶非彼绝顶),看不到的是曾经的他们,也在每个昼夜里用心苦学。再者学一门技术,需要勤学刻苦,是需要讲究方法和基础的,方法对了就事半功倍,所谓的天才也无不是建立在扎实的基础之上。
在windows中安装python
首先打开python官网https://www.python.org/,点击页面downloads导航按钮,下载windows最新的基于web安装的安装器,右键以管理员身份运行 安装包,会出现如下界面:
将Add Python 3.7 to PATH 进行勾选,勾选此项的目的在于将python解释器加入系统环境变量,则在后续的python开发中可直接在windows 命令行中执行python脚本。所谓的环境变量是系统运行环境的一系列参数,比如这里的系统环境变量是PATH,PATH保存了与路径相关的参数,系统在路径查找中,会对PATH保存的路径进行搜索。
点击install Now按钮执行python的安装
打开windows命令行界面(按windows键输入cmd命令),输入python -V,出现python版本的相关输出,即表示安装成功。
在linux系统中安装python
笔者的系统是CentOS, Linux系统默认有安装python,但是其版本是2.x,在这里笔者以源码安装的形式来安装python 3.X。首先进入python源码包页面 点击下载最新的gzip格式的python源码包,上传到服务器然后进行解压,解压后的目录结构如下图所示:
Linux中的configure与make
configure是Linux中的脚本配置工具,用来对源码的当前安装环境进行检测,若检测无误,会在当前目录生成一个供源码编译的Makefile脚本文件。
make是Linux系统下的编译安装工具,用来解释执行makefile文件中的脚本命令,编译命令。
现在我们开始编译安装python
(1) 在当前目录执行./configure(2) 输入 make && sudo make install
若无指定安装目录,python会被默认安装在/usr/local目录中, 读者可以执行./configure --prefix=“你自定义的安装目录”来配置安装路径。安装完毕以后进入/usr/local/bin目录,输入 “python3.x -V” (这里的python3.x为你所安装的python版本),若出现与python版本的相关输出,即表示安装成功。
为安装的python设置软链接
安装的python可以以绝对路径的方式来执行,每次敲一大段路径来执行python未免麻烦,通常我们会给安装的python设置软链接,这里的软链接类似于windows的快捷方式。
输入以下命令来给python设置软链接,笔者安装的版本是python3.7, pip是python的包管理工具,会在教程的后续章节中进行详细讲解。
ln -s /usr/bin/python3 /usr/local/bin/python3.7 # 表示设置python3 为 /usr/local/bin/python3.7的快捷方式ln -s /usr/bin/pip3 /usr/local/bin/pip3.7 # 表示设置pip3 为 /usr/local/bin/pip3.7的快捷方式
2. python新手代码是什么
如下:
defnot_empty(s)。
returnsandlen(s。strip())>0。
#returnsands。strip()。
#如果直接单写s。strip()那么s如果是None,会报错,因为None没有strip方法。
#如果s是None,那么Noneand任何值都是False,直接返回false。
#如果s非None,那么判定s。trip()是否为空。
介绍
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。
3. python新手代码有哪些
python新手代码有如下:
defnot_empty(s)。
returnsandlen(s。strip())>0。
#returnsands。strip()。
#如果直接单写s。strip()那么s如果是None,会报错,因为None没有strip方法。
#如果s是None,那么Noneand任何值都是False,直接返回false。
#如果s非None,那么判定s。trip()是否为空。
相关简介。
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。
4. 初学Python,有哪些 Pythonic 的源码推荐阅读
如果一定要推荐一些 python 的源码去读,我的建议是标准库里关于网络的代码。从 SocketServer 开始,补上 socket
模块的知识,熟悉 TCP/UDP 编程,然后了解 Mixin 机制的最佳示例
SocketServer.{ForkingMixIn|ThreadingMixIn},借这个机会了解 thread/threading
模块,这时会对并发量提出新的要求,就可以读 select 模块,开始对 select/{epoll|kqueue}
有深刻理解,搞懂以后就可以接触一下异步框架 asyncore 和 asynchat。这时开始出现分岔。如果是做 game 等以 TCP/UDP
协议为基础的应用,可以去读 greenlet 和 gevent,如果是做 web,则走下一条路。
做 web,读
BaseHTTPServer、SimpleHTTPServer 和 CGIHTTPServer,读
cgi/cgitb,自己随意写框架,读cookielib,读 wsgiref,这时候自己写一个简便的 web framework 就 so
easy 了,老板再也不担心你写 web 了,选择 flask/web.py/django/pyramid 都心中有数了。因为走的是 web
的路,所以难免要调用一下别人的 api,搞懂一下 httplib/urllib/urllib/urlparse。
5. 推荐几个适合新手练手的Python项目
《Python实战:四周实现爬虫系统》网络网盘免费下载
链接:
Python实战:四周实现爬虫系统
6. 如何系统地自学 Python
是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓?
幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。
Python 的设计哲学之一就是简单易学,体现在两个方面:
语法简洁明了:相对 Ruby 和 Perl,它的语法特性不多不少,大多数都很简单直接,不玩儿玄学。
切入点很多:Python 可以让你可以做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,总有一个是你感兴趣并且愿意投入时间的。
废话不多说,学会一门语言的捷径只有一个: Getting Started
¶ 起步阶段
任何一种编程语言都包含两个部分:硬知识和软知识,起步阶段的主要任务是掌握硬知识。
硬知识
“硬知识”指的是编程语言的语法、算法和数据结构、编程范式等,例如:变量和类型、循环语句、分支、函数、类。这部分知识也是具有普适性的,看上去是掌握了一种语法,实际是建立了一种思维。例如:让一个 Java 程序员去学习 Python,他可以很快的将 Java 中的学到的面向对象的知识 map 到 Python 中来,因此能够快速掌握 Python 中面向对象的特性。
如果你是刚开始学习编程的新手,一本可靠的语法书是非常重要的。它看上去可能非常枯燥乏味,但对于建立稳固的编程思维是必不可少。
下面列出了一些适合初学者入门的教学材料:
廖雪峰的 Python 教程 Python 中文教程的翘楚,专为刚刚步入程序世界的小白打造。
笨方法学 Python 这本书在讲解 Python 的语法成分时,还附带大量可实践的例子,非常适合快速起步。
The Hitchhiker’s Guide to Python! 这本指南着重于 Python 的最佳实践,不管你是 Python 专家还是新手,都能获得极大的帮助。
Python 的哲学:
学习也是一样,虽然推荐了多种学习资料,但实际学习的时候,最好只选择其中的一个,坚持看完。
必要的时候,可能需要阅读讲解数据结构和算法的书,这些知识对于理解和使用 Python 中的对象模型有着很大的帮助。
软知识
“软知识”则是特定语言环境下的语法技巧、类库的使用、IDE的选择等等。这一部分,即使完全不了解不会使用,也不会妨碍你去编程,只不过写出的程序,看上去显得“傻”了些。
对这些知识的学习,取决于你尝试解决的问题的领域和深度。对初学者而言,起步阶段极易走火,或者在选择 Python 版本时徘徊不决,一会儿看 2.7 一会儿又转到 3.0,或者徜徉在类库的大海中无法自拔,Scrapy,Numpy,Django 什么都要试试,或者参与编辑器圣战、大括号缩进探究、操作系统辩论赛等无意义活动,或者整天跪舔语法糖,老想着怎么一行代码把所有的事情做完,或者去构想圣洁的性能安全通用性健壮性全部满分的解决方案。
很多“大牛”都会告诫初学者,用这个用那个,少走弯路,这样反而把初学者推向了真正的弯路。
还不如告诉初学者,学习本来就是个需要你去走弯路出 Bug,只能脚踏实地,没有奇迹只有狗屎的过程。
选择一个方向先走下去,哪怕脏丑差,走不动了再看看有没有更好的解决途径。
自己走了弯路,你才知道这么做的好处,才能理解为什么人们可以手写状态机去匹配却偏要发明正则表达式,为什么面向过程可以解决却偏要面向对象,为什么我可以操纵每一根指针却偏要自动管理内存,为什么我可以嵌套回调却偏要用 Promise...
更重要的是,你会明白,高层次的解决方法都是对低层次的封装,并不是任何情况下都是最有效最合适的。
技术涌进就像波浪一样,那些陈旧的封存已久的技术,消退了迟早还会涌回的。就像现在移动端应用、手游和 HTML5 的火热,某些方面不正在重演过去 PC 的那些历史么?
因此,不要担心自己走错路误了终身,坚持并保持进步才是正道。
起步阶段的核心任务是掌握硬知识,软知识做适当了解,有了稳固的根,粗壮的枝干,才能长出浓密的叶子,结出甜美的果实。
¶ 发展阶段
完成了基础知识的学习,必定会感到一阵空虚,怀疑这些语法知识是不是真的有用。
没错,你的怀疑是非常正确的。要让 Python 发挥出它的价值,当然不能停留在语法层面。
发展阶段的核心任务,就是“跳出 Python,拥抱世界”。
在你面前会有多个分支:科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,这些都不是仅仅知道 Python 语法就能解决的问题。
拿爬虫举例,如果你对计算机网络,HTTP 协议,HTML,文本编码,JSON 一无所知,你能做好这部分的工作么?而你在起步阶段的基础知识也同样重要,如果你连循环递归怎么写都还要查文档,连 BFS 都不知道怎么实现,这就像工匠做石凳每次起锤都要思考锤子怎么使用一样,非常低效。
在这个阶段,不可避免要接触大量类库,阅读大量书籍的。
类库方面
“Awesome Python 项目”:vinta/awesome-python · GitHub
这里列出了你在尝试解决各种实际问题时,Python 社区已有的工具型类库,如下图所示:
vinta/awesome-python
你可以按照实际需求,寻找你需要的类库。
至于相关类库如何使用,必须掌握的技能便是阅读文档。由于开源社区大多数文档都是英文写成的,所以,英语不好的同学,需要恶补下。
书籍方面
这里我只列出一些我觉得比较有一些帮助的书籍,详细的请看豆瓣的书评:
科学和数据分析:
❖“集体智慧编程”:集体智慧编程 (豆瓣)
❖“数学之美”:数学之美 (豆瓣)
❖“统计学习方法”:统计学习方法 (豆瓣)
❖“Pattern Recognition And Machine Learning”:Pattern Recognition And Machine Learning (豆瓣)
❖“数据科学实战”:数据科学实战 (豆瓣)
❖“数据检索导论”:信息检索导论 (豆瓣)
爬虫:
❖“HTTP 权威指南”:HTTP权威指南 (豆瓣)
Web 网站:
❖“HTML & CSS 设计与构建网站”:HTML & CSS设计与构建网站 (豆瓣)
...
列到这里已经不需要继续了。
聪明的你一定会发现上面的大部分书籍,并不是讲 Python 的书,而更多的是专业知识。
事实上,这里所谓“跳出 Python,拥抱世界”,其实是发现 Python 和专业知识相结合,能够解决很多实际问题。这个阶段能走到什么程度,更多的取决于自己的专业知识。
¶ 深入阶段
这个阶段的你,对 Python 几乎了如指掌,那么你一定知道 Python 是用 C 语言实现的。
可是 Python 对象的“动态特征”是怎么用相对底层,连自动内存管理都没有的C语言实现的呢?这时候就不能停留在表面了,勇敢的拆开 Python 的黑盒子,深入到语言的内部,去看它的历史,读它的源码,才能真正理解它的设计思路。
这里推荐一本书:
“Python 源码剖析”:Python源码剖析 (豆瓣)
这本书把 Python 源码中最核心的部分,给出了详细的阐释,不过阅读此书需要对 C 语言内存模型和指针有着很好的理解。
另外,Python 本身是一门杂糅多种范式的动态语言,也就是说,相对于 C 的过程式、 Haskell 等的函数式、Java 基于类的面向对象而言,它都不够纯粹。换而言之,编程语言的“道学”,在 Python 中只能有限的体悟。学习某种编程范式时,从那些面向这种范式更加纯粹的语言出发,才能有更深刻的理解,也能了解到 Python 语言的根源。
这里推荐一门公开课
“编程范式”:斯坦福大学公开课:编程范式
讲师高屋建瓴,从各种编程范式的代表语言出发,给出了每种编程范式最核心的思想。
值得一提的是,这门课程对C语言有非常深入的讲解,例如C语言的范型和内存管理。这些知识,对阅读 Python 源码也有大有帮助。
Python 的许多最佳实践都隐藏在那些众所周知的框架和类库中,例如 Django、Tornado 等等。在它们的源代码中淘金,也是个不错的选择。
¶ 最后的话
每个人学编程的道路都是不一样的,其实大都殊途同归,没有迷路的人只有不能坚持的人!
希望想学 Python 想学编程的同学,不要犹豫了,看完这篇文章,
Just Getting Started !!!
7. Python该怎么入门
Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
易学:Python极其容易上手,因为Python有极其简单的说明文档 [9] 。
易读、易维护:风格清晰划一、强制缩进
用途广泛
速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。 [7]
免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。
8. 《python编程初学者指南》书本中的涉及的源码哪里可以下载
感谢楼上伙伴的无私分享~
虽然已经是5年前的提问了,不过我还是想在这里补充回答一下,虽然书中指定的网址已经发生了变化,但依然有效,输入原网址后会跳转到新的网址。因为网站中包含很多书籍的信息和配套资源,所以需要我们根据书籍的作者或书名或ISBN手动搜索到这本书,
上面页面对应的网址是:
网页链接
不过资源下载起来很慢……建议直接使用楼上的分享~
9. Python源码是什么意思
源代码是指原始代码,可以是任何语言代码。Python源码就是指编写的最原始程序的代码。运行的软件是要经过编写的,程序员编写程序的过程中需要他们的“语言”。
10. 新手python抓取网页源码处理
先用id定位,定位到了在用getatribute来获取value