0

自己编写测试用例

在写完每一份代码的同时,我一般都在代码的后面顺便写一些简单的测试用例。这些测试用例一般都比较简单,以简单地验证代码是否可运行,而且至少保证对这些测试用例,运行结果是正确的。这些测试用例仅用于协助我完成代码的编写和调试,并不保证对各种情况的全面覆盖。我将会在一下节介绍如何完全验证我们的代码是否正确。

以《第1期 单调数组》为例,大家在文章中看到的代码是这样的:

def cmp(a, b):

if a < b: return -1

if a == b: return 0

return 1

def monotonic(array):

size = len(array)

# 记录单调方向,-1为递减,1为递增

global_dir = None

for i in range(size - 1):

cur_dir = cmp(array[i], array[i + 1])

if cur_dir == 0:

# 如果两个相邻的数相等,则忽略

continue

elif global_dir is None:

# 第一次不相等的两个数的单调方向,就是整个数组期望的单调方向

global_dir = cur_dir

elif global_dir != cur_dir:

# 出现与期望的单调方向不同的情况,则该数组不单调

return False

return True

实际上,我会在后面加上测试用例。所以在我自己看到的版本是这样的:

def cmp(a, b):

if a < b: return -1

if a == b: return 0

return 1

def monotonic(array):

size = len(array)

# 记录单调方向,-1为递减,1为递增

global_dir = None

for i in range(size - 1):

cur_dir = cmp(array[i], array[i + 1])

if cur_dir == 0:

# 如果两个相邻的数相等,则忽略

continue

elif global_dir is None:

# 第一次不相等的两个数的单调方向,就是整个数组期望的单调方向

global_dir = cur_dir

elif global_dir != cur_dir:

# 出现与期望的单调方向不同的情况,则该数组不单调

return False

return True

if __name__ == "__main__":

print(monotonic([1, 2, 3])) # True

print(monotonic([6, 5, 4, 4])) # True

print(monotonic([4, 5, 7, 6, 6])) # False

1

OJ(在线判题)

OJ就是Online Judge,即在线判题。一般OJ网站都是一个大型算法题库。计算机专业的人,应该很熟悉“A题”这个词,主要就是指在线做算法题目。之所以叫A题,可能跟ACM计算机相关的比赛有关系。我毕业快十年了,不知道新时代的大学生们还用不用“A题”这个词。

大部分情况下,至少到目前为止,本课题每期文章的题目基本上在各OJ上都可以找到。这些网站提供了代码编辑、提交验证、社区、题解等多种功能。你可以在这些网站上面提交自己的代码,并验证代码的正确性;也可以查看其它人的解题思路,以帮助自己更好地理解题目,更高质量地完成自己的代码。一般情况下,我建议你看官方的题解,这些题解会有比较深入的讲解和比较高质量的实现。

互联网上有大量的OJ网站,以下是一些比较有名的在线算法题库网站:力扣力扣 (LeetCode) 官网 - 全球极客挚爱的技术成长平台​leetcode-cn.comPOJ 北大题库Welcome To PKU JudgeOnline​poj.orgPTA PTA其实就是以前的ZOJ,即浙大题库PTA | 程序设计类实验辅助教学平台​pintia.cn牛客网牛客网 - 互联网求职神器和备考学习平台​www.nowcoder.comhihoCoder 据说此网站出于POJ的团队之手hihoCoder​hihocoder.com

我们读大学的时候,基本上都是在POJ上A题;另外,ZOJ也是我们比较常去的。但近来,力扣貌似比较炙手可热。我本人也比较喜欢在加扣上找题目,以作为本题目的内容;所以我比较推荐大家上加扣A题,或者测试本课题的题目。微信扫码关注我哦

python怎么过验证_Python3基础:如何验证你的代码相关推荐

  1. python ctime源码_Python3基础 getatime getctime getmtime 文件的最近访问 + 属性修改 + 内容修改时间...

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  2. python os获取文件大小_Python3基础 os.path.getsize 获得文件的大小

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  3. python输出去空格_Python3基础 print(,end=) 输出内容的末尾加入空格

    ? ???????Python : 3.7.0 ?????????OS : Ubuntu 18.04.1 LTS ????????IDE : PyCharm 2018.2.4 ??????Conda ...

  4. python os读取文件名_Python3基础 os.path.splitext 处理文件名,得到文件名+扩展名

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  5. python元组元素删除_Python3基础 通过拆分元素 把元组的数据删除

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...

  6. python获取字符串第一个字母_Python3基础 字符串 capitalize 返回一个新的字符串,它的第一个字母大写...

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...

  7. python的整除运算_Python3基础 ** 幂运算 // 整除运算

    ? ????   Python : 3.7.0 ??????   OS : Ubuntu 18.04.1 LTS ??????  IDE : PyCharm 2018.2.4 ????? Conda ...

  8. 如何查看python的工作目录_Python3基础 os listdir curdir查看当前工作目录的所有文件的名字...

    ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdo ...

  9. python末尾加空格_Python3基础 print(,end=) 输出内容的末尾加入空格

    ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdo ...

  10. python中元组拆包_Python3基础:元组拆包

    关注微信公众号"酸痛鱼",获得更多最新最全的文章. 建议您在PC浏览器中阅读本文,以获得更好的阅读体验. 建议您抄写并运行本文中的例子的所有代码,并尝试对代码按照自己的理解进行适当 ...

最新文章

  1. AI手机报告 | 揭秘手机行业未来AI之路
  2. 专访王劲:我和百度不一样
  3. winhex把二进制文件转换为C语言格式的流程
  4. erlang分布式编程模型
  5. 81.游戏项目-物体任意角度飞行和停止
  6. stc单片机入门c语言,谈谈单片机入门
  7. matlab 比较日期,[转载][Matlab]关于时间的函数的不完全总结
  8. WebGIS中一种根据网格索引判断点面关系的方法
  9. Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)
  10. 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)...
  11. 命令行BASH的基本操作
  12. 360安全卫士指控QQ侵犯用户隐私
  13. 淘宝【高佣卷】、【精品券】、【详情图片】
  14. Vue3源码解析04--响应式核心effect
  15. 大数据-Flume(二)
  16. python字符串去除头尾_python 如何去除字符串头尾的多余符号
  17. 设计模式 - 状态模式
  18. {__ob__: Observer }的解决方式
  19. 一个命令行整理软著代码
  20. 美国名校的网上竞争雷人语录

热门文章

  1. 开启新坑,将live2d引入网页
  2. 小米路由器4刷机说明(openwrt-21.02.1)
  3. 科学计算机的用途,科学计算器应用介绍及主要用途
  4. Java中Base64的解析
  5. Excel如何批量快速从复杂文本中提取汉字
  6. 组建团队--共同愿景
  7. 聊聊测试覆盖率的六大门派
  8. 微信支付商户朋友圈广告
  9. 基于OCR训练的halcon汉字识别
  10. 颜色代码查询,在线颜色选择器,RGB颜色对照表