跟老齐学Python之Python文档


Posted in Python onOctober 10, 2014

文档很重要。独孤九剑的剑诀、易筋经的心法、写着辟邪剑谱的袈裟,这些都是文档。连那些大牛人都要这些文档,更何况我们呢?所以,文档是很重要的。

文档,说白了就是用word(这个最多了)等(注意这里的等,把不常用的工具都等掉了,包括我编辑文本时用的vim工具)文本编写工具写成的包含文本内容但不限于文字的文件。有点??拢??碌哪康氖俏?搜辖鳎?呛恰W詈没故抢匆桓龈?萌诵欧?亩ㄒ澹?比皇抢醋晕??倏啤?/p>

软件文档或者源代码文档是指与软件系统及其软件工程过程有关联的文本实体。文档的类型包括软件需求文档,设计文档,测试文档,用户手册等。其中的需求文档,设计文档和测试文档一般是在软件开发过程中由开发者写就的,而用户手册等非过程类文档是由专门的非技术类写作人员写就的。

 

早期的软件文档主要指的是用户手册,根据Barker的定义,文档是用来对软件系统界面元素的设计、规划和实现过程的记录,以此来增强系统的可用性。而Forward则认为软件文档是被软件工程师之间用作沟通交流的一种方式,沟通的信息主要是有关所开发的软件系统。Parnas则强调文档的权威性,他认为文档应该提供对软件系统的精确描述。

 

综上,我们可以将软件文档定义为:
1.文档是一种对软件系统的书面描述;

2.文档应当精确地描述软件系统;

3.软件文档是软件工程师之间用作沟通交流的一种方式;

4.文档的类型有很多种,包括软件需求文档,设计文档,测试文档,用户手册等;

5.文档的呈现方式有很多种,可以是传统的书面文字形式或图表形式,也可是动态的网页形式

那么这里说的Python文档指的是什么呢?一个方面就是每个学习者要学习python,python的开发者们(他们都是大牛)给我们这些小白提供了什么东西没有?能够让我们给他们这些大牛沟通,理解python中每个函数、指令等的含义和用法呢?

有。大牛就是大牛,他们准备了,而且还不止一个。

查看python文档

真诚的敬告所有看本教程的诸位,要想获得编程上的升华,看文档是必须的。文档胜过了所有的教程和所有的老师以及所有的大牛。为什么呢?其中原因,都要等待看官看懂了之后,有了体会感悟之后才能明白。

python文档的网址:https://docs.python.org/2/,这是python2.x,从这里也可以找到python3.x的文档。

跟老齐学Python之Python文档

除了看网站上的文档,还有别的方式吗?

有,而且看官并不陌生,此前已经在本教程中多次用到,那就是dir()和help()

>>> dir(list)

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> help(list.__mul__)
Help on wrapper_descriptor:
__mul__(...)

    x.__mul__(n) <==> x*n

 这种查看文档的方式,在交互模式下经常用到,快捷方便,请看官务必牢记并使用。

正如前面已经介绍过的,还有一个文档:doc,help调用的其实就是这个函数里面的内容。

>>> print(list.__mul__.__doc__)     #与help(list.__mul__)显示的内容一致

x.__mul__(n) <==> x*n
>>> print(list.index.__doc__)       #查看index的文档

L.index(value, [start, [stop]]) -> integer -- return first index of value.

Raises ValueError if the value is not present.

 给自己的程序加上文档

在自己编写程序的时候,也非常希望能够有类似上面查看python文档的功能,可以通过某种方式查看自己的程序文档,这样显得自己多牛呀。

有一种方法可以实现,就是在你所编写的程序中用三个双引号或者单引号成对地出现,中间写上有关文档内容。

>>> def qiwsir():

...     """I like python"""

...     print "http://qiwsir.github.io"

... 

>>> qiwsir()
http://qiwsir.github.io
>>> print(qiwsir.__doc__)   #用这种方法可以看自己写的函数中的文档

I like python
>>> help(qiwsir)            #其实就是调用__doc__显示的内容
Help on function qiwsir in module __main__:
qiwsir()

    I like python

 另外,对于一个文件,可以把有关说明放在文件的前面,不影响该文件代码运行。

例如,有这样一个扩展名是.py的python文件,其内容是:

#!/usr/bin/env python

#coding:utf-8
import random
number = random.randint(1,100)
guess = 0
while True:
    num_input = raw_input("please input one integer that is in 1 to 100:")

    guess +=1
    if not num_input.isdigit():

        print "Please input interger."

    elif int(num_input)<0 and int(num_input)>=100:

        print "The number should be in 1 to 100."

    else:

        if number==int(num_input):

            print "OK, you are good.It is only %d, then you successed."%guess

            break

        elif number>int(num_input):

            print "your number is more less."

        elif number<int(num_input):

            print "your number is bigger."

        else:

            print "There is something bad, I will not work"

 这段程序,就是在《用while来循环》中用到的一个猜数字的游戏,它存储在名为205-2.py的文件中,如果要对这段程序写一个文档,就可以这么做。

"""

   This is a game.

   I am Qiwei.

   I like python.

   I am writing python articles in my website.

   My website is http://qiwsir.github.io

   You can learn python free in it.

"""
#!/usr/bin/env python

#coding:utf-8
import random
number = random.randint(1,100)
guess = 0
while True:
    num_input = raw_input("please input one integer that is in 1 to 100:")

    guess +=1
    if not num_input.isdigit():

        print "Please input interger."

    elif int(num_input)<0 and int(num_input)>=100:

        print "The number should be in 1 to 100."

    else:

        if number==int(num_input):

            print "OK, you are good.It is only %d, then you successed."%guess

            break

        elif number>int(num_input):

            print "your number is more less."

        elif number<int(num_input):

            print "your number is bigger."

        else:

            print "There is something bad, I will not work"

 最后,推荐一片相当相当好的文章,与列位分享:

Python 自省指南:如何监视您的 Python 对象

Python 相关文章推荐
Python下的subprocess模块的入门指引
Apr 16 Python
用Python实现随机森林算法的示例
Aug 24 Python
5分钟 Pipenv 上手指南
Dec 20 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
Python生成随机验证码代码实例解析
Jun 09 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
Python selenium环境搭建实现过程解析
Sep 08 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 Python
跟老齐学Python之大话题小函数(2)
Oct 10 #Python
跟老齐学Python之大话题小函数(1)
Oct 10 #Python
Python警察与小偷的实现之一客户端与服务端通信实例
Oct 09 #Python
python中二维阵列的变换实例
Oct 09 #Python
python实现每次处理一个字符的三种方法
Oct 09 #Python
Python正则表达式匹配ip地址实例
Oct 09 #Python
Python数据结构之Array用法实例
Oct 09 #Python
You might like
php 计划任务 检测用户连接状态
2012/03/29 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
python读写json文件的简单实现
2017/04/11 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
如何在python中实现线性回归
2020/08/10 Python
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
办公室主任职责范本
2014/03/07 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
教师求职信范文
2014/05/24 职场文书
团代会邀请函
2015/02/02 职场文书
收银员岗位职责
2015/02/03 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
小学校本教研总结
2015/08/13 职场文书