python摸鱼学习笔记

正在照着廖雪峰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)]

一句话就完成了

相关文章
相关标签/搜索