正在照着廖雪峰dalao的教程学习python中
目前学到了高级特性->切片
这节课有个教程python
利用切片操做,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
思考了好久,最终用笨方法写出来了一个模板数组
l = '' if(l): x = 0 y = 1 while(l[x:y] == ' '): x = x+1 y = y+1 print('清除左边的空格之后',l[x:]) print('左边不为空格的序号',x) m = -1 n = -2 if(l[m] == ' '): while(l[n:m] == ' '): m = m-1 n = n-1 print('清除左右边的空格之后',l[:m],9) print('右边不为空格的序号',m) print(l[m:] == ' ',l[m:],9) print(l[x:m],9) else: print(l[x:],9) else: print('为空')
修改 l 为 'hello', ' hello ',' hello','hello ',' hello world ',' hello world with you '
等均可以正常输出左右的空格而且保留单词之间的空格。代码如今还比较简陋,但起码解决了问题,等之后熟悉了python的语言之后再回来优化吧app
------------分割线----------
8.1
刚刚学到了python的列表生成
就是在循环的时候直接建立一个列表
好比建立一个包含1-10的数组函数
L = list(range(1,11))
建立一个x*x的1-10的数组学习
L = [x * x for x in range(11)]
建立一个只包含偶数的1-10的x*x数组优化
L = [x * x for x in range(10) if x%2 == 0]
甚至能够套用循环code
L = [m + n for m in 'abc' for n in 'xyz'] 输出 ['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz']
把一个列表中的全部字符串改为小写教程
L = ['Hello','Prient','Hesitate Will Give Nothing'] print(s.lower() for s in L)
可是要是list中含有除字符串之外的项目,好比数字,输出就会报错
isinstance函数能够判断一个变量是否是字符串ip
L = 'Hello' isinstance(L,str) 输出 True
练习 请修改列表生成式,经过添加if语句保证列表生成式可以正确地执行:
L1 = ['Hello','World',18,'Apple','None']字符串
一开始我采用的是很基本的方法
L2 = [] for x in L1: if(isinstance(x,str)): L2.append(x.lower()) print(L2)
后来看了评论,发现有更简单的方法
L2 = [x.lower() for x in L1 if isinstance(x,str)]
一句话就完成了