[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分配在三个不同的记忆体
自然也就不会有上面的问题啦

以上就是这次铁人赛的所有文章啦
也感谢大家愿意看到最後
如果有甚麽疑问,或是想要来交流
甚至想要来炮这个作者误人子弟(?
都欢迎来这篇文章的任何地方留言分享
有看到的话我几乎都会回
至於明年铁人赛还会不会参加,就看我有没有财富自由或生活自由吧(?
就这样啦,咱们後会有期


<<:  30天学习笔记 -day 26-Motion Editor(上篇)

>>:  Day26 实现邮件寄送(1)

Spring Framework X Kotlin Day 24 Performance Test

GitHub Repo https://github.com/b2etw/Spring-Kotlin...

17. 解释 Same-Origin Policy

Same-Origin Policy 同源政策 浏览器基於安全性的考量,在应用fetch API或是...

Day29 用python写UI-聊聊Canvas(一)

终於进入最好玩的主题了,canvas就是可以在介面上做图形出来,赶快滑下去看吧~~~ ♠♣今天的文章...

Day-29 跳页

在过去撰写的程序都是以单页的形式呈现, 但实际上架的APP多不只一页, 那要如何从A页跳至B页? 这...

D-06-日志写入 ? NLog ? ILogger

日志的写入 相信很多人会在程序内埋log以便问题的追查,尤其是线上的问题不能像开发时期可以设定中断点...