• 首頁
  • 關於我
  • 協辦工作坊
  • AI研究論文
  • WordPress 網站範例與指南
  • 教育與學習資源分享
Jyajyun
  • 貓咪事件簿
  • 生活
    • 短期居家喘息服務申請與補助-90歲外公的尿道狹窄術後照顧
  • 關於 焦慮症
    • 從今天起,不再為難自己
    • 如何面對那些刻薄的親戚與朋友
    • 陪家母走過焦慮症的那些小日子
  • Python學習
    • Python 入門學習文件
    • Python 套件模組語法演示與筆記
    • Python技術討論與筆記
  • AI人工智慧
    • 以類神經網路分析隨機 GRY 時間序列模型
    • 神經網路演算法
  • 學習與教育資源分享
    • 教育與學習筆記
    • WordPress 網站範例與指南
    • 優秀的線上演講
    • 家教經驗
    • 國中學習與升學會考策略
    • 助教經驗
    • 協辦工作坊與研討會
  • WordPress 學習指南
Author

yenchialu

yenchialu

PythonPython技術討論與筆記

Namespace(命名空間) and scope(作用域)

by yenchialu 2 6 月, 2021

Namespace(命名空間)、Scope(作用域)

這兩個專有名詞關係著變數存取的問題。

Continue Reading
2 6 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython技術討論與筆記

物件導向程式設計(OOP)與傳統程序導向

by yenchialu 2 5 月, 2021

傳統程序導向

資料是靜態的,程序跟資料分開,主要思考是以function為主要思考模式,我給定資料、寫好方法,程式會返回另一筆靜態資料。我在將資料放到下一個function。

優點是直觀、易於開發。缺點是,完全不能重複使用,也不太能擴增,要新的功能或者是要別的已開發好的程式的功能都無法,都得重新設計,這也導致維護很困難,也許寫新的都會比較快。

物件導向程式設計(Object-oriented programming,簡稱OOP)

這裡小提一下什麼是物件導向,是以物件為主要概念的開發模式,相較於傳統程序導向提高了重複使用性、擴充與維護性。

在物件導向中導入了物件的概念,而這個物件並非只是靜態資料,他能參有自己的屬性以及方法。

那物件怎麼創造呢?就是用一個抽象的方法 class ,他像一張產品設計圖,我在設計圖內寫下了它的設計方法,裏面包含了我設計的產品有什麼基本的零件與功能、以及使用者能夠如何使用或者擴增產品的功能。我並不是真的製作了一個產品,而是做出了一張設計圖給大家使用,大家能參照設計圖設計出自己獨立的物件。

而相較於傳統程序導向的缺點

  • 物件設計較不直觀
  • 程式執行速度相對也較慢

物件導向的三大特點 : 繼承、封裝、多型

物件導向的三大特點 : 繼承、封裝、多型

特性一. 繼承 (inheritance)

有許多的功能其實早就已經寫好,物件導向的程式設計能夠將別的已經寫好的屬性與方法繼承自己開發中的類別裡,不用再重複撰寫那些已有的功能。

特性二. 封裝 (encapsulation)

我們建立好class後,以後的使用者只須如何使用即可,不需了解整個物件製造的架構或設計過程。

特性三. 多型 (polymorphism)

不同的類別裡,能擁有同樣名字的函式。

所以做出來的物件呼叫相同名字函式時,會回溯到各自類別的函式名稱,而有不一樣的結果。

2 5 月, 2021 0 comments
0 FacebookTwitterEmail
AI人工智慧神經網路演算法

最小單元神經網路結構 – 感知器,PERCEPTRON

by yenchialu 22 4 月, 2021

Perceptron 為 Rosenblatt 提出第一個單元神經網路模型。

架構包含連結權重與激發函數的應用。

此模型基於 1943 年 McCulloch 與 Pitts 所提出的神經元模型,模擬了腦部神經架構以數學的方式解釋,其中並引入激發狀態概念”all ornone”,提出了許多連結性資訊傳遞在有激發函數下的討論。

PERCEPRON 模型架構,無數個Percerpron堆疊則能成為MLP架構,也是我們常見的神經網路的一種型態
Continue Reading
22 4 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython技術討論與筆記

如何理解Python裡的__name__與__main__的理解

by yenchialu 2 4 月, 2021
#範例 1 

def a(x,y) :
	return x+y
if __name__ == "__main__" :
	a(x,y)

程式碼第三行,__name__ == “__main__“到底該怎麼理解 ? 本文將慢慢解析

什麼是name?

__name__是一個內置屬性,當你訪問__name__時,會回覆你當前文件(模組)或者引入的模組名稱。

#範例 2-1

print(__name__)

執行結果
>>> __main__

上面的程式,詢問執行中的文件,名字(__name__)是什麼?程式回傳名稱__main__
python對於自己執行的主程式,會用__main__來自稱。

