切片
取一个list或tuple的部分元素
常规方法:
循环方法:
切片操作符:
#切片
#取一个list或者tuple的部分元素是非常常见的操作
#取前三个元素
#利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
def trim(s):
if s[:1]=='':
return trim(s[1:])
elif s[-1:]=='':
return trim(s[:-1])
elif s[:1]==''and s[-1:]=='':
return trim(s[1:-1])
return s
# 测试:
if trim('hello ') != 'hello':
print('测试失败!')
elif trim(' hello') != 'hello':
print('测试失败!')
elif trim(' hello ') != 'hello':
print('测试失败!')
elif trim(' hello world ') != 'hello world':
print('测试失败!')
elif trim('') != '':
print('测试失败!')
elif trim(' ') != '':
print('测试失败!')
else:
print('测试成功!')
#这段代码事实上有bug 无法运行 如果可以运行成功的话可以告诉我
迭代
#迭代
#给定一个list或者tuple利用for循环遍历输出
#这种遍历成为迭代
#python中通过for...in来完成
d={'a':1,'b':2,'c':3}
for key in d:
print(key)
for ch in 'ABC':
print(ch)
from collections.abc import Iterable
isinstance('abc',Iterable)#判断str是否可以迭代
for i,value in enumerate(['A','B','C']):
print(i,value)
#请使用迭代查找一个list中最小和最大值,并返回一个tuple
def findMinAndMax(L):
if L==[]:
return(None,None)
else:
min,max=L[0],L[0]
for item in L:
if max<item:
max==item
if min>item:
min==item
return(min,max)
# 测试
print(findMinAndMax([7, 1,2,4]))
# 事实上还是有bug 感觉没什么错误 摊手