Archive for the ‘ Coding ’ Category

[Python]對於 Decorator 裝飾器的理解

Decorator 裝飾器

程式設計中的「函式」是為了解決程式碼的重複利用、模組化,同時也增加可讀性。而 Python 的「裝飾器」可以在不改變原本函式的功能之下,又再進一步強化 (簡化) 不同函式之間程式碼的共用。

Python 的「函式」是所謂的「一級函式」,支援「高階函式」的用法,可被當成參數來傳遞。「裝飾器」就是一個「兩層」的函式,先接收一個函式進行包裝 (處理),包裝完再回傳新的函式。就是「吃進去又吐出來」的意思!

Read more

[Python]Miniconda 的使用說明

Anaconda、Miniconda

一般用過 Anaconda 的人應該都是直接安裝 Anaconda 的「全家桶」來開發 Python 程式。維基百科記載: Anaconda 是一個開源的 Python 和 R 語言的發行版本,用於計算科學 (資料科學、機器學習、大數據處理和預測分析),擁有超過 1400 個套件...。

2023/10 最新的 Anaconda 版本為 v2023.09-0,安裝好約 4.6GB

但如果你像我一樣,根本用不到那麼多套件,只想使用 Anaconda 中的虛擬環境、套件管理、Spyder IDE,那麼你應該選擇精簡版的 Miniconda,再另外安裝最新版的 Spyder,或其它 Python 的 IDE 來使用。
Read more

[Python]Spyder IDE 5.5 繁體中文語言套件,以及一些 Spyder 的操作說明

Spyder 中文套件

Spyder 是一個功能強大的 Python 程式語言整合開發環境 (IDE),程式內建的多國語言有支援「簡體中文」,但沒有「繁體中文」。

本來我只是打算把「簡體中文」轉成「繁體中文」就拿來使用,但卻發現他的中文翻譯有很多不通順跟錯誤的地方!

於是我鼓起勇氣,硬著頭皮,一行一行對照著英文把它給翻譯完畢! Spyder 整合了很多套件,文字量比我想像的龐大,也有很多專業用語,費了一翻功夫才翻譯到我覺得還算滿意的成果,才敢丟出來給大家使用。

雖然說我不認為這種 IDE 需要特別翻譯成中文,但對於一些剛入門 Python 的新手,希望仍有幫助。
Read more

[Python]如何安裝 pip 套件管理程式,以及 pip 常用指令

pipPython 的套件管理程式,如果你從官網下載並安裝 Python,裡面就有 pip 可直接使用。但如果你是獨立安裝的 Spyder IDE,那麼 Spyder IDE v5.4.* 所附帶的 Python 並沒有包含 pip! 在 Spyder 的 IPython 主控台執行 pip 會出現錯誤:

In []: pip list
Note: you may need to restart the kernel to use updated packages.
 C:\Program Files\Spyder\Python\python.exe: No module named pip

PS. Spyder IDE v6.0.0 已經有包含 pip。
Read more

Visual Studio Code 的安裝說明,以及推薦的延伸模組 (Windows/Linux)

微軟開發的 Visual Studio Code (簡稱 VS Code) 是一套非常熱門的「編輯器」! VS Code 跨平台,且開放原始碼。它雖然僅是一個輕量版的編輯器,卻可經由安裝延伸模組來支援程式碼語法突顯、偵錯、自動補全、重構、Markdown...等琳瑯滿目功能,打造你夢想中的 IDE (整合開發環境)。

VS Code 預設僅支援 JavaScript、TypeScript、CSS、HTML,同樣能透過下載延伸模組來支援 Python、C/C++、Java、Perl、Go... 等其他程式語言。

Read more

[Perl]如何在 Visual Studio Code 建立 Perl 的程式開發環境 (Windows/Linux)

據說 Perl 可能是近幾年會消失的 5 種程式語言之一,另外 4 個語言分別是 RubyHaskellObject-CR! 現在在 Visual Studio Code (簡稱 VS Code) 建立 Perl 的程式開發環境也算是幫 Perl 續一下命,大慈大悲、功德無量。

要建立好整個 Perl 的開發環境主要分為三個步驟:

  1. 安裝 Perl 的執行環境
  2. 安裝 VS Code Editor
  3. 在 VS Code 安裝 Perl 的延伸模組 (Extension)

Read more

[Kotlin]研究 Kotlin 的函式宣告、函式型別、匿名函式、Lambda 與高階函式

Kotlin 的「函式」是所謂的「一級函式」,支援「高階函式」的用法,也可宣告「匿名函式」及「巢狀函式」,這些都是近幾年所興起的程式語言特色。

