長假7天是不是好久沒有碰代碼了,編程和練武功一樣,拳不離口,曲不離手。不經常寫,手就會生。而且Python的技巧和方法特別多,很瑣碎,如果是新手很容易忘記,只有通過大量的練手才能熟悉掌握!明天就要上班了,我爲大家準備了一道Python熱身菜,希望大家動手敲敲,快速恢復功力!
01.將數組中的奇數進行排序
將一個數組裏面的奇數的數進行重新排列,0不是奇數
例子:sort_array([5,3,2,8,1,4])==[1,3,2,8,5,4]
1).小白解法:
2).熟手解法:
3).大神解法
巧妙的利用推導列表和列表裏面的pop,一箭雙鵰、
02.判斷密碼PIN code
ATM機允許4或者6位數字,但是這4位或者6位只能是純數字
比如:
validate_pin('1234')==True
validate_pin('12345')==False
validate_pin('a234')==False
validate_pin('-1.234')==False
1).小白解法
2).高手解法
def validate_pin(pin): return len(pin) in (4,6) and pin.isdigit() validate_pin('-1.234')
爲啥高手的解法總是這麼飄逸,簡潔,感覺像是高手對戰,一招制敵!
03.玩一玩字符串
給你幾個字符串,按照下面的規則編寫一個函數輸出,指定格式的字符串:
accm("abcd") #A-Bb-Ccc-Dddd
accm("RqaEzty") #R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy
accm("cwAt") # C-Ww-Aaa-Tttt
1).小白解法
2).大牛解法
def accm(chars): return '-'.join(c.upper+c.lower()*i for i in enumerate(chars))
04.推導一個數組
給你數組的前三個數字後一個數字是前3個數字之和,要求返回前n個數字
1).小白解法:
2).熟手解法,用閉包+生成器來搞定
3).大牛解法
巧妙的利用了列表的切片和負數index
05.字符天平秤
每個問號(?)的權重是3,每個感嘆號(!)的權重是2,把兩個字符放左邊,把兩個字符放右邊,看看它們是否平衡?
Example:
balance("!!","??")=="Right"
balance("!??","?!!")=="Left"
balance("!?!!","?!?")=="Left"
balance("!!???!????","??!!?!!!!!!!")=="Balance"
1).小白的解法:
2).大神解法
這個三目運算,讓我一個大寫的佩字
以上題目都是來自小密圈的小夥伴的刷題中的一小部分,大家一起來練手一下,快速熟悉代碼,不然明天上班了,寫代碼就手生啦!