3道趣味Python題,非常適合菜鳥練手

Python雖然入門容易,但是涉及的知識點非常多,而且技巧性很強!這些技巧就像一串一串的珠子,需要一些題目的不斷的練手才能熟練掌握串聯起來,把知識點掌握牢固!今天我就精選了3道趣味的Python題目,大家一起動動手,練起來!

image

1.字符串中的字符替換

字符串是Python中最基本也是最重要的知識點,下面這道題是關于字符串替換。看看菜鳥和高手是如何處理的:

題目:

創建一個函數,這個函數能把輸入的字符串進行處理,并將返回替換了某些字符的字符串,規則如下

  • 如果一個字母是大寫輔音,請將該字符替換為“Iron”。
  • 如果字母是小寫輔音或非字母字符,則對該字符不執行任何操作
  • 如果一個字母是大寫元音,請將該字符替換為“Iron Yard”。
  • 如果一個字母是小寫元音,請用“Yard”替換該字符。

測試用例

輸入: "Hello WORLD!"

輸出: "IronYardllYard IronIron YardIronIronIron!"

菜鳥解法:

image

高手解法:

image

點評:

高手解法最巧妙不是用類似推到列表這樣的方法來循環處理字符串,而且非常巧妙的用"Iron"True 或者"Iron"False,如果是前者則為字符串本身,而后者則為空""。然后在把兩個字符串用+合成,再用or分類!完美把上面的if-elif-elif-else融合到了一行代碼里面,確實不錯!

2.趣味體重排序

老王在一個"胖子健身俱樂部",每到月底老王就很擔心,因為每個月都會公布一份成員體重列表,每個月他都是列表中的最后一個,這意味著他是最重的。于是他就建議會長修改規則,比如新的規則如下:

新的排序規則將是按照“權重”來進行排序,如果權重相同,則按照體重字符串來進行排序。(權重的計算規則:體重數字不同位數上的數字的總和

給定某種正常順序俱樂部的成員的體重字符串,如何實現按照新規則排序呢?

測試用例:

輸入: "99 189 86 75"

輸出: "75 86 189 99"

菜鳥解法:

image

高手解法:

image

點評:

高手的解法同樣是比較簡潔!我們大部分人用for c in x 的時候都用到這一層就結束了,其實還可以對c再進行進一步操作然后再sum一下,這個例子可以舉一反三!一下子集合了很多sorted的高級用法,簡潔而有效!

3.扔骰子游戲

用五個六面骰子玩的骰子游戲,每投骰子組一次,就會出現5個數字的數組(數字:1-6),統計數組里每個數字出現的次數,將每個數字出現的次數拆分成 3次 和 1次 的組合,然后按照下面的規則進行計數。

注意:如果出現次數大于或者等于3次,那么必須至少有一個按照3次來計算,不能全部按照1次來計算

3次1 = = 1000分

3次6 = = 600分

3次5 = = 500分

3次4 = = 400分

3次3 = = 300分

3次2 = = 200分

1次1 => 100分

1次5 => 50分

1次2 => 0分

1次3 => 0分

1次4 => 0分

1次6 => 0分

例如,5出現了5次,那么應當做作3個5、1個5和1個5來計算得分;5出現了6次,那么應當作3個5、3個5來計算得分,其他數字同理。

測試用例:

扔骰子計算得分 --------- ------------------

5 1 3 4 1 50 + 2 * 100 = 250

1 1 1 3 1 1000 + 100 = 1100

2 4 4 5 4 400 + 50 = 450

菜鳥解法:

image

高手解法:

image

點評:

高手的解法在于設計的數據結構非常巧,提前根據題目的意思就設計好了幾個容器,然后counter列表巧妙的將(1-6)與(1-6)出現的次數關聯起來。points和extra列表巧妙將數字出現的次數(3次和1次)和得分關聯表示,減少誤輸得分的情況,提高代碼復用性,整個解法非常巧妙!

上面這幾道題目看起來好像大家都會做,但是解法就是沒有別人的簡潔巧妙!就好像廚藝大賽,看似一道簡單的蛋炒飯其實是非常考驗功底的!編程本身就是蘊含算法+數據結構的融合,大家有空可以多學習學習優秀的代碼,對自己功力大有好處!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 你的數學直覺怎么樣?你能憑借直覺,迅速地判斷出誰的概率大,誰的概率小嗎?下面就是 26 個這樣的問題。如果你感興趣...
    cnnjzc閱讀 6,975評論 0 12
  • 哈哈,明天我就畢業了。 今天,去各個地方辦理離校手續,突然就有些傷感了呢。前兩天,還沒心沒肺地笑得稀里嘩啦。 離校...
    Al_ways閱讀 369評論 0 0
  • 害怕突然響起你愛聽的歌曲,害怕別人說出你曾說過的話,害怕一個人孤單時會想起你陪伴在身邊的日子,害怕午夜夢回時忍不住...
    安夏茉閱讀 1,773評論 63 50
  • 首先,大學生有的最好的資源是:知識,學生圈 其次:沒有資金的不要考慮產品推廣,轉向知識付費型推廣,就我而言從1...
    瞄了一個喵閱讀 243評論 1 2
  • 日更真是一件很殘酷的事情。 但我相信堅持下去總有收獲!回看以前剛開始學寫文章的時候,簡直不堪入目(雖然現在寫得也很...
    An妍讀書閱讀 153評論 0 0