Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang Tutorial Python 如何学习 Python,面对那么多的标准库,应该如何?

如何学习 Python,面对那么多的标准库,应该如何?

Jun 06, 2016 pm 04:23 PM

回复内容:

Python标准库虽多,但不是个个用起来都很爽。

只给一条建议的话就是:如果Python标准库中明明已经提供一类操作集合的模块了,而网络上还有一些人推荐第三方库,别想了,用后者吧。比如(Requests: HTTP for Humans)之于urllib,比如(Arrow: better dates and times for Python)之于datetime。这两个库的好用之处就不作介绍了,想借此机会对Python标准库吐槽几句:

在Python2下,最初有个urllib标准库用来处理从网络上抓取一些数据的工作,但是这个库太不好用了,例如一次HTTP协议的请求中想自定义请求头,还得引入另一个模块httplib,太不人性化。于是有人对它做了些扩展,打包后叫urllib2,还给加到标准库里去了,但这个urllib2还是有很多地方不是很好用,比如没有连接池这种东西,做爬虫那帮人还得自己鼓捣,于是又有人对它做了扩展,打包后叫urllib3,谢天谢地,这次没加入到标准库,不过要是Python社区对于这种新纳入标准库的模块命名不是这么蛋疼的话,我倒认为urllib3现有的功能需要加入到标准库中,只有一个urllib多好。幸好,虽然前面说得那个好用的(Requests: HTTP for Humans)也是基于urllib3所做的扩展,但终结了数字尾巴的命名噩梦,要是想想urllib4,就觉得一阵反胃。

还是命名上的吐糟,这次举个Python3的例子,在Python3里,urllib和urllib2都被合并到了一起,就叫urllib,根据原先两个模块所提供的方法工作场景分类,被放入urllib.request、urllib.parse、urllib.error这三个子模块中,不过之前提到的urllib3中像是连接池这类有用的,还是没被支持。看上去比Python2中要美好,让我们看看urllib.request模块的名字空间吧:
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">AbstractBasicAuthHandler</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">AbstractDigestAuthHandler</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">AbstractHTTPHandler</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">BaseHandler</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">addclosehook</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">addinfourl</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">build_opener</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">getproxies</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">getproxies_environment</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">getproxies_macosx_sysconf</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">parse_http_list</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">parse_keqv_list</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">pathname2url</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">posixpath</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">to_bytes</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">unquote</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">unquote_to_bytes</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">unwrap</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">url2pathname</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">urlcleanup</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">urljoin</span>
<span class="n">urllib</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">urlopen</span>
Salin selepas log masuk
用以致学。 =====2015-1-21更新=======
换了电脑来好好回答一下。刚刚开始学完Python的基础语法之后也有一些迷茫,不知道该继续学些什么,于是在网上看到了Python Challenge这个闯关游戏,据说是2007年为了推广Python弄的这样一个东西。
当时第一次接触玩了两关就玩不下去了(那时候编码能力和学习能力真的是弱的可以)
这段时间又重新找出来做做,发现真的感觉完全不一样了,它每一关都会用到一两个甚至更多个Python的标准库,他会给你一些提示,然后你可以根据提示去Python的官网看看具体库的用法,然后再开始做。这样的话就可以达到一个了解和学习Python标准库的目的。至少下次遇到问题时可以知道用Python的什么库来解决。
在我的博客听雨轩 | You are my convition, but there must be something wrong in my life 里我写了前19关的解题报告,大家可以参考一下。
在这里简单罗列一下每一关用到的库和Python的知识:
第00关:数字计算。
第01关:string
第02关:re 或者用filter函数也可以
第03关:re
第04关:urllib
第05关:pickle
第06关:zipfile
第07关:PIL
第08关:bz2
第09关:turtle 或PIL
第10关:找规律
第11关:PIL
第12关:文件处理
第13关:xmlrpclib
第14关:PIL
第15关:datetime
第16关:PIL
第17关:urllib urllib2 cookielib xmlrpclib
第18关:difflib binascii
第19关:wave

暂时只做到这里。。。后面的有机会继续更新~

=====原答案=====
在网上有一个python challenge的闯关游戏,一关基本就需要用一到两个标准库,然后你可以在实践中知道这些库的用法。我最近在做这个。。安利一下我的博客,里面有自己写的题解。
听雨轩 | You are my convition, but there must be something wrong in my life 用到哪个学哪个,多翻官方文档。 这时候祭出我的小项目: pypi.python.org/pypi/rd ,合作者 @赖渊
可通过 树形结构的html、命令行、文件形式来查看python module或 module内object的递归结构和文档(pydoc)。目前仅支持 *nix的python 2.x,windows未测试,若有Windows用户用过可以反映一下情况,抱歉不会windows。
目前进一步在规划迭代中,欢迎试用拍砖以及提功能建议。report issues: Issues · Lhfcws/rdir · GitHub

Example: rdir/test.py at master · Lhfcws/rdir · GitHub

下载方式: sudo pip install rdir

================ 广告时间结束,开始答题。 =======

1. 如何学习python?
我假设你有其他相关语言基础。找一本如《python基础教程》这样的入门书看一遍,下载个ipython(windows实在不行那个IDLE勉强也可以吧)解释器上跟着教程操作熟悉一下,然后写个小项目比如多人聊天室。你要能把chatroom努力熬出来了,你已经会用python做简单的并行、网络通信和各种基本操作了。建议使用linux / MacOSX系统,因为命令行下你可以写一点小工具进一步去熟悉,其中需要什么库你就去搜索看看有没有。
学会使用 pip 做第三方模块下载管理。

