正在照着廖雪峯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)]
一句話就完成了