Python小知識 | 這些技能你不會?(一)
阿新 • • 發佈:2018-11-29
Python小知識
最近在看《零壓力學Python》,鞏固一下基礎知識,意外收穫到很多常用卻不一定被注意的小知識,分享給大家,學到東西了點贊支援哦~
個人微信公眾號,歡迎關注領取學習資源
一、賦值執行
(1) 多賦值
# 多賦值
a = b = c = 0
print("a的值為:"+str(a))
print("b的值為:"+str(b))
print("c的值為:"+str(c))
'''
result:
a的值為:0
b的值為:0
c的值為:0
'''
(2)元組賦值
# 元組賦值 a,b,c = 1,2,3 print("a的值為:"+str(a)) print("b的值為:"+str(b)) print("c的值為:"+str(c)) ''' result: a的值為:1 b的值為:2 c的值為:3 '''
(3)同步賦值
# 同步賦值
a,b = 1,2
# a=a+b,b=a同時執行,運算時都利用原始值(舊值)
a,b = a+b,a
'''
a = a + b = 1 + 2 = 3
b = a = 1(原始值)
'''
print("a的值為:"+str(a))
print("b的值為:"+str(b))
'''
result:
a的值為:3
b的值為:1
'''
(4)自操作簡化
# 自操作簡化
a+=1 # 自加一
a-=1 # 自減一
a*=2 # 自乘2
a/=2 # 自除2
a**=2 # 自己的2次方
二、列表索引與切片
(1)列表索引
- 正索引
list_test = [1,2,3,4,5]
# 正索引
'''
列表長度:len
list_test[n]
表示取列表的第n+1個元素
n < len
'''
print("第三個元素是:"+str(list_test[2]))
'''
result :
第三個元素是:3
'''
- 負索引
# 負索引
'''
列表長度:len
(n<0)
list_test[n]
表示取列表的倒數第|n|元素
|n| < len
'''
print("倒數第二個元素是:"+str(list_test[-2]))
'''
result :
倒數第二個元素是:4
'''
(2)列表切片
切片可以訪問(取出)原列表的任意子列表,生成一個新列表。
'''
格式:[begin : end : step]
begin : 切片開始位置,從第begin+1開始,預設為0
end : 到第end個結束,預設為列表長度
step : 取數的間距
'''
list_test = [1,2,3,4,5]
# 取出子列表[2,3]
print("無間距取子列表:"+str(list_test[1:3]))
# 每隔一個元素取,這裡是取出奇數
print("有間距取子列表:"+str(list_test[0:5:2]))
# 取出最後2個元素
print("取出最後2個元素:"+str(list_test[-2:]))
'''
result:
無間距取子列表:[2, 3]
有間距取子列表:[1, 3, 5]
取出最後2個元素:[4, 5]
'''
(3)很秀的操作
- 列表元素順序反向
# 列表元素順序反向
print("列表元素順序反向:"+str(list_test[-1::-1]))
'''
result :
列表元素順序反向:[5, 4, 3, 2, 1]
'''
- 替換列表某段子列表
# 替換列表某子列表
list_test[0:2] = [9,8]
print("替換列表前兩個元素:"+str(list_test))
'''
result :
替換列表前兩個元素:[9, 8, 3, 4, 5]
'''
- 在列表開頭插入兩個元素
# 在列表開頭插入兩個元素
list_test[:0] = [7,6]
print("在列表開頭插入兩個元素:"+str(list_test))
'''
result :
替換列表前兩個元素:[7, 6, 1, 2, 3, 4, 5]
'''
三、字串處理
(1)split拆分字串
# split拆分字串
str_test = "I am 極簡XksA who are you ?"
str_test01 = "老表#X先生#XksA"
# 預設以空格為分隔符,拆分字串
r_list = str_test.split()
print("預設空格拆分結果:"+str(r_list))
# 用指“#”拆分字串str_test01
r_list01 = str_test01.split("#")
print("用指定字元拆分結果:"+str(r_list01))
'''
result :
預設空格拆分結果:['I', 'am', '極簡XksA', 'who', 'are', 'you', '?']
用指定字元拆分結果:['老表', 'X先生', 'XksA']
'''
(2)strip刪除字串前後多餘字元
str_test02 = " 我愛你 啊! \t \n"
# 預設情況下會去除字串首尾的空格、”\t“、”\n“
strip_test = str_test02.strip()
print(strip_test)
'''
result :
我愛你 啊!
'''
# strip去除字串前後指定字串
str_test02 = " 我愛你 啊! 才怪"
strip_test = str_test02.strip("才怪")
print(strip_test)
'''
result :
我愛你 啊!
'''
細心的讀者會發現,我們指定刪除”才怪“後,前後的空格沒有被刪除。
也就是說我們只能指定一種模式,那要刪除”才怪“,還想把空格也去除怎麼辦呢?
也很簡單,把模式改成”才怪 “,也就是說,在指定格式里加個空格就行,那麼,”怪才 “、” 怪才“、”怪 才“都是一個模式,會把字串前後的”才“、”怪“、” “這三個字元都去掉,直到遇到不是這三個字元的字元為止。
這個小技巧很實用哦~
(3)join連線列表字串
# join連線列表
list_test = ['2018','10','29']
r_join = "-".join(list_test)
print(r_join)
'''
result :
2018-10-29
'''
如果我們要給幾個字串用指定字元或字串連線起來,用join方法的好處就是,不會在字串末尾新增分隔符,比如上面程式碼的例子,如果我們直接遍歷加-
,那可能就會產生2018-10-29-
這樣的結果,需要對字串再處理,才能得到我們想要的結果,而join
可以直接生成,程式碼簡潔,效率高,這一點可以說超級優秀了。
(4)基本操作
- 大小寫轉換
str_00 = "I Love You."
str_00 = str_00.upper()
print("小寫轉大寫:"+str_00)
str_00 = str_00.lower()
print("大寫轉小寫:"+str_00)
'''
result :
小寫轉大寫:I LOVE YOU.
大寫轉小寫:i love you.
'''
- 字元與ASCII碼轉換
# ASCII碼轉化成字元
print("ASCII碼65表示:"+chr(65))
print("B的ASCII碼為:"+str(ord("B")))
'''
result :
ASCII碼65表示:A
B的ASCII碼為:66
'''
- 英文字母判斷
str_00 = "D三23安生"
# 字串的英文字母是否全部為小寫字母(可以包含其他字元)
print(str_00.islower())
# 字串的英文字母是否全部為大寫字母(可以包含其他字元)
print(str_00.isupper())
# 判斷字串首寫字元是否為英文大寫字母
print(str_00.istitle())
- 數字字元判斷
# 字串為十進位制、雙位元組整數(可組合)
print(str_00.isdecimal())
# 字串為十進位制、單位元組、雙位元組整數(可組合)
print(str_00.isdigit())
# 字串為十進位制、單位元組、雙位元組整數、漢字數字(可組合)
print(str_00.isnumeric())
- 組合字元判斷
print(str_00.isalpha())
# 字串是否為數字和字母和漢字組合(可以只包含某一類或兩類)
print(str_00.isalnum())
- 其他判斷
# 判斷字串是不是有效的識別符號(可以用來判斷變數名是否合法)
print(str_00.isidentifier())
# 判斷字串是否全部為空格
print(str_00.isspace())
靈活應用這些基本操作,讓你的工作學習事半功倍。