关于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的缩进了。
下次再有蠢事我再出来分享,以上