正在照着廖雪峰dalao的教程学习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的语言以后再回来优化吧
------------分割线----------
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]
甚至可以套用循环
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函数可以判断一个变量是不是字符串
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)]
一句话就完成了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。