長假7天是不是好久沒有碰代碼了,編程和練武功一樣,拳不離口,曲不離手。不經(jīng)常寫,手就會生。而且Python的技巧和方法特別多,很瑣碎,如果是新手很容易忘記,只有通過大量的練手才能熟悉掌握!明天就要上班了,我為大家準備了一道Python熱身菜,希望大家動手敲敲,快速恢復功力!
01.將數(shù)組中的奇數(shù)進行排序
將一個數(shù)組里面的奇數(shù)的數(shù)進行重新排列,0不是奇數(shù)
例子:sort_array([5,3,2,8,1,4])==[1,3,2,8,5,4]
1).小白解法:
2).熟手解法:
3).大神解法
巧妙的利用推導列表和列表里面的pop,一箭雙雕、
02.判斷密碼PIN code
ATM機允許4或者6位數(shù)字,但是這4位或者6位只能是純數(shù)字
比如:
validate_pin('1234')==True
validate_pin('12345')==False
validate_pin('a234')==False
validate_pin('-1.234')==False
1).小白解法
2).高手解法
defvalidate_pin(pin):returnlen(pin)in(4,6)andpin.isdigit() validate_pin('-1.234')
為啥高手的解法總是這么飄逸,簡潔,感覺像是高手對戰(zhàn),一招制敵!
03.玩一玩字符串
給你幾個字符串,按照下面的規(guī)則編寫一個函數(shù)輸出,指定格式的字符串:
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()*iforiinenumerate(chars))
04.推導一個數(shù)組
給你數(shù)組的前三個數(shù)字后一個數(shù)字是前3個數(shù)字之和,要求返回前n個數(shù)字
1).小白解法:
2).熟手解法,用閉包+生成器來搞定
3).大牛解法
巧妙的利用了列表的切片和負數(shù)index
05.字符天平秤
每個問號(?)的權重是3,每個感嘆號(!)的權重是2,把兩個字符放左邊,把兩個字符放右邊,看看它們是否平衡?
Example:
balance("!!","??")=="Right"
balance("!??","?!!")=="Left"
balance("!?!!","?!?")=="Left"
balance("!!???!????","??!!?!!!!!!!")=="Balance"
1).小白的解法:
如果你也在學習Python,苦于沒有一個完整的教程,在學習的過程當中遇見問題無法解答,那么我推薦你可以加下我的vx:Pythonxx 我有在微信建立了一個Python零基礎的訓練營,打卡學習,作業(yè)輔導,有問必答,歡迎初學者和進階者加入我們。
2).大神解法
這個三目運算,讓我一個大寫的佩字
以上題目都是來自小密圈的小伙伴的刷題中的一小部分,大家一起來練手一下,快速熟悉代碼,不然明天上班了,寫代碼就手生啦!