2017年5月24日 星期三

Python ê 基礎 - 變數

佇咧寫 Python 程式, 上基礎就是變數. 變數是暫時物件的所在. Python 佇運行過程中, 有時一寡運算的結果, 咱愛先留个, 後壁才提出來用。比論講:

$ python3
>>> sum = 2 + 3
>>> sum
5
>>> result = sum * 6
30

>>> print(sum) 
5
>>> print(result)
30

這咧簡單的程式[tîng-sit]內, sum, result 就是變數. 了後隨時會使提出來用。頂一个算式實際上就是 (2+3)*6.

變數的, 用相仝符號 '=' 來入去. sum = 2 + 3 就是出結果, 順紲囥--入去 sum 內底.

變數號名有一寡限制, 愛是英文字母𤆬頭, 後壁英文字數字抑是底線, 比如講 gua, dog1, my_dog 攏會使. 猶毋過, 像 3dogs, %lang 就袂用--得.

另外的限制, 是有一寡 Python 的保留字, 親像 for, while, if, end, 這是 python 留--落來欲家己用个.

--著這寡限制, 你會使凊彩你佮意的名. 毋過, 上好是愛有小可仔意思, 和程式 uì 頭到尾的理路有關係. 因為你可能寫了--咧, 半年了後才閣轉來看. 嘛有可能你的程式真有路用, 真濟人用, 愈寫愈大, 有千萬的變數, 落尾無人知影你的變數佇啥物, 連你家己嘛袂記得。比如講:

a = 2 + 3 
b = 7 + 9
c = a * b



sum1 = 2 + 3
sum2 = 7 + 9
result = sum1 + sum2

這兩的是做仝款的代誌. 毋過, 第二个雖然無解說, 逐家嘛个出來伊佇創啥. 號一个好名, 是真好的習慣

2017年5月16日 星期二

進一步 ê 數學, 順紲介紹程式庫

咱頂擺有講著基礎數學的 +, -, *, / 運算. 毋過, 數學的物件閣真濟, 按呢是無夠。

數較簡單, 用 ** 就會使, 像平方 22 , 立方23, 就是

$ python3
>>> 2**2
4
>>> 2**3
8

無論偌濟次方, 攏無siáng 問題. 若是開平方 2咧? 開立方咧? 當然, 咱會使用數學智識, 開平方就是指數 1/2, 開立方就是指數 1/3/, 所以

>>> 2**(1/2)
1.4142135623730951
>>> 2**(1/3)
1.2599210498948732

閣落來, 像對數[tuì-sòo] Log, 圓周率[înn-tsiu-lu̍t] π, 幾何 的 sin, cos, 這寡無法度逐項攏用數學智識uì上基礎來推論出來, 傷了工, 閣僫做, 嘛失去學程式的意義.

學程式有一咧重要的觀念: 莫重複發明輪仔

學寫程式, 就是欲利用電腦削削叫个計算速度, 閣有濟濟人寫好的家私. 你想欲做的代誌, 檢采較早有人想過, 嘛做出來也. 咱若會當著 in 寫好的家私, 直接來用, 會使咱省足濟時間咧。

學會曉 Python, 你就徛佇這咧磅空口, 這磅空內有濟濟个軟體寶藏. 看你欲入來無? 欲行外遠? 內面个寶藏, 你一世人嘛用袂了。

咱以數學來講, 若欲較深咧, 會使利用 math 這咧 module. Module 這个概念, 後擺咱會閣較詳細介紹, 佇遮[sing]知使用方式.

欲使用 math 這个 module, 咱愛先共伊掠入來目前个環境, 這咧命令號做 import (進口).

$ python3
>>> import math

紲落來, 你就會使用伊內底个家私. 伊的物件, 攏是 math.XXX() 个樣, 比如講, 欲算對數 log2 10, 就是

>>> math.log(10, 2)
3.3219280948873626
>>> math.log2(10)
3.321928094887362
>>>

