Python 自学不求人

自学 Python 不求人,本文介绍 Python 自学时如何获取免费权威的帮助信息。

概述

  • 如何使用 Python 自带的 help() 方法
  • 如何利用 Python 文档
  • 获取中文文档

获取帮助 help

每次进入 python 解释器的交互模式时,都会先打印横幅消息,在版本信息下面就是推荐
的命令:

Type "help", "copyright", "credits" or "license" for more information.
>>>

让我们试试:

>>> help
Type help() for interactive help, or help(object) for help about object.
>>>

提示使用 help() 进入交互式的 help,或者使用传一个对象给 help(object)

交互式 help

不带参数调用 help() 进入到 help 的交互模式:

>>> help()

Welcome to Python 3.8's help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at https://docs.python.org/3.8/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.  To quit this help utility and
return to the interpreter, just type "quit".

To get a list of available modules, keywords, symbols, or topics, type
"modules", "keywords", "symbols", or "topics".  Each module also comes
with a one-line summary of what it does; to list the modules whose name
or summary contain a given string such as "spam", type "modules spam".

help>   <--- 开始变成 help 的提示符

这时候可以输入想要查询的任何内容,有几种特定的查询词:

  • modules,显示所有的 模块 列表
  • keywords,显示所有关键字
  • symbols, 显示所有的符号
  • topics,显示一些特定的话题,注意这些话题都是全部大写的,想要继续查询也需要输入全部大写的话题名。

help(thing)

进入交互式模式步骤较多,所以大多少情况下我们直接给 help() 传递一个参数,这个参数就是要查的 东西,比如用来查询 help 自己:

>>> help(help)
Help on _Helper in module _sitebuiltins object:

class _Helper(builtins.object)
 |  Define the builtin 'help'.
 |
 |  This is a wrapper around pydoc.help that provides a helpful message
 |  when 'help' is typed at the Python interactive prompt.
 |
 |  Calling help() at the Python prompt starts an interactive help session.
 |  Calling help(thing) prints help for the python object 'thing'.
 |
 |  Methods defined here:
 |
 |  __call__(self, *args, **kwds)
 |      Call self as a function.
 |
 |  __repr__(self)
 |      Return repr(self).
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __dict__
 |      dictionary for instance variables (if defined)
 |
 |  __weakref__
 |      list of weak references to the object (if defined)

这个 东西 可以是一个对象,Python 里面一切皆对象,所以它就是任何我们能用的东西(变量、函数、类、模块等),但是这里有个前提是,这个对象必须得在当前的命名空间内能访问,这才能直接用它的名字,比如 sys 模块,要导入后才能查。

会在以后讲解变量的时候详细讨论名字。

如果没有导入就会报错:

>>> help(sys)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sys' is not defined

所以这种传对象的方式也不能去查关键字和符号,比如:

>>> help(def)
  File "<stdin>", line 1
    help(def)
         ^
SyntaxError: invalid syntax

>>> help(+)
  File "<stdin>", line 1
    help(+)
          ^
SyntaxError: invalid syntax

这时候就需要把查询关键字用引号括起来作为字符串传给 help()

>>> help('sys')
>>> help('def')
>>> help('+')

help 交互模式下没有此限制

所以,help 的用法很简单,哪里不会查哪里。

help 的帮助信息里面还有关键的一句话:

This is a wrapper around pydoc.help that provides a helpful message

when 'help' is typed at the Python interactive prompt.

我们简单看下 pydoc

pydoc 模块

pydoc 是一个模块,用来从 python 模块自动生成文档(documentation)。

>>> import pydoc
>>> pydoc.help.help('sys')   # 等价 help('sys')

pydoc 提供了命令行操作,不过无法直接使用。用我们学过的 python -m 的启动方式即可:

# 在命令行中执行,不是在 python 交互环境
python -m pydoc
pydoc - the Python documentation tool

pydoc <name> ...
    Show text documentation on something.  <name> may be the name of a
    Python keyword, topic, function, module, or package, or a dotted
    reference to a class or function within a module or module in a
    package.  If <name> contains a '\', it is used as the path to a
    Python source file to document. If name is 'keywords', 'topics',
    or 'modules', a listing of these things is displayed.

pydoc -k <keyword>
    Search for a keyword in the synopsis lines of all available modules.