(原本這篇文章只是要整理一下 Kotlin 的函式用法而已,沒想到愈寫愈多!!)

名詞定義

先確認是否了解什麼是表達式? 什麼是敘述式?

Expression (表達式、表示式、運算式)

  • 它是一種「值」
  • 會傳回結果
  • 單獨存在沒有意義
  • 可放在「等號」的右邊
  • 可做為函式的引數 (Argument)
  • 可做為函式的傳回值
  • 例如: 數值、字串、布林值、null、運算後的結果、比較後的結果、匿名函式...

Statement (陳述式、敘述式、語句)

  • 由會產生「動作」的程式關鍵字及語法所組成的程式碼
  • 不會傳回結果
  • 例如: 流程式控制制、迴圈、宣告、函式、類別...

其它名詞定義

  • Literal: 字面值,例如: 103.14truenull'A'"This is a book"...
  • Parameter: 參數,函式「宣告」時所輸入的值,例如: fun example(參數) { }
  • Argument: 引數,函式「執行」時所引用的值,例如: example(引數)
  • Identifier: 識別字,命名變數、函式、類別...時所使用的文字
  • Lambda: 一種匿名函式的寫法或概念

Read more

[JavaScript]如何防止自己的網站被別人以 iframe 蓋台嵌入 (與反制辦法)

「iframe (內置框架)」是用來在網頁中的特定位置嵌入另一個網頁。目前 Facebook、Google+、Twitter...等用來在網頁上顯示社群內容的社群元件,幾乎都是以 iframe 實作出來的。

原本框架是一種很好的應用,但如果是自己辛苦製作的網頁被別人的網站以 iframe 嵌入,因而出現在別人的網站裡,成為別人網站的一部份!!這種感覺就像是自己的心血被別人整碗捧走一樣!!

導回自已網站的方法

方法 1

於網頁的原始碼加入以下 Script:

<script type="text/javascript">
if( top.location != document.location ){
	top.location.href = document.location.href;
}
</script>

以上的 Script 會檢查瀏覽器最上層視窗的網址是否與目前網頁的網址一致,如果不一致,則把最上層視窗的網址改為目前網頁的網址,就醬。

方法 2 (反制辦法)

於網頁的原始碼加入以下 Script:

<script type="text/javascript">
if( top.location != document.location ){
	document.write("<h1 style='color:#FF0000'>未經授權嵌入別人的網頁是可恥的行為!!</h1>(<a href='"+document.location+"' target='_blank'>原站網址</a>)");
}
</script>

以上的 Script 會檢查瀏覽器最上層視窗的網址是否與目前網頁的網址一致,如果不一致,就顯示:

未經授權嵌入別人的網頁是可恥的行為!!
(原站網址)

我比較不喜歡與人家互嗆,所以我通常是用「方法 1」啦!

[JavaScript]簡易網頁下拉選單,可支援 MouseOver 與 Click 事件

在網頁界已經有很多的「下拉選單」程式了,不過似乎都搞得太過複雜或太華麗了。

其實下拉選單的原理很簡單,一開始只是先讓「子選單」隱藏,當滑鼠移至「主選單」時再讓子選單顯示。因此,只要能控制網頁元件的 display 樣式屬性就已經成功一半了。

因為本人喜歡重新發明輪子,所以也寫了一個簡易的網頁下拉選單的程式,可以做為初學者入門的參考。

在範例的原始碼中,我儘量讓程式碼看起來淺顯易懂,並且只用 JavaScript,不使用 jQuery 或其它 Framework。我也儘量多寫一些註解,希望 JavaScript 的初學者能看得懂。

Read more

[jQuery]中文的 jQuery 教學資源

如果想學 jQuery 的話,可以從下列的教學資源開始,讀者應具有 HTML、JavaScript、CSS 的基礎。

網站

上官林傑 - ericsk (2007)

  1. jQuery 學習心得筆記 (1) – 前言
  2. jQuery 學習心得筆記 (2) – 怎麼使用 jQuery 來寫 JavaScript
  3. jQuery 學習心得筆記 (3) – jQuery 的事件(Event)處理
  4. jQuery 學習心得筆記 (4) – Ajax (上)
  5. jQuery 學習心得筆記 (5) – Ajax (下)
  6. jQuery 學習筆記 (6) - 操作 DOM 物件
  7. jQuery 學習筆記 (7) - 擴充 jQuery

以上這幾篇是我的 jQuery 啟蒙文章。
Read more

return top