如果匯入模組,訪問其名字,則會回傳模組名稱。

#範例 2-2

import numpy as np
print (np.__name__)
# >>> numpy

print (np.random.__name__)
#  >>> numpy.random

什麼是main?

如上段提到,訪問__name__時,他會回覆你所使用的模組的名稱。

如果直接訪問,會回傳當前程式(主程式)的資訊,但不會用模組名(或說.py檔名、當前程式名稱),而是會用__main__自稱。見範例程式 2-1。

if __name__ == “__main__” 是什麼意思 ?

可以程式使用口語翻譯理解這句話

” 如果 模組名稱 就是 “__main__”的話,…… “

意思是如果執行模組時,他是當作主程式進行的話(而不是被引入的模組),就執行if後的內容。

我們寫的.py檔有時會當主程式運行,有時會被當模組引入。

如果沒這個條件句寫在程式內,在import引入會遇到一些問題,我只是想引入一些def方法而已,但程式會把所有的內容執行完。

範例 3-1是被引入的模組 bar.py,範例 3-2是主要執行的程式 foo.py

#範例 3-1
#被引入的模組 bar.py
def test1():
	print ("被引入的模組名稱",__name__)
test1()
print("今天要偷買珍珠奶茶")

#範例 3-2
#主要執行的模組(文件) foo.py
import bar
def test2():
	print ("主程式名稱",__name__)
test2()
bar.test1()

執行範例3-2的執行結果

>>> 被引入的模組名稱 bar #在import那行執行了test1(),因為被引入了所以變成 bar
今天要偷買珍珠奶茶 #在import那行,執行了print()
主程式名稱 __main__ #主程式執行test2()
被引入的模組名稱 bar #主程式引入模組bar的test1執行,因為被引入了所以變成 bar

以上範例,討論最後的兩個結果,但因為引入模組有其他零碎的程式碼,所以會被跑出很多我不需要的東西。

那解決的思維就是,bar.py這個檔案

  • 當作主程式(當前程式)執行時,才希望有”今天要偷買珍珠奶茶”的字串以及test1()的執行。
  • 當作主程式(當前程式)執行時,才希望有”今天要偷買珍珠奶茶”的字串以及test1()的執行。

那該如何實現,這時就要用到 if __name__ == “__main__” ,這個判斷式的口語意思是 判斷當前檔案是否為主程式,主程式的__name__都是”__main__“,如果是引入的話__name__就是檔名。

所以上方程式碼就該修改為下面示範,即能達到效果

#範例 4-1
#被引入的模組 bar.py
def test1():
	print ("被引入的模組名稱",__name__)
if __name__ == "__main__" : 
	test1()
	print("今天要偷買珍珠奶茶")

執行結果
>>> 被引入的模組名稱 __main__
今天要偷買珍珠奶茶

引用”愛學習的豆包“的文章圖示與範例,展示模組運行命名流程

狀況1 : 直接執行指令碼

#被引入的模組 bar.py
def test1():
	print ("被引入的模組名稱",__name__)
if __name__ == "__main__" : 
	test1()
	print("今天要偷買珍珠奶茶")

狀況2:從其他腳本里匯入

import nameScript as ns
ns.myFunction()

問題回顧

  • __name__是什麼 ?
  • __main__是什麼?
  • 如何理解 if name == “main” :
2 4 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython 入門學習文件

Python Modules 模組

by yenchialu 17 3 月, 2021

什麼是模組 ?

其實模組(Modules)跟一般的文檔一樣,但裡面主要不是拿來當作主程式執行,而是當作各種函式的文件來調用的文檔。

將相關類似的功能整理到一個文件檔裡,我們能稱呼這個檔為模組。


Continue Reading
17 3 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython 入門學習文件

Python def 函式

by yenchialu 16 3 月, 2021

函式像是打造一個小工廠,將生產流程設計好,在未來只要給原料,便能生產成品。

我們將需要的計算過程設計打包成函式,在未來需要相同計算時,只要調出函式,輸入參數,便能輸出返回數據。


Continue Reading
16 3 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython 入門學習文件

Python for 迴圈

by yenchialu 9 3 月, 2021

不同於while需要計數進行迴圈,for迴圈主要是針對一個範圍裡的逐一項目進行迴圈。

什麼是一個範圍,以下是舉4個常見範例

  • str
  • range(0,1000)
  • list
  • tuple
  • set

Continue Reading
9 3 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython 入門學習文件

Python while 迴圈

by yenchialu 2 3 月, 2021

迴圈

情境設定 : 請做出一個list,裡面是0~10

#方法 1 : 直接輸入

A = [0,1,2,3,4,5,6,7,8,9,10]

#方法 2 : 迴圈
i=1
A=[]
while i<=0:
    A.append(i)