pydoc -n <hostname>
    Start an HTTP server with the given hostname (default: localhost).

pydoc -p <port>
    Start an HTTP server on the given port on the local machine.  Port
    number 0 can be used to get an arbitrary unused port.

pydoc -b
    Start an HTTP server on an arbitrary unused port and open a Web browser
    to interactively browse documentation.  This option can be used in
    combination with -n and/or -p.

pydoc -w <name> ...
    Write out the HTML documentation for a module to a file in the current
    directory.  If <name> contains a '\', it is treated as a filename; if
    it names a directory, documentation is written for all the contents.

这里参数还是比较简单的,普通的使用就和 help 差不多,唯一有点亮点的是可以自动起一个 HTTP 服务器,并自动打开浏览器,显示文档的 html 页面:

python -m pydoc -b

这里需要说明的是,因为这个帮助系统是通过 module 自动生成的,所以它不仅仅是能显示 Python 标准库的帮助信息。正常安装的第三方库的帮助信息也能一起查询到。

比如说,查一下 requests:

>>> help('requests')
Help on package requests:

NAME
    requests

DESCRIPTION
    Requests HTTP Library
    ~~~~~~~~~~~~~~~~~~~~~

    Requests is an HTTP library, written in Python, for human beings. Basic GET
    usage:

       >>> import requests
       >>> r = requests.get('https://www.python.org')
       >>> r.status_code
       200
       >>> 'Python is a programming language' in r.content
       True

Python 文档

打开 安装 Python 时自带的 .chm 帮助文档,可以看到内容非常多。

文档的内容非常详尽,所以也不可能完全看完,我把它们大概分为 4 种:

  • 可以通读的:

    • 入门教程:初学者首选
    • 语言参考:进阶者必看
  • 可以选读的:
    • 标准库:里面内容是按照话题展开讨论的
    • HowTo:类似于 cookbook,里面是特定的任务
  • 日常检索(平常最多的时候是通过上面的索引栏查找关键字,有时候不清楚拿什么搜的时候可以看索引表)
    • 模块索引:
    • 术语表
    • FAQ
  • 特定目的
    • 安装配置
    • 安装包:主要就是介绍 pypi 和 venv
    • 分发包: 教你如何开发和发布自己的包
    • C 语言相关扩展

中文文档

在广大网友的帮助下,Python 文档的中文翻译也进行的不错,虽然还没有到 100% 覆盖,但是大部分还是可以的。

而且其中的内容我挑着看了些,翻译的还是很准确的。

在 Python 在线文档 里可以选择语言为 简体中文,或者直接打开 中文文档链接:

看到左上角还有下载按钮

下载页面是英文的,别怕,下载下来的文档都是中文的。有 3 种格式:

  • pdf 的,细分了两种,我没看出大区别,推荐 A4

pdf 文件是按照大的一级目录划分的,所以可以单个打开,比较适合当书看。

目录书签,还带语法高亮,还要啥自行车。

  • html 的,每个文件都是单一的 html,文件数目比较多,不过通过浏览器打开效果和在线没区别

  • epub 的,我想转一下到 Kindle 看效果的,结果试了几个工具都报错,有知道的小伙伴可以在评论区留言。

文章内容虽基础,整理发布不轻松

如果看过有帮助,不妨 点赞 + 关注,谢谢!

原文地址:https://www.cnblogs.com/davyyy/p/12272503.html

时间: 2024-10-30 13:58:47

Python 自学不求人的相关文章

python自学笔记

python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 循环 6.使用dict和set 6.1 dict 6.2 set 7.函数的使用 7.1函数返回多个值,同时接受多个值 7.2函数参数的默认值 7.3可变参数的函数 7.4可变个数带参数名的入参 7.5参数类型组合 8.关于函数递归 9.python的高级特性 9.1切片 9.2遍历 9.3列表生

Python - 自学django,上线一套资产管理系统

一.概述 终于把公司的资产管理网站写完,并通过测试,然后上线.期间包括看视频学习.自己写前后端代码,用时两个多月.现将一些体会记录下来,希望能帮到想学django做web开发的人.大牛可以不用看了,小白的第一个项目,写的很low,不入眼. 二.过程 1. python自学断断续续都有好长的时间,总是零零散散,没有去完完全全开发一个项目出来,跟别人说我会python,都没有啥说服力.后来下定决心,用python去做一个网站出来.正好公司平常维护资产的时候使用的是excel表,十分不科学.领导有意思

