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