iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
3
Software Development

活用python- 路遙知碼力,日久練成精系列 第 15

Day15- 程式練習平台介紹

很高興自己在鐵人賽中已經走了一半的路程了,
本篇介紹適合的線上程式練功平台。

打怪練功升級般的訓練自己- CodeWars

在這邊我則推薦codeWars做為練功平台,
(網址:https://www.codewars.com/)
你只要會註冊一個帳號即可上CodeWars練習了,
該平台為英文,讓你練程式兼練閱讀英文,
如註冊帳號有困難者,可參考這篇教學

進入平台後,你可以選擇自己想練習的語言,
(由於本系列就是教python語言,先選python)
Codewars的題目稱為Kata,題目分級很細,
細分至八個等級,數字愈小表示等級愈高。
一開始建議從8~6級的題目練起,
這級數的題目大多只是小菜一碟,
但對於熟悉想要熟悉python精簡語法者無非是非常好的途徑,

當在Codewars解開問題時,
便可以看到其它人跟自己同樣是python語言解答,
並且最佳解法是參與者共同票選出來的,
通常看到的解答也都是python精簡語法的展現,
故Codewars蠻適合做為各位「路遙知碼力,日久練成精」的輔助學習。

在Codewars解開問題後能看到其它好解答的機制,
也很好的克服了一般你在其它OJ上看不到別人解答而有點閉門造車研究的感覺,
有可能當你在Codewars思索一番後,
看到更好的解答,
會有「哦,原來還有這麼漂亮的解法」的驚呼吧。

噢,原來還能這樣解

究竟Codewars如何讓自己成長,
這邊舉一個今天隨意看到的8級的題目聊聊,
此題要定義一個函數

def set_alarm(b1, b2):
    pass

我們要讓函數返回一個布林值,
只有當b1Trueb2False我們才返回True
其餘狀況返回False
這題目夠簡單吧?
不過假設你對布值運算的了解不夠深入,
你可能就順手寫下這樣的程式碼了:

def set_alarm(b1, b2):
    if b1==True and vacation==False:
        return True
    else:
        return False

但是當你按下summit按鈕後,
你會發現其實大家投票的漂亮解答是這個:

def set_alarm(b1, b2):
    return b1 and not b2

或許你便能從別人更加精簡或巧妙的解法,
開拓自己的想法


上一篇
Day14- Python 高階函數map, filter, reduce 介紹
下一篇
Day16- Project1- 趣味數論問題: 友好數、婚約數
系列文
活用python- 路遙知碼力,日久練成精30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言