[Python自学] 项目发布流程

一.上线准备工作 1.准备Python虚拟环境:[Linux系统] CentOS7创建Python虚拟环境 2.安装Python依赖:[Python自学] 批量安装依赖 3.部署MariaDB:[数据库] MariaDB安装及使用 4.部署Redis集群:[NoSQL数据库] Redis集群部署 5.使用uWSGI运行项目:[Python自学] uWSGI启动django项目 5.部署Nginx:[Linux系统] (8)Nginx 6.使用LVS(可选):[Linux系统] (6)LVS负载均

Python 自学感想

将近三十岁的我回想了一下以前的种种......感到一种莫名伤感与无奈.伤感是因为:将近三十的我还是一事无成,身无分文,浪费太多的时间在一些无用的东西上面(比如:游戏).无奈是因为:只能眼睁睁的看着时间随风飘逝,而没有任何办法留住它,任它腐蚀着我的身心. 向前面的路望了望,只看到了无尽的深渊与绝望.我看不到以后的路,找寻不到一点希望.还是玩游戏吧,至少玩的时候心里不会想到这些烦心事,但是玩过之后,又是一阵无尽的空虚与伤感.于是删了游戏,(删了装,装了又删,自已都不记得重复了多少次了)强硬着逼自己再

Python 自学笔记(一)环境搭建

一,关于Python的介绍 关于Python的介绍,我不想多说了,网上随便一搜,很多介绍,这里我主要写下我的自学Python的 过程,也是为了促进我能继续学习下去. 二,环境搭建 1,这里我只讲解Windows,因为我比较喜欢Linux,但是windows 还是必须要用的,所以对linux不是经常用(我不是职业程序猿,只是个业余爱好者),不过这都是很简单的,不论哪个平台,都无所谓了 2,下载Python ,https://www.python.org/downloads/windows/ 选择你

python自学笔记(一)

我没学过python,通过网上和一些图书资料,自学并且记下笔记. 很多细节留作以后自己做项目时再研究,这样能更高效一些. python基础自学笔记 一.基本输入和输出 pthon3.0用input提示用户输入,用print提示用户输出,格式为print("...") 如果格式化输出,那么格式为print("%d" %(变量名)), %d可以替换为%s等其他格式符, 以后用到什么格式自己查,这样学起来高效. 简单的例子: #-*-coding:utf-8-*- nam

Python自学之乐-多继承顺序问题

最近自学Python到面向对象这里,感觉有必要把多继承这里好好理解一下,下面是我自己的一点小总结,如果有朋友觉得有什么不足的,还望不吝赐教! 1.#Author:clark class Animal(object):#动物类 #kind = "" def __init__(self,name,age,food): self.Name = name self.Age = age self.food = food def eat(self): print("%s is eat %

Python自学编程开发路线图(文中有免费资源)

Python核心编程 免费视频资源<Python入门教程>:http://yun.itheima.com/course/145.html Python 基础学习大纲 所处阶段 主讲内容 技术要点 学习目标 第一阶段:python核心编程 计算机组成原理和开发环境 认识操作系统:认识python:开发环境pycharm 可掌握的核心能力:1.掌握基本的Linux系统操作:2.掌握Python基础编程语法:3.建立起编程思维和面向对象思想.可解决的现实问题:字符串排序,切割,逆置:猜数字.飞机大战

Python自学之旅 #新手#MacBook #《“笨办法”学Python》#第六章:常用的简易Python命令、符号、代码、格式化字符串

第六章:常用的简易Python命令.符号.代码.字符串 <“笨办法”学Python>这本书中,确实用了较多篇幅来介绍Python的一些常用简单的命令.符号.代码和字符串等,对于像我这样的自学新手,真的是非常棒,因为它们可以帮我建立接着学下去的信心和兴趣.但我在这个系列的博客当中,不打算写的这么精细,首先因为这不符合我写博的初衷和习惯,其次因为我不打算靠这写书来挣钱,最后因为我确实没有那个实力去挖掘简单东西中更深奥复杂的应用.所以,我写的这个博客,只适合像我这样的自学新手,如果想要成为大神,还是