首先吧,你这注释习惯不好,大家都是在一段代码开始前写注释,你的却是在一段代码之后注释,读起来费神。
纯粹作为练习来说,如果没有明确要求(一般也不会有这样的要求),一段代码要避免过长,将代码切分为一个个的函数,有助于测试与以后的修改。
这些两条都可以在python之禅中找到。
你的代码,在不跨年时,还是可以正确得到结果的。但关于跨年处理都是有问题的,你可以做一些关于跨整年的测试来确认这一点。关于future状态下跨年,计算是有问题的,past状态下的跨年,问题更明显。
关于1582年格里历界那段,else块里做减10的处理就有些粗糙,两个年份都大于1583,你做减10是为了什么?
同样,1582年前,闰年的计算,要排除整100年的那一部分计算。
建议你不要以这段代码为基础继续修改了,这只会让你养成写铁板的坏习惯(所谓铁板就是指大段的难以修改的代码)。你可参考如下框架来重新实现它:
当年,令狐大侠以其独孤九剑笑傲江湖,不知打败了多少江湖好手。其运作原理就是,无招胜有招,剑锋专指敌方破绽。满手的进攻招式。步步进逼,连防御都省却了。他说:天下武术千变万化,神而明之,存乎一心。不论对方的招式如何精妙,只要是有招,便有破绽
而游戏程序呢,我想也是一样的。虽然程序变化万千,但却不离其宗。无论多么完善的程序,多么敬业的程序开发人员,做过多少遍测试,只要是程序,终究都会有BUG,不要说你找不出破绽或者程序干脆没有破绽一类的话,当年令狐冲学剑的时候曾说:即使我瞧不出破绽,未必便是真无破绽,只是瞧不出罢了.
如何找BUG呢方法就是利用逆向思维和举一反三来寻找BUG的,只要有程序的地方,那就有BUG,只要掌握了正确的方式方法,找出BUG只是时间与机缘的问题。
number2+=number1+number2;
这句,number2 += number1 ,这个其实就已经是number2 = number2 +number1
"+="这个符号的意思你应该知道吧
如例:a=a+1 和 a+=1 是一样的。
当然,如果你想让你上面的等式成立,可以写成
number2+=(number1+number2),
不过这个是number2=number2+(number1+number2)
写程序的话, 不能用眼睛来除错, 一定要学会 "单步除错", 不然碰到大点或复杂的程序, 那还得了
"单步除错" 可以逐步执行程序, 验证程序逻辑, 同时可以随时查看每个变量的内容, 先学会Visual Studio 或 Eclipse 的这个功能吧
将
int create(struct Record p, int num)
改为
int create(struct Record & p, int num)
加一个引用
以上就是关于【求助】计算日期间隔的Python程序bug查找全部的内容,包括:【求助】计算日期间隔的Python程序bug查找、游戏中怎么找BUG、刚接触java,对某程序源代码有疑问。很简单的问题,希望师哥师姐帮忙解答,寻找此 java 程序的 BUG等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)