iT邦幫忙

2021 iThome 鐵人賽

DAY 30
0
自我挑戰組

BeautifulSoup網頁爬蟲佐Django伺服器框架附AWS雲端運算服務系列 第 30

[Day 30]餐後甜點-心得總結及Python小魔術分享

餐點尾聲 - 鐵人賽心得

比起其他人可能有先擬好草稿,甚至先把30天的文章打好
這次的鐵人賽我是邊實作邊寫文章
一來是畢竟這次參加鐵人賽也是一時興起
另一方面也是因為工作關係所以沒啥時間寫自己的side project
而最近由於想著這份工作自己做起來實在是
一沒成就感,二沒歸屬感
所以也想著趁這次機會將自己的工作所學用鐵人賽紀錄
然後中間也有很多看起來很像踩到雷的敘述也是正常的(?
一來是確認自己所學到底能不能複製出來
二來是將來萬一又要用上時就可以回顧自己文章依樣畫葫蘆就好
所以這篇鐵人賽與其說是技術分享,不如說是讓自己不要踩雷的說明書
當然如果這篇鐵人賽有讓你成功學到東西
或是解掉千年未解的BUG
對我來說,那也是功德一件了

而這次的鐵人賽在寫文章同時,也有去看其他人的作品
只能說,有經驗就是不一樣
而這也讓我有蠻多意外收穫的
這邊也推薦幾個鐵人賽主題歡迎大家去看

1. lulu_meat - 奇怪的知識增加了!原來程式還可以這樣用?!

如果我等等接下來介紹的文章是小魔術的話
這個人的魔術應該是大衛考柏菲級別了(?
基本上這篇文章把Python能且常運用的方便都寫到了
如果有時間的觀眾也歡迎去看看然後自己寫寫看
真的挺有趣的

2. Oberon Lai - 機智接案生活 - WooCommerce 金流串接實戰

金流?啊整篇文章又跟金流無關,我也沒有要學金流
看這篇有啥用?
的確這篇的後半文章是有講到金流串接沒錯
但是整篇文章的鐵眼(?是接案
這作者讓我印象深刻的地方有兩個
一是這作者非本科出身,過了十幾年可能比我痛苦好幾倍的碼農生活
卻可以靠著自己的努力,成功化身成接案專員
並且可以達到周休三日,日平均工時4小時,月入10萬
這也讓我成為了接下來勇於嘗試轉換跑道的契機
二來是,這作者人真的很好
對於疑難雜症幾乎有問必答
所以不管是想轉換跑道,或是想知道如何接案,甚至想要找一個外包
都歡迎去閱讀這篇鐵人賽,以及跟作者交流

3. Kuma - 你就是都不寫測試才會沒時間:Kuma 的 30 天 Unit Test 手把手教學,從理論到實戰 (Java 篇)

前面兩篇可能比較算軟實力,講講一些Python的有趣應用,或是人生上的跑道轉換
但這篇就是實打實的硬主題了
這篇最主要的宗旨就是,要你了解unittest的重要性
以及如何寫出好的code
這一篇也是讓我受益良多
也讓我開始學習在寫code時隨時注意是否有犯了上述的錯誤
還有如何做好unittest防止作繭自縛
雖然主要使用的語言是Java,但是程式這種東西就是一通百通,用其他語言概念也差不多
想要如何快速且穩定的開發程式,非常推薦讀這個鐵人賽主題

以上就是大概的心得分享了
在最後的時候來跟大家分享一下小魔術吧

小魔術一號 - 白馬為白馬,白馬亦非白馬

>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False


啥鬼?為啥a跟b填256會是True 257會是False
原因就是在於Python的整數-5 ~ 256這個區間都會先預先塞在記憶體中
當有變數要存取時就直接塞他這個記憶體位址
那257由於沒有預先塞在記憶體中
所以就會建一個塞一個
也就是a = 257時會塞到某個記憶體中,b = 257會塞到另一個記憶體中
這就是這個魔術的原理啦

小魔術二號 - 誰在一壘

# 先建立一個含3個string的list
a = [""]*3
# 再建立一個含3個a的list
b = [a]*3
# 修改b內第0個a內第0個的string為'x'
b[0][0] = 'x'
# 印出來
print(b)


啊我不是只有改一個值而已,阿其他兩個的值是在變甚麼的

這個簡單來說是變數時的記憶體存取問題
簡單來說假設a的建立在第1號記憶體
此時執行b = [a]*3
就會有三個記憶體在1號的變數存在b內
因此只要某個a的值改變
3個相同編號記憶體的值自然也會改變
如果改成下列寫法

b = [['']*3 for _ in range(3)]

就會變成執行三次指令,指令內容為建立3個string的list
因此這樣就會把三個list分配在三個不同的記憶體
自然也就不會有上面的問題啦

以上就是這次鐵人賽的所有文章啦
也感謝大家願意看到最後
如果有甚麼疑問,或是想要來交流
甚至想要來砲這個作者誤人子弟(?
都歡迎來這篇文章的任何地方留言分享
有看到的話我幾乎都會回
至於明年鐵人賽還會不會參加,就看我有沒有財富自由或生活自由吧(?
就這樣啦,咱們後會有期


上一篇
[Day 29] 第二主餐 pt.5-django也能寫前端,templates簡易介紹
系列文
BeautifulSoup網頁爬蟲佐Django伺服器框架附AWS雲端運算服務30

尚未有邦友留言

立即登入留言