关于python中缩进踩的坑

2018-06-17  本文已影响112人  mylovefan

01.下午在学习廖雪峰的python教程,输出了一个把自己蠢哭的操作,关于缩进的
背景是使用迭代查找一个list中最小和最大值,并返回一个tuple,起初我的代码是这样的:

# -*- coding: utf-8 -*-
def findMinAndMax(L):
    if len(L)==0:
        return (None,None)
    elif len(L)==1:
        return (L[0],L[0])
    elif len(L)>1:
        min=L[0]
        max=L[-1]
        for i in L:
            if (i<min):
                min=i
            if (i>max):
                max=i
            return min,max   #注意这里的缩进
print(findMinAndMax([7,1]))
print(findMinAndMax([7,1,3,9,5]))

(7, 7)#运行结果
(7, 7) #运行结果

所以其实虽然输出了正确的代码思想,运行结果和想要的结果却是不一致的,原因是多了一个缩进解释器在第一次循环时就break了
正确的如下

# -*- coding: utf-8 -*-
def findMinAndMax(L):
    if len(L)==0:
        return (None,None)
    elif len(L)==1:
        return (L[0],L[0])
    elif len(L)>1:
        min=L[0]
        max=L[-1]
        for i in L:
            if (i<min):
                min=i
            if (i>max):
                max=i
        return min,max   #好了 我知道你们心里在笑我 别说出来
print(findMinAndMax([7,1]))
print(findMinAndMax([7,1,3,9,5]))

(1, 7)#运行结果
(1, 9)#运行结果

就,大概知道为什么之前闲聊时Bin吐槽python的缩进了。

下次再有蠢事我再出来分享,以上

上一篇 下一篇

猜你喜欢

热点阅读