python怎么过验证_Python3基础:如何验证你的代码
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 JudgeOnlinepoj.orgPTA PTA其实就是以前的ZOJ,即浙大题库PTA | 程序设计类实验辅助教学平台pintia.cn牛客网牛客网 - 互联网求职神器和备考学习平台www.nowcoder.comhihoCoder 据说此网站出于POJ的团队之手hihoCoderhihocoder.com
我们读大学的时候,基本上都是在POJ上A题;另外,ZOJ也是我们比较常去的。但近来,力扣貌似比较炙手可热。我本人也比较喜欢在加扣上找题目,以作为本题目的内容;所以我比较推荐大家上加扣A题,或者测试本课题的题目。微信扫码关注我哦
python怎么过验证_Python3基础:如何验证你的代码相关推荐
- 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 ...
- 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 ...
- python输出去空格_Python3基础 print(,end=) 输出内容的末尾加入空格
? ???????Python : 3.7.0 ?????????OS : Ubuntu 18.04.1 LTS ????????IDE : PyCharm 2018.2.4 ??????Conda ...
- 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 ...
- python元组元素删除_Python3基础 通过拆分元素 把元组的数据删除
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...
- python获取字符串第一个字母_Python3基础 字符串 capitalize 返回一个新的字符串,它的第一个字母大写...
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体. ------------------------------------- ...
- python的整除运算_Python3基础 ** 幂运算 // 整除运算
? ???? Python : 3.7.0 ?????? OS : Ubuntu 18.04.1 LTS ?????? IDE : PyCharm 2018.2.4 ????? Conda ...
- 如何查看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 ...
- 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 ...
- python中元组拆包_Python3基础:元组拆包
关注微信公众号"酸痛鱼",获得更多最新最全的文章. 建议您在PC浏览器中阅读本文,以获得更好的阅读体验. 建议您抄写并运行本文中的例子的所有代码,并尝试对代码按照自己的理解进行适当 ...
最新文章
- AI手机报告 | 揭秘手机行业未来AI之路
- 专访王劲:我和百度不一样
- winhex把二进制文件转换为C语言格式的流程
- erlang分布式编程模型
- 81.游戏项目-物体任意角度飞行和停止
- stc单片机入门c语言,谈谈单片机入门
- matlab 比较日期,[转载][Matlab]关于时间的函数的不完全总结
- WebGIS中一种根据网格索引判断点面关系的方法
- Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级)
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)...
- 命令行BASH的基本操作
- 360安全卫士指控QQ侵犯用户隐私
- 淘宝【高佣卷】、【精品券】、【详情图片】
- Vue3源码解析04--响应式核心effect
- 大数据-Flume(二)
- python字符串去除头尾_python 如何去除字符串头尾的多余符号
- 设计模式 - 状态模式
- {__ob__: Observer }的解决方式
- 一个命令行整理软著代码
- 美国名校的网上竞争雷人语录