頂兩个是仝款ê, 只是 math.log2() 是專門用佇 log 2 base 个, math.log() 第二个是會使變ê, 你欲tī 2, 3, 4, ... 啥物 base 攏會使.

你若袂用特殊个固定數 (constant), 親像圓周率 π, 自然對數 e,

>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045

賰个閣有足濟 function,像 cos(), sin(), tan(), .. 三角函數(Trigonometric functions), 求上大公因數 gcd(), 角度單位轉換 degrees(), radians(), 濟佮講袂了.
若是按呢, 欲按怎使用佮查咧? 你會使用網路頂 ê 文件, Python 个 文件做囉真好, 你會使去查, 嘛會使直接佇 Python3 shell 中央(tiong-ng), 用 help() 來查

>>> help(math)
....
>>> help(math.log)

先用 help(math) 大概 [tāi-khài] 查 math 有啥物函數, 揣著你愛个, 比論講 log(), 才閣用 help(math.log) 查伊的詳細用法.

當然, 數學遐闊, 嘛毋是 math 一咧 module 有tha̋ng 總包. 好佳哉 Python 嘛毋是干焦 math 這一咧數學函數, 基礎个閣有 numbers 來 數字个處理, 像複數 (complex number),  cmath, decimal, fractons, random, statistics. 橫直, 等你欲用著个時才去揣就好阿

2017年5月6日 星期六

用 Python3 來做計算機

咱了解欲按怎安裝, 運行 Python 了後, 就會使開始使用囉.

Python 是一咧工具, 你會使共當做物仔, 嘛會使用伊來賺食. 就干焦唱歌, 有人家己hinn-hinn-honn-honn 唱歡喜, 嘛有人上舞台做大歌星. 一支筆, 有人寫來記數 niâ-niâ, 嘛有人寫出大部的小說天跤下攏知影伊的名. 總是, 踮電腦的天跤下, 抑是網路的世界, Python 是足有路用的專業工具.

毋過, 咱若欲入門, 嘛免想遐濟. 伊嘛是會使用來耍, 用來解決一寡生活的零星代,趣味就好. 這馬咱先來共伊當做計算機來用.

咱先進入伊的應聲模式:

$ python3
>>> 4 + 6
10
>>> 20 - 7 *2
6
>>> (20 - 7*2)/4
1.5
>>> 100/3
33.333333333333336
>>>

踮頂懸的例tiőng, 咱共上基本的加[ka],減[kiám],乘[sîng],[pun, 華語:除] 行一遍。踮遮, 台語念法參考筆算个初學這本書.

數學符號, 加是 +, 減是 -, 無問題. 毋過乘改作 *, 分改作 /.
號 () 的意義佮數學定義仝款, 優先計算.
按呢是毋是真簡單呢?

有時, 你落落長的算式, 算了才發現有毋著, 欲按怎? 閣重新一字一字揤?

免遐囉嗦--啦, 只要揤向頂的箭頭  就會轉去拄仔彼例算式, 才閣揤正鍵→,倒鍵←,倒退鍵(Backspace), 挕掉鍵 (Delete) 來改正.
有時, 你想欲頂一咧計算的結果, 用佇這馬這咧計算, 若按呢愛用線 _, 比如講:

>>> 2 + 4 +5/3
7.666666666666667
>>> 2 * _
15.333333333333334
>>> 

對分法, 咱閣愛討論較咧. 分法有時會分袂了, 欲有數(remainder, 華語: 餘數), 抑是直接共賰數掉? 抑是欲算幾位的小數? 佇 Python3, 咱用無仝的算 (operator) 來區別:

>>> 17/3
5.666666666666667
>>> 17//3
5
>>> 17%3
2

線 / 是算出小數, 雙斜線是干焦留整數, 百分比 % 是干焦留賰數。

數 (power) 是雙 ** 來代表:

>>> 5**2
25