在方法二中,用迴圈的方式看似有點複雜,但如果今天的list裡面包含的值如果是0~1000,迴圈的方式就簡單許多了。

什麼是迴圈

迴圈目的在簡化我們做的重複動作,如果有上萬步的重複動作,我們都能簡化到迴圈裡,用一個步驟寫完,但電腦執行時,會將我們的步驟重複萬次。

迴圈有兩種表示法,本文會側重在while迴圈

  • while 迴圈
  • for 迴圈
#生成一個包含0~10000的list

#方法1 : 直接輸入 -> 放棄

#方法2 : while 迴圈
i=1
A=[]
while i<=0:
    A.append(i)

#方法3 :for 迴圈
for i in range(10001) :
    A.append(i)

Continue Reading
2 3 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython 入門學習文件

python 條件判斷算式(if,elif,else)

by yenchialu 23 2 月, 2021

條件句,一但有了條件選擇,程式就能針對不同的情境作出複雜多變的邏輯判斷與輸出,這也讓程式能有更複雜的應用。

以下是Python 支持數學中常見的邏輯條件:

  • 等於:a == b
  • 不等於:a != b
  • 小於:a < b
  • 小於或等於:a <= b
  • 大於:a > b
  • 大於或等於:a >= b

Continue Reading
23 2 月, 2021 0 comments
0 FacebookTwitterEmail
PythonPython 入門學習文件

Python 資料型態(Booleans)

by yenchialu 16 2 月, 2021

布林值就是一個是非判定的值,僅有兩種陳述方式 True 或 False。

常用於程式語言需要有判斷或比較選項時使用。

print(100 > 9.0)
print(100 == 9.0)
print(100 < 9.0)

# >>> True
      False
      False

Continue Reading
16 2 月, 2021 0 comments
0 FacebookTwitterEmail
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6

Recent Posts

  • 學霸養成計畫
  • 國中升學體制下學習與應試策略
  • 授女以勇,不求必淑
  • 從零開始也不用害怕的Python學習資源
  • 斯多葛主義 – 練習擱置幻想中的恐懼,接受處境才能直面目標

Recent Posts

  • 學霸養成計畫

    16 10 月, 2023
  • 國中升學體制下學習與應試策略

    16 9 月, 2023
  • 授女以勇,不求必淑

    31 8 月, 2023
  • 從零開始也不用害怕的Python學習資源

    16 8 月, 2023
  • 斯多葛主義 – 練習擱置幻想中的恐懼,接受處境才能直面目標

    9 8 月, 2023

Categories

  • AI人工智慧 (7)
  • Python (20)
  • Python 入門學習文件 (13)
  • Python 套件模組語法演示與筆記 (1)
  • Python技術討論與筆記 (6)
  • Uncategorized (1)
  • WordPress (8)
  • WordPress 問題解決經驗分享 (2)
  • 優秀的WordPress範例網站 (4)
  • 優秀的線上演講 (7)
  • 助教經驗 (2)
  • 國中學習與升學會考策略 (5)
  • 好用插件與小工具 (1)
  • 家教經驗 (7)
  • 後台相關問題 (1)
  • 教育與學習筆記 (19)
  • 書評短筆 (1)
  • 生活 (2)
  • 神經網路演算法 (7)
  • 網路資訊架構 (1)
  • 課程體驗分享 (1)
  • 關於 焦慮症 (5)

About me

banner
很喜歡一代宗師裡的一段話
在我父親身上,我看到的不是招,是意。
慢慢的練習撰寫文字
希望文章不是專業術語的賣弄
而能真正幫助需要資訊的人

Popular Posts

  • 1

    10個使用WORDPRESS 架設新聞媒體和雜誌的網站

    16 11 月, 2022
  • 2

    如何在 Wordpress 添加數學公式

    19 1 月, 2022
  • 3

    激發函數(activation function)的可視化與理解

    22 6 月, 2021

Newsletter

@2019 - All Right Reserved. Designed and Developed by Jyajyun


Back To Top
Jyajyun
  • 貓咪事件簿
  • 生活
    • 短期居家喘息服務申請與補助-90歲外公的尿道狹窄術後照顧
  • 關於 焦慮症
    • 從今天起,不再為難自己
    • 如何面對那些刻薄的親戚與朋友
    • 陪家母走過焦慮症的那些小日子
  • Python學習
    • Python 入門學習文件
    • Python 套件模組語法演示與筆記
    • Python技術討論與筆記
  • AI人工智慧
    • 以類神經網路分析隨機 GRY 時間序列模型
    • 神經網路演算法
  • 學習與教育資源分享
    • 教育與學習筆記
    • WordPress 網站範例與指南
    • 優秀的線上演講
    • 家教經驗
    • 國中學習與升學會考策略
    • 助教經驗
    • 協辦工作坊與研討會
  • WordPress 學習指南