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

本文介绍了在编写Python代码时如何通过自定义测试用例和在线判题平台(如LeetCode, POJ, PTA等)进行代码验证。通过在代码后面添加简单的测试用例确保基本功能正确,并建议使用OJ网站进行更全面的测试和学习其他解题思路。" 120943135,5000057,Java面向对象:return、方法重载与可变个数形参解析,"['Java基础', '编程概念', '方法', '参数']
摘要由CSDN通过智能技术生成

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题,或者测试本课题的题目。微信扫码关注我哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值