软件工程知识

3.1  程序设计过程中,常用伪代码来"思考"一个程序,在将伪代码程序转换成python程序。

3.2  所有python程序都可以给予6类控制结构来创建(顺序,if, if/else, if/elif/else, while, for)。不同控制结构可采用2种方式连接,即控制结构堆叠和嵌套。

3.3  在程序中,可用放入一个语句的任何地方都可放入一个suite

3.4  每次求精都获得了算法的一个完整规范说明,只是细化程度有所区别。

3.5  许多程序都可从逻辑上分解成3个阶段:初始化阶段(对变量进行初始化);处理阶段(输入数据值,并相应的调节程序变量)和结束阶段(计算并打印最终结果)。

3.6  只要伪代码算法提供了足够细节,利用这些细节可将伪代码轻松转换成python程序,便应停止"自上而下求精"。之后,即可轻松根据伪代码写一个python程序。

3.7  经验表明,用计算机解决问题最有效的办法是为解决方案开发一种算法。一旦开发出正确的算法,通常能根据它方便的生成一个能实际工作的python程序。

3.8  许多有经验的程序员在写程序之前,从来不用伪代码这样的程序开发工具。他们觉得自己的最终目标是用计算机解决问题,写伪代码会推迟进度。尽管对于简单和熟悉的程序可以这样做,但在从事大型的,复杂的项目时,这样做有可能导致严重错误,反而会推迟进度。

4.1  避免重复别人的劳动。尽量使用标准库模块函数,不要写新函数。这可加快程序开发进度,并增强可靠性,因为使用的是经过良好设计和测试的代码。

4.2  每个函数都应该只限执行单一的,良好定义的任务,函数名应清楚的描述那个任务,这样有利于提升软件的重用行。

4.3  如实在想不出能准确表达函数作用的名称,就表明函数可能执行了太多分散的任务。通常,最好将这种函数分解成多个更小的函数。

4.4  在包含许多函数的程序中,主要部分应该是对函数的一系列调用,再由那些函数实际执行程序的大量工作。

4.5  函数尽量不要超过编辑器窗口的宽度。不管函数有多长,都只应很好的执行一项任务。小寒是有利于提升软件的重用性。

4.6  程序应该写为若干小函数的集合。这是程序更易编写,调试,维护和修改。

4.7  如函数需要大量参数,表明它执行的任务可能过多。请考虑将函数分解成更小的函数,令其执行单独的任务。函数的def语句尽可能不超过一行。

4.8  采用递归方式能解决的任何问题也可采用重复方式(非递归方式)解决。如果递归方式能够能自然的反映问题,并使程序易于理解和调试,通常应该首选递归方式。通常,只需几行代码即可实现一个递归方式。重复方式则相反,它需要大量代码来实现。选择递归的另一个原因是,重复方案也许不是很直观。

4.9  采用清晰的,层次清楚的方式对程序进行“函数化”,有助于保证良好的软件工程,但性能上要付出一定代价。

5.1  在字典里添加键-值对时,键名拼写错误会导致难以发现的逻辑错误。

5.2  deepCopyList = originalList[:]进行的是深拷贝,这意味着deepCopyList是originalList的一个深拷贝。

6.1  服务器端脚本对客户是不可见的,客户只能看见服务器发送的内容。

python软件工程知识的更多相关文章

  1. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. python基础知识(二)

    以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍

  4. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  5. 适用于 PHP 开发人员的 Python 基础知识

    Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...

  6. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  7. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  8. Python数据分析-知识宝藏

    0.SQL数据库 1. python基础知识 2. 重点工具掌握:数据解析核心技巧 - Numpy| Pandas| Matplotlib 3. 数据特征分析:分布| 对比| 统计| 帕累托| 正态| ...

  9. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

随机推荐

  1. Linux系统——C/C++开发工具及环境搭建

    首先,我们是要在Linux下进行项目开发,让我们把windows“拆了”,装个Linux也是不可能的,会带来很多的不便,所以我们首先需要在虚拟机上安装Linux操作系统,我本次用的是CentOS,它也 ...

  2. [转]busybox中telnet 功能添加

    使用busybox制作的一个基本根文件系统如何添加telnetd服务呢? 下面把本人的添加过程列出来供大家分享,如有不同意见请不吝赐教! 1. 添加telnet的支持(busybox中配置) Netw ...

  3. linux fg bg ctrl + z jobs & 等命令

    fg.bg.jobs.&.ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的一.& 最经常被用到这个用在一个命令的最后,可以把这个命令放到 ...

  4. MFC CString GetBuffer/ReleaseBuffer 的使用条件

      今天为了通过串口往单片机里写一个16进制字符去控制单片机的adc的起停,结果糊涂到把'\x01'误写成'\0x01',怎么也得不到意想的结果,程序员有时候会犯低级错误,有时候怎么也跳不出去,这时候 ...

  5. Juce-强大的开源类库

    介绍 Juce是一个完全围绕C++语言的类库,用来开发跨平台的应用程序. 完整的用doxgen生成的html形式的API手册可以在这里下到.或者可以从下载页面下载预编译的windows帮助文件. 想获 ...

  6. 并发策略-CAS算法

    对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略.它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼.如果多个线程同时访问临界区资源,就宁可牺牲 ...

  7. mysql打开文件数太多的解决办法

    http://www.orczhou.com/index.php/2010/10/mysql-open-file-limit/ http://www.cnblogs.com/end/archive/2 ...

  8. Mysql数据库乱码总结

    今天又独到了Mysql乱码问题,过去总是匆匆的解决了就算了.这次我实在受不了了.每次都是迷迷糊糊的改好的. 这次决定好好探索一把,看了很多资料及博客之后才理解了点.先记录下来.如有不对的请指正. 1. ...

  9. 本地虚拟机在ubuntu系统搭建nexus服务器

    本地虚拟机在ubuntu系统上搭建nexus服务器 本地虚拟机在ubuntu系统上搭建nexus服务器所需软件: 虚拟机:VM或者Oracle VM VirtualBox 系统:ubuntu-14.0 ...

  10. Ubuntu 搭建 ***

    在Ubuntu下安装ss很简单.只需要依次执行下面3条命令: apt-get update apt-get install python-pip pip install shadowsocks pip ...