5道趣味Python熱身題,幫你渡過國慶假期綜合徵

長假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).大神解法

這個三目運算,讓我一個大寫的佩字


以上題目都是來自小密圈的小夥伴的刷題中的一小部分,大家一起來練手一下,快速熟悉代碼,不然明天上班了,寫代碼就手生啦!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章