#自学Python的学习笔记
第三章Python的高级特性
python的高级特性可以提高开发效率,让代码更简洁
切片可以让我们快速的从list,tuple,str中获取想要的部分
L=list(range(10))
如果第一个索引是0,还可以省略···
L[:3] #表示从索引0开始取,直到索引3为止,但是不包括索引3。即索引0, 1, 2,正好是3个元素
L[:10:2] #前10个数,步长为2
L[::5] #所有数,步长为5
L[:] #原样复制一个list
#也可以倒着取,倒数第一个元素索引-1,也是包前不包后
L[-1] #表示取最后一个元素,格式为int
>>> a = L[-1]
>>> a
9
L[-2:] #表示取最后两个元素,格式为list
L[:-1] #不显示最后一个元素
L[-2:-1] #取出倒数第二个元素,格式为list
>>> a = L[-2:-1]
>>> a
[8]
L[::-1] #倒序排列元素步长为-1,即[10,9,8...]
L[::-2] #倒序排列元素步长为-2,即[10,8,6...]
# 字符串的操作
>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'
取字符串建议只用切片,不用下标,在脚本里,有时用下标取值会报错
作业:
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
# -*- coding: utf-8 -*-
def trim(s):
if s=="":
s=s
elif s[-1]==" ":
s=s[:-1]
return trim(s)
elif s[0]==" ":
s=s[1:]
return trim(s)
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('测试成功!')