2. 学习标准库
不用专门学习,你需要什么功能就去搜搜人家怎么用,python很多库的文档都不怎么friendly。也许可能有些实现你不知道有库,自己写的很麻烦,但其实无所谓。你能搞出来没问题那就先用着,等到你知道有更好的实现或者发现问题解决很麻烦感觉要造轮子的时候,请搜索。


* 以上回答不适合较有经验的程序员。
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Mar 10, 2025 pm 06:54 PM

Artikel ini menerangkan cara menggunakan sup yang indah, perpustakaan python, untuk menghuraikan html. Ia memperincikan kaedah biasa seperti mencari (), find_all (), pilih (), dan get_text () untuk pengekstrakan data, pengendalian struktur dan kesilapan HTML yang pelbagai, dan alternatif (sel

Modul Matematik dalam Python: Statistik Modul Matematik dalam Python: Statistik Mar 09, 2025 am 11:40 AM

Modul Statistik Python menyediakan keupayaan analisis statistik data yang kuat untuk membantu kami dengan cepat memahami ciri -ciri keseluruhan data, seperti biostatistik dan analisis perniagaan. Daripada melihat titik data satu demi satu, cuma melihat statistik seperti min atau varians untuk menemui trend dan ciri dalam data asal yang mungkin diabaikan, dan membandingkan dataset besar dengan lebih mudah dan berkesan. Tutorial ini akan menjelaskan cara mengira min dan mengukur tahap penyebaran dataset. Kecuali dinyatakan sebaliknya, semua fungsi dalam modul ini menyokong pengiraan fungsi min () dan bukan hanya menjumlahkan purata. Nombor titik terapung juga boleh digunakan. Import secara rawak Statistik import dari fracti

Serialization dan deserialisasi objek python: Bahagian 1 Serialization dan deserialisasi objek python: Bahagian 1 Mar 08, 2025 am 09:39 AM

Serialization dan deserialization objek Python adalah aspek utama dari mana-mana program bukan remeh. Jika anda menyimpan sesuatu ke fail python, anda melakukan siri objek dan deserialization jika anda membaca fail konfigurasi, atau jika anda menjawab permintaan HTTP. Dalam erti kata, siri dan deserialization adalah perkara yang paling membosankan di dunia. Siapa yang peduli dengan semua format dan protokol ini? Anda mahu berterusan atau mengalirkan beberapa objek python dan mengambilnya sepenuhnya pada masa yang akan datang. Ini adalah cara yang baik untuk melihat dunia pada tahap konseptual. Walau bagaimanapun, pada tahap praktikal, skim siri, format atau protokol yang anda pilih boleh menentukan kelajuan, keselamatan, kebebasan status penyelenggaraan, dan aspek lain dari program

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Mar 10, 2025 pm 06:52 PM

Artikel ini membandingkan tensorflow dan pytorch untuk pembelajaran mendalam. Ia memperincikan langkah -langkah yang terlibat: penyediaan data, bangunan model, latihan, penilaian, dan penempatan. Perbezaan utama antara rangka kerja, terutamanya mengenai grap pengiraan

Apakah beberapa perpustakaan Python yang popular dan kegunaan mereka? Apakah beberapa perpustakaan Python yang popular dan kegunaan mereka? Mar 21, 2025 pm 06:46 PM

Artikel ini membincangkan perpustakaan Python yang popular seperti Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask, dan Permintaan, memperincikan kegunaan mereka dalam pengkomputeran saintifik, analisis data, visualisasi, pembelajaran mesin, pembangunan web, dan h

Bagaimana untuk membuat antara muka baris arahan (CLI) dengan python? Bagaimana untuk membuat antara muka baris arahan (CLI) dengan python? Mar 10, 2025 pm 06:48 PM

Artikel ini membimbing pemaju Python mengenai bangunan baris baris komando (CLI). Butirannya menggunakan perpustakaan seperti Typer, Klik, dan ArgParse, menekankan pengendalian input/output, dan mempromosikan corak reka bentuk mesra pengguna untuk kebolehgunaan CLI yang lebih baik.

Mengikis halaman web dalam python dengan sup yang indah: carian dan pengubahsuaian dom Mengikis halaman web dalam python dengan sup yang indah: carian dan pengubahsuaian dom Mar 08, 2025 am 10:36 AM

Tutorial ini dibina pada pengenalan sebelumnya kepada sup yang indah, memberi tumpuan kepada manipulasi DOM di luar navigasi pokok mudah. Kami akan meneroka kaedah dan teknik carian yang cekap untuk mengubahsuai struktur HTML. Satu kaedah carian dom biasa ialah Ex

Terangkan tujuan persekitaran maya di Python. Terangkan tujuan persekitaran maya di Python. Mar 19, 2025 pm 02:27 PM

Artikel ini membincangkan peranan persekitaran maya di Python, memberi tumpuan kepada menguruskan kebergantungan projek dan mengelakkan konflik. Ia memperincikan penciptaan, pengaktifan, dan faedah mereka dalam meningkatkan pengurusan projek dan mengurangkan isu pergantungan.

See all articles