萬一用的著呢——python快捷語法技巧
新的博文又來了!!!上次和大家分享了 《頂級白嫖!!!八個python免費自學網站一周搞定python》里面介紹了不少好用的python自學網站,這次呢就緊跟上次的腳步給大家總結一些
常用的到的但是你可能不知道
的python語法技巧,若是大家覺得有用別忘了
三連
呀,好了廢話不多說我們開始。
你知道a**3是什么意思嗎?
你知道怎么打印模塊路徑嗎?
你知道reduce()函數怎么用和列表怎么拼接字符串嗎?
然而你可能全都知道
但是還是往下看看吧,可能會有你不知道的python小技巧學會它讓你的效率提升不止一倍!!!
目錄
in判斷
四種翻轉字符串/列表的方式
平方數
進制轉換
將字符串中的小寫字母轉為大寫字母
一次性初始化多個變量
打印模塊路徑
列表去重
字典和列表推導
拼接字符串
循環枚舉索引
開啟文件分享
巧用else語句(重要)
split
reduce
我們把最近的知識結合起來做一道題
sorted
執行一個字符串表達式,并返回表達式的值
in判斷
可以直接用來判斷某個變量是否在列表中
我們可以使用下面的方式來驗證多個值:
if 7 in [1,3,5,7,9]: print("肥學") 答案: 肥學 就不用再用: if m==1 or m==3 or m==5 or m==7:
1
2
3
4
5
6
7
8
9
四種翻轉字符串/列表的方式
翻轉列表本身 testList = [1, 3, 5] testList.reverse() print(testList) #-> [5, 3, 1]
1
2
3
4
5
在一個循環中翻轉并迭代輸出 for element in reversed([1,3,5]): print(element) #1-> 5 #2-> 3 #3-> 1
1
2
3
4
5
6
7
8
9
10
一行代碼翻轉字符串 "Test Python"[::-1] #輸出 “nohtyP tseT” 更多例子: >>> a=[1,2,3,4,5,6,7] >>> b=(1,2,3,4,5,6,7) >>> c='Let me show you a little thing' >>> a[::-1] [7, 6, 5, 4, 3, 2, 1] >>> b[::-1] (7, 6, 5, 4, 3, 2, 1) >>> c[::-1] 'gniht elttil a uoy wohs em teL' >>> a [1, 2, 3, 4, 5, 6, 7] >>> b (1, 2, 3, 4, 5, 6, 7) >>> c 'Let me show you a little thing' >>> a.reverse() >>> a [7, 6, 5, 4, 3, 2, 1] 相對reverse而言,切片的方法不會改變列表的結構,所以這是在實際應用中比較有用的一個技巧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
使用切片翻轉列表 [1, 3, 5][::-1] #輸出 [5,3,1]
1
2
3
4
5
平方數
a=5 a**2=25 a**3=125
1
2
3
4
進制轉換
dec = input('10進制數為:') print("轉換為二進制為:", bin(dec)) print("轉換為八進制為:", oct(dec)) print("轉換為十六進制為:", hex(dec)) string1 = '101010' print('二進制字符串轉換成十進制數為:',int(string1,2)) string1 = '367' print('八進制字符串轉換成十進制數為:',int(string1,8)) string3 = 'FFF' print('十六進制字符串轉換成十進制數為:',int(string1,16))
1
2
3
4
5
6
7
8
9
10
11
12
將字符串中的小寫字母轉為大寫字母
str = "this is string example from runoob....wow!!!"; print ("str.upper() : ", str.upper()) 以上實例輸出結果如下: str.upper() : THIS IS STRING EXAMPLE FROM RUNOOB....WOW!!!
1
2
3
4
5
6
一次性初始化多個變量
a,b,c,d=1,2,3,4 可以利用列表 List = [1,2,3] x,y,z=List print(x, y, z) #-> 1 2 3
1
2
3
4
5
6
7
8
打印模塊路徑
import socket print(socket) #
1
2
3
4
列表去重
list0 = [1, 2, 3, 2, 2, 5, 6, 5] list0 = list(set(list0)) >>> list0 [1, 2, 3, 5, 6]
1
2
3
4
字典和列表推導
#列表 l=[[0 for i in range(4)] for i in range(4)]#生成二維列表 print(l) # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
1
2
3
4
5
#字典推導 testDict = {i: i * i for i in xrange(10)} testSet = {i * 2 for i in xrange(10)} print(testSet) print(testDict) #set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) #{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
1
2
3
4
5
6
7
8
9
拼接字符串
你可能見過這個拼接方法 a="i " b="love " c="you" print(a+b+c)
1
2
3
4
5
看看這個 l=['a','b','c'] print(''join(l)) #以join左邊的字符做分割
1
2
3
4
循環枚舉索引
很方便的找到下標和對應元素 list = [10, 20, 30] for i, value in enumerate(list): print(i, ': ', value) #1-> 0 : 10 #2-> 1 : 20 #3-> 2 : 30
1
2
3
4
5
6
7
8
開啟文件分享
Python 允許運行一個 HTTP 服務器來從根路徑共享文件,命令會在默認端口也就是 8000 開啟一個服務器,你可以將一個自定義的端口號以最后一個參數的方式傳遞到上面的命令中。下面是開啟服務器的命令 python3 -m http.server
1
2
3
巧用else語句(重要)
python的else 子句不僅能在 if 語句中使用,還能在 for、while 和 try 等語句中使用,這個語言特性不是什么秘密,但卻沒有得到重視。 l=[1,2,3,4,5] for i in l: if i=='6': print(666) break else: print(999)
1
2
3
4
5
6
7
8
9
10
split
Python split() 通過指定分隔符對字符串進行切片,如果參數 num 有指定值,則僅分隔 num 個子字符串。 語法: str.split(str="", num=string.count(str)) 簡化: str.split("")
1
2
3
4
5
6
7
8
9
reduce
reduce把一個函數作用在一個序列[x1, x2, x3, ...]上,這個函數必須接收兩個參數,reduce把結果繼續和序列的下一個元素做累積計算 簡單例子: >>> from functools import reduce >>> def fn(x, y): return x * 10 + y >>> reduce(fn, [1, 3, 5, 7, 9]) 13579
1
2
3
4
5
6
7
8
9
10
我們把最近的知識結合起來做一道題
輸入一個int型整數,按照從右向左的閱讀順序,返回一個不含重復數字的新的整數。 result="" for i in input()[::-1]: if i not in result: result+=i print(result)
1
2
3
4
5
6
7
8
9
10
11
12
13
sorted
>>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] #可以接收一個key函數來實現自定義的排序,例如按絕對值大小排序: >>> sorted([36, 5, -12, 9, -21], key=abs) [5, 9, -12, -21, 36] 我們再看一個字符串排序的例子: >>> sorted(['bob', 'about', 'Zoo', 'Credit']) ['Credit', 'Zoo', 'about', 'bob'] 我們給sorted傳入key函數,即可實現忽略大小寫的排序: >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) ['about', 'bob', 'Credit', 'Zoo'] 要進行反向排序,不必改動key函數,可以傳入第三個參數reverse=True: >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True) ['Zoo', 'Credit', 'bob', 'about']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
執行一個字符串表達式,并返回表達式的值
>>>x = 7 >>> eval( '3 * x' ) 21 >>> eval('pow(2,2)') 4 >>> eval('2 + 2') 4 >>> n=81 >>> eval("n + 4") 85
1
2
3
4
5
6
7
8
9
10
Python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。