跟老齐学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获取当前日期和时间的方法
Apr 30 Python
详解Python中的日志模块logging
Jun 19 Python
将Python的Django框架与认证系统整合的方法
Jul 24 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
Python3中exp()函数用法分析
Feb 19 Python
python儿童学游戏编程知识点总结
Jun 03 Python
python数据化运营的重要意义
Nov 25 Python
Python assert关键字原理及实例解析
Dec 13 Python
TensorFlow实现保存训练模型为pd文件并恢复
Feb 06 Python
python生成任意频率正弦波方式
Feb 25 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 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
第一个无线电台是由谁发明的
2021/03/01 无线电
无限级别菜单的实现
2006/10/09 PHP
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
React中的render何时执行过程
2018/04/13 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python入门_条件控制(详解)
2017/05/16 Python
Python统计单词出现的次数
2018/04/04 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
英国电气世界:Electrical World
2019/09/08 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
学校经典推荐信
2013/10/30 职场文书
大四自我鉴定
2014/02/08 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers