初学Python,会遇到各种各样的问题,小编也是在这样的过程中成长起来的。
以上是我想说的第一句话,那么对于我的上一句话,有两点需要声明:
1.『小编』这个称谓:第一次写文章,实在不知道从哪开始,只是之前看到大家都自称"小编",所以,觉得这是一个普遍的称谓吧。
2.『成长』这个词汇:其实对于Python的应用,我也是在探索的路上艰难前行,完全没达到敢用"成长"这个词的地步,共同努力。
啰嗦完毕,进入正题。
###############################
学习任何一门编程语言,使用任何一门语言进行编程,想要实现一个功能或是解决一个问题,方法都不止一个,这是恒不变的规律。
那么,每次遇到问题的时候,我都会查阅几种方法进行对比,然后择其优者而从之,尽管多数都需要改动才能用,但人家的方法总之给了你灵感或点化的作用。
所以,在解决问题的过程中,一定要有自己的判断。
###############################
小编在一次解决问题的过程中,遇到了比较三个数大小的问题,然后在探索的过程中,在网上发现一个方法,而且赞同的人还挺多的,但反复梳理它的流程,发现总是有些问题,然后拿来经过数据验证,找出了一些问题,下面直接上代码。
一。引用的方法:
def max_min(x, y, z): max = min = x if y > max: max = y else: min = y if z > max: max = z else: min = z return (max, min) print(max_min( 15,10,39))
这个方法的问题在于,如果传参是这样的,print(max_min(39,10,15)),它的结果是max=39,min=15,结果显然是不对的。
分析其原因,是考虑到了大数的提取,没考虑到有一种情况下,两个小数没有进行比较。
二,改进后的代码:
c=[] def max_min(x,y,z): max = min = x if y > max: max = y if z > max: max = z else: if z < min: min = z else: min = y if z > max: max = z else: if z < min: min = z return(max,min) c.append(max_min(1,2,3)) print(c) print(c[0][0],c[0][1])
那么,问题来了,这样的方法就是好的吗?答案是否定的,首先,从它的长度上来看,就觉得复杂,尽管它经过验证是对的。
既然是学习,就要举一反三、触类旁通。所以在后面我真正使用的过程中,我还是用了其他的方法,我用的是列表的方式解决的。以下是代码:
三。用列表排序解决比大小问题:
def max_min(x, y, z): list = [] list.append(x) list.append(y) list.append(z) list.sort() return list print(max_min(x, y, z))
好了,我不知道它是不是最优的方案,但它完美解决了我的问题。所以我决定不再修改它。
如果有同学看到这篇分享,欢迎提出您的宝贵建议和意见。
如果这些方法解决了您的问题,那么,深感荣幸!!!
#################################
纪念一下自己的第一次分享,期待更多。。。