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)]

一句話就完成了

相關文章
相關標籤/搜索