Python3 的數學規則, 親像先乘分, 後加減, uì 倒手爿算到正手爿, 攏佮數學仝款。

2017年5月5日 星期五

Python ê 戲文模式

戲文(script, 華語:劇本,台詞) 模式, 就是你愛先欲做的代誌先寫好, 佇一咧文字檔內底. 紲落來才叫 python 去讀這咧文字檔案, 按照te̋ 做. 就干焦演員愛照戲文來搬戲仝款.

戲文愛先uì頭到尾寫予好, 無 Python 搬戲搬到一半會搬袂落去.

這馬先來寫一咧上簡單的戲文,拍開凊彩一咧你慣勢的文字編輯程式, 像 Notepad(記事本), UltraEdit, gedit, vi/vim, 攏會使. 毋過, Microsooft Word 是袂用--得, 因為伊毋是純文字檔。伊的檔尾溜是 .doc. 純文字檔的檔尾溜是 .txt. 佇 Python, 咱會予伊一个專用的檔尾溜: .py.

咱就來寫一咧簡單戲, 拍開了後, 寫下跤的詞:

#!/usr/bin/python3
print("gâu 早, 咱來算數")
sum = 1 + 3 *6 + 7/3
print(sum)

共伊號一咧名, 譬如講 simple.py, --起來. 拍開命令窗, 叫 python3 來搬戲囉

$ python3 simple.py 
gâu 早, 咱來算數
21.333333333333332
$
佇這段戲文內, 咱干焦叫 Python 做三項代誌: 先 ai̋-sah-tsut 一咧, 算數, 共答案印--出來.
伊佮應聲模式無仝款, 戲文乎伊, 伊就佮戲文uì頭到尾做了, 就煞鼓跳出來阿!

2017年5月1日 星期一

Python ê 應聲模式

Python 有兩種運行的模式, 一種號做戲文模式, 另一種是應聲模式
戲文模式遮紹介.


應聲(interactive, 華語:交談) 模式, 就干焦兩人佇答喙鼓, 你就和 Python 佇答喙鼓. 你講一句, 伊隨喙就應。這模式其實是 uì 命令窗仝款个意思.
這馬, 咱先來欲起動應聲模式, 就是干焦佇命令窗內揤 "python3", "ENTER", 看著三支角 ">>>", 就入去應聲模式。



這咧時陣, 你踮內揤啥物, 上尾揤 ENTER, Python 隨會應. 無論是伊看--有抑是看--無你的命令, 伊攏會應. 看--無伊就回--講: "我毋知你佇講啥物", 順紲共你講伊感覺佗位毋著:

>>> dfdfee
Traceback (most recent call last):
  File "", line 1, in
NameError: name 'dfdfee' is not defined
>>> 

莫驚著伊講甲落落長, 橫直[huînn-ti̍t], 有一个 Error 就是伊看--無, 後擺咱才詳細了解伊是佇--啥物.

咱來寫伊看有个, 像:

>>> print("Hello")
Hello
>>>

>>> 2+5
7
>>>

問伊 Hello, 就應你 Hello, 叫伊算數, 閣袂重耽,隨算予--你. 你有注意著--無? 一算了, 馬上出現三支角 >>> 佇等待你紲落來的新命令。

簡單講: 看著三支角 >>>, 就是換你講話, 落命令。 揤 ENTER, 代表換 Python 照你的命令去運行, 若有啥物結果抑是錯誤, 佇下一逝共你報告!


這就是應聲模式的特色!




佇 Linux 來看GPX 檔案

最近定定有戶外活動。使用𤆬路機 (GPS) 來記錄行過的路線。普通我記錄路線,攏是用手機仔抑是專門个𤆬路機,罕得用電腦來看。 毋過,"仙人拍鼓有時錯,跤步踏差啥人無"。有一擺我無細膩,袂記得共一擺活動的路線收煞起來,閣直接開始記錄下一擺的活動,按呢